119: );
120:
121: IF l_user_id = 0
122: THEN
123: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_USER_NAME');
124: FND_MESSAGE.SET_TOKEN('USER_NAME',l_user_name);
125: FND_MSG_PUB.Add;
126: RAISE FND_API.G_EXC_ERROR;
127: END IF;
120:
121: IF l_user_id = 0
122: THEN
123: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_USER_NAME');
124: FND_MESSAGE.SET_TOKEN('USER_NAME',l_user_name);
125: FND_MSG_PUB.Add;
126: RAISE FND_API.G_EXC_ERROR;
127: END IF;
128:
131: , user_id => l_user_id
132: );
133: IF (IC$DEFAULT_LOT IS NULL)
134: THEN
135: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
136: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$DEFAULT_LOT');
137: FND_MSG_PUB.Add;
138: RAISE FND_API.G_EXC_ERROR;
139: END IF;
132: );
133: IF (IC$DEFAULT_LOT IS NULL)
134: THEN
135: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
136: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$DEFAULT_LOT');
137: FND_MSG_PUB.Add;
138: RAISE FND_API.G_EXC_ERROR;
139: END IF;
140: IC$DEFAULT_LOCT := FND_PROFILE.Value_Specific( name => 'IC$DEFAULT_LOCT'
141: , user_id => l_user_id
142: );
143: IF (IC$DEFAULT_LOCT IS NULL)
144: THEN
145: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
146: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$DEFAULT_LOCT');
147: FND_MSG_PUB.Add;
148: RAISE FND_API.G_EXC_ERROR;
149: END IF;
142: );
143: IF (IC$DEFAULT_LOCT IS NULL)
144: THEN
145: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
146: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$DEFAULT_LOCT');
147: FND_MSG_PUB.Add;
148: RAISE FND_API.G_EXC_ERROR;
149: END IF;
150: IC$ALLOWNEGINV := FND_PROFILE.Value_Specific( name => 'IC$ALLOWNEGINV'
151: , user_id => l_user_id
152: );
153: IF (IC$ALLOWNEGINV IS NULL)
154: THEN
155: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
156: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$ALLOWNEGINV');
157: FND_MSG_PUB.Add;
158: RAISE FND_API.G_EXC_ERROR;
159: END IF;
152: );
153: IF (IC$ALLOWNEGINV IS NULL)
154: THEN
155: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
156: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$ALLOWNEGINV');
157: FND_MSG_PUB.Add;
158: RAISE FND_API.G_EXC_ERROR;
159: END IF;
160: IC$MOVEDIFFSTAT := FND_PROFILE.Value_Specific( name => 'IC$MOVEDIFFSTAT'
161: , user_id => l_user_id
162: );
163: IF (IC$MOVEDIFFSTAT IS NULL)
164: THEN
165: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
166: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$MOVEDIFFSTAT');
167: FND_MSG_PUB.Add;
168: RAISE FND_API.G_EXC_ERROR;
169: END IF;
162: );
163: IF (IC$MOVEDIFFSTAT IS NULL)
164: THEN
165: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_CONSTANT');
166: FND_MESSAGE.SET_TOKEN('CONSTANT_NAME','IC$MOVEDIFFSTAT');
167: FND_MSG_PUB.Add;
168: RAISE FND_API.G_EXC_ERROR;
169: END IF;
170:
174:
175: -- Validate transaction type in the range 1 - 5
176: IF NOT GMA_VALID_GRP.NumRangeCheck(1,5,l_trans_type)
177: THEN
178: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_TRANS_TYPE');
179: FND_MESSAGE.SET_TOKEN('TRANS_TYPE',l_trans_type);
180: FND_MSG_PUB.Add;
181: RAISE FND_API.G_EXC_ERROR;
182: END IF;
175: -- Validate transaction type in the range 1 - 5
176: IF NOT GMA_VALID_GRP.NumRangeCheck(1,5,l_trans_type)
177: THEN
178: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_TRANS_TYPE');
179: FND_MESSAGE.SET_TOKEN('TRANS_TYPE',l_trans_type);
180: FND_MSG_PUB.Add;
181: RAISE FND_API.G_EXC_ERROR;
182: END IF;
183:
186: IF (l_trans_rec.from_whse_code <> ' ' AND
187: l_trans_rec.from_whse_code IS NOT NULL) AND
188: (l_trans_type = 5)
189: THEN
190: FND_MESSAGE.SET_NAME('GMI','IC_API_FROM_WHSE_NOT_REQD');
191: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
192: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
193: FND_MSG_PUB.Add;
194: RAISE FND_API.G_EXC_ERROR;
187: l_trans_rec.from_whse_code IS NOT NULL) AND
188: (l_trans_type = 5)
189: THEN
190: FND_MESSAGE.SET_NAME('GMI','IC_API_FROM_WHSE_NOT_REQD');
191: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
192: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
193: FND_MSG_PUB.Add;
194: RAISE FND_API.G_EXC_ERROR;
195: END IF;
188: (l_trans_type = 5)
189: THEN
190: FND_MESSAGE.SET_NAME('GMI','IC_API_FROM_WHSE_NOT_REQD');
191: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
192: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
193: FND_MSG_PUB.Add;
194: RAISE FND_API.G_EXC_ERROR;
195: END IF;
196: -- To Warehouse
197: IF (l_trans_rec.to_whse_code <> ' ' AND
198: l_trans_rec.to_whse_code IS NOT NULL) AND
199: (l_trans_type <> 3)
200: THEN
201: FND_MESSAGE.SET_NAME('GMI','IC_API_TO_WHSE_NOT_REQD');
202: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
203: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
204: FND_MSG_PUB.Add;
205: RAISE FND_API.G_EXC_ERROR;
198: l_trans_rec.to_whse_code IS NOT NULL) AND
199: (l_trans_type <> 3)
200: THEN
201: FND_MESSAGE.SET_NAME('GMI','IC_API_TO_WHSE_NOT_REQD');
202: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
203: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
204: FND_MSG_PUB.Add;
205: RAISE FND_API.G_EXC_ERROR;
206: END IF;
199: (l_trans_type <> 3)
200: THEN
201: FND_MESSAGE.SET_NAME('GMI','IC_API_TO_WHSE_NOT_REQD');
202: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
203: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
204: FND_MSG_PUB.Add;
205: RAISE FND_API.G_EXC_ERROR;
206: END IF;
207: -- From Location
208: IF (l_trans_rec.from_location <> ' ' AND
209: l_trans_rec.from_location IS NOT NULL) AND
210: (l_trans_type = 5)
211: THEN
212: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCATION_NOT_REQD');
213: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
214: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
215: FND_MSG_PUB.Add;
216: RAISE FND_API.G_EXC_ERROR;
209: l_trans_rec.from_location IS NOT NULL) AND
210: (l_trans_type = 5)
211: THEN
212: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCATION_NOT_REQD');
213: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
214: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
215: FND_MSG_PUB.Add;
216: RAISE FND_API.G_EXC_ERROR;
217: END IF;
210: (l_trans_type = 5)
211: THEN
212: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCATION_NOT_REQD');
213: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
214: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
215: FND_MSG_PUB.Add;
216: RAISE FND_API.G_EXC_ERROR;
217: END IF;
218: -- To Location
219: IF (l_trans_rec.to_location <> ' ' AND
220: l_trans_rec.to_location IS NOT NULL AND
221: l_trans_type <> 3)
222: THEN
223: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCATION_NOT_REQD');
224: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
225: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
226: FND_MSG_PUB.Add;
227: RAISE FND_API.G_EXC_ERROR;
220: l_trans_rec.to_location IS NOT NULL AND
221: l_trans_type <> 3)
222: THEN
223: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCATION_NOT_REQD');
224: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
225: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
226: FND_MSG_PUB.Add;
227: RAISE FND_API.G_EXC_ERROR;
228: END IF;
221: l_trans_type <> 3)
222: THEN
223: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCATION_NOT_REQD');
224: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
225: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
226: FND_MSG_PUB.Add;
227: RAISE FND_API.G_EXC_ERROR;
228: END IF;
229: -- Primary UOM
231: l_trans_rec.item_um IS NOT NULL) AND
232: (l_trans_type = 4 OR
233: l_trans_type = 5)
234: THEN
235: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_NOT_REQD');
236: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
237: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
238: FND_MSG_PUB.Add;
239: RAISE FND_API.G_EXC_ERROR;
232: (l_trans_type = 4 OR
233: l_trans_type = 5)
234: THEN
235: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_NOT_REQD');
236: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
237: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
238: FND_MSG_PUB.Add;
239: RAISE FND_API.G_EXC_ERROR;
240: END IF;
233: l_trans_type = 5)
234: THEN
235: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_NOT_REQD');
236: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
237: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
238: FND_MSG_PUB.Add;
239: RAISE FND_API.G_EXC_ERROR;
240: END IF;
241: -- Secondary UOM
243: l_trans_rec.item_um2 IS NOT NULL) AND
244: (l_trans_type = 4 OR
245: l_trans_type = 5)
246: THEN
247: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM2_NOT_REQD');
248: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
249: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
250: FND_MSG_PUB.Add;
251: RAISE FND_API.G_EXC_ERROR;
244: (l_trans_type = 4 OR
245: l_trans_type = 5)
246: THEN
247: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM2_NOT_REQD');
248: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
249: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
250: FND_MSG_PUB.Add;
251: RAISE FND_API.G_EXC_ERROR;
252: END IF;
245: l_trans_type = 5)
246: THEN
247: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM2_NOT_REQD');
248: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
249: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
250: FND_MSG_PUB.Add;
251: RAISE FND_API.G_EXC_ERROR;
252: END IF;
253: -- Primary qty
255: l_trans_rec.trans_qty IS NOT NULL) AND
256: (l_trans_type = 4 OR
257: l_trans_type = 5)
258: THEN
259: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_NOT_REQD');
260: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
261: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
262: FND_MSG_PUB.Add;
263: RAISE FND_API.G_EXC_ERROR;
256: (l_trans_type = 4 OR
257: l_trans_type = 5)
258: THEN
259: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_NOT_REQD');
260: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
261: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
262: FND_MSG_PUB.Add;
263: RAISE FND_API.G_EXC_ERROR;
264: END IF;
257: l_trans_type = 5)
258: THEN
259: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_NOT_REQD');
260: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
261: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
262: FND_MSG_PUB.Add;
263: RAISE FND_API.G_EXC_ERROR;
264: END IF;
265: -- Secondary qty
267: l_trans_rec.trans_qty2 IS NOT NULL) AND
268: (l_trans_type = 4 OR
269: l_trans_type = 5)
270: THEN
271: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY2_NOT_REQD');
272: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
273: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
274: FND_MSG_PUB.Add;
275: RAISE FND_API.G_EXC_ERROR;
268: (l_trans_type = 4 OR
269: l_trans_type = 5)
270: THEN
271: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY2_NOT_REQD');
272: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
273: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
274: FND_MSG_PUB.Add;
275: RAISE FND_API.G_EXC_ERROR;
276: END IF;
269: l_trans_type = 5)
270: THEN
271: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY2_NOT_REQD');
272: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
273: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
274: FND_MSG_PUB.Add;
275: RAISE FND_API.G_EXC_ERROR;
276: END IF;
277: -- QC Grade
278: IF (l_trans_rec.qc_grade <> ' ' AND
279: l_trans_rec.qc_grade IS NOT NULL) AND
280: (l_trans_type <> 5) AND (l_trans_type <>1)
281: THEN
282: FND_MESSAGE.SET_NAME('GMI','IC_API_QC_GRADE_NOT_REQD');
283: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
284: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
285: FND_MSG_PUB.Add;
286: RAISE FND_API.G_EXC_ERROR;
279: l_trans_rec.qc_grade IS NOT NULL) AND
280: (l_trans_type <> 5) AND (l_trans_type <>1)
281: THEN
282: FND_MESSAGE.SET_NAME('GMI','IC_API_QC_GRADE_NOT_REQD');
283: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
284: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
285: FND_MSG_PUB.Add;
286: RAISE FND_API.G_EXC_ERROR;
287: END IF;
280: (l_trans_type <> 5) AND (l_trans_type <>1)
281: THEN
282: FND_MESSAGE.SET_NAME('GMI','IC_API_QC_GRADE_NOT_REQD');
283: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
284: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
285: FND_MSG_PUB.Add;
286: RAISE FND_API.G_EXC_ERROR;
287: END IF;
288: -- Lot Status
289: IF (l_trans_rec.lot_status <> ' ' AND
290: l_trans_rec.lot_status IS NOT NULL) AND
291: (l_trans_type <> 4)
292: THEN
293: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_STATUS_NOT_REQD');
294: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
295: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
296: FND_MSG_PUB.Add;
297: RAISE FND_API.G_EXC_ERROR;
290: l_trans_rec.lot_status IS NOT NULL) AND
291: (l_trans_type <> 4)
292: THEN
293: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_STATUS_NOT_REQD');
294: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
295: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
296: FND_MSG_PUB.Add;
297: RAISE FND_API.G_EXC_ERROR;
298: END IF;
291: (l_trans_type <> 4)
292: THEN
293: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_STATUS_NOT_REQD');
294: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
295: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
296: FND_MSG_PUB.Add;
297: RAISE FND_API.G_EXC_ERROR;
298: END IF;
299:
302: -- H.Verdding Bug 1042739
303: IF NOT GMA_VALID_GRP.Validate_doc_no('JRNL',l_trans_rec.journal_no
304: ,l_trans_rec.orgn_code)
305: THEN
306: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_JOURNAL_NO');
307: FND_MESSAGE.SET_TOKEN('JOURNAL_NO',l_trans_rec.journal_no);
308: FND_MSG_PUB.Add;
309: RAISE FND_API.G_EXC_ERROR;
310: ELSE
303: IF NOT GMA_VALID_GRP.Validate_doc_no('JRNL',l_trans_rec.journal_no
304: ,l_trans_rec.orgn_code)
305: THEN
306: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_JOURNAL_NO');
307: FND_MESSAGE.SET_TOKEN('JOURNAL_NO',l_trans_rec.journal_no);
308: FND_MSG_PUB.Add;
309: RAISE FND_API.G_EXC_ERROR;
310: ELSE
311: IF (l_trans_rec.journal_no = ' ' OR
316: , l_trans_rec.orgn_code
317: );
318: IF (l_trans_rec.journal_no = ' ')
319: THEN
320: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_DOC_NO');
321: FND_MESSAGE.SET_TOKEN('DOC_TYPE','JRNL');
322: FND_MESSAGE.SET_TOKEN('ORGN_CODE',l_trans_rec.orgn_code);
323: FND_MSG_PUB.Add;
324: RAISE FND_API.G_EXC_ERROR;
317: );
318: IF (l_trans_rec.journal_no = ' ')
319: THEN
320: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_DOC_NO');
321: FND_MESSAGE.SET_TOKEN('DOC_TYPE','JRNL');
322: FND_MESSAGE.SET_TOKEN('ORGN_CODE',l_trans_rec.orgn_code);
323: FND_MSG_PUB.Add;
324: RAISE FND_API.G_EXC_ERROR;
325: END IF;
318: IF (l_trans_rec.journal_no = ' ')
319: THEN
320: FND_MESSAGE.SET_NAME('GMI','IC_API_UNABLE_TO_GET_DOC_NO');
321: FND_MESSAGE.SET_TOKEN('DOC_TYPE','JRNL');
322: FND_MESSAGE.SET_TOKEN('ORGN_CODE',l_trans_rec.orgn_code);
323: FND_MSG_PUB.Add;
324: RAISE FND_API.G_EXC_ERROR;
325: END IF;
326: END IF;
332: , x_sy_reas_cds => l_sy_reas_cds_rec
333: );
334: IF (l_sy_reas_cds_rec.reason_code = ' ')
335: THEN
336: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_REASON_CODE');
337: FND_MESSAGE.SET_TOKEN('REASON_CODE',l_trans_rec.reason_code);
338: FND_MSG_PUB.Add;
339: RAISE FND_API.G_EXC_ERROR;
340: END IF;
333: );
334: IF (l_sy_reas_cds_rec.reason_code = ' ')
335: THEN
336: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_REASON_CODE');
337: FND_MESSAGE.SET_TOKEN('REASON_CODE',l_trans_rec.reason_code);
338: FND_MSG_PUB.Add;
339: RAISE FND_API.G_EXC_ERROR;
340: END IF;
341:
350: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
351: ELSIF (l_ic_item_mst_rec.item_id = 0) OR
352: (l_ic_item_mst_rec.delete_mark = 1)
353: THEN
354: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_ITEM_NO');
355: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
356: FND_MSG_PUB.Add;
357: RAISE FND_API.G_EXC_ERROR;
358: ELSIF (l_ic_item_mst_rec.noninv_ind = 1)
351: ELSIF (l_ic_item_mst_rec.item_id = 0) OR
352: (l_ic_item_mst_rec.delete_mark = 1)
353: THEN
354: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_ITEM_NO');
355: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
356: FND_MSG_PUB.Add;
357: RAISE FND_API.G_EXC_ERROR;
358: ELSIF (l_ic_item_mst_rec.noninv_ind = 1)
359: THEN
356: FND_MSG_PUB.Add;
357: RAISE FND_API.G_EXC_ERROR;
358: ELSIF (l_ic_item_mst_rec.noninv_ind = 1)
359: THEN
360: FND_MESSAGE.SET_NAME('GMI','IC_API_NONINV_ITEM_NO');
361: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
362: FND_MSG_PUB.Add;
363: RAISE FND_API.G_EXC_ERROR;
364: ELSIF (l_ic_item_mst_rec.inactive_ind = 1)
357: RAISE FND_API.G_EXC_ERROR;
358: ELSIF (l_ic_item_mst_rec.noninv_ind = 1)
359: THEN
360: FND_MESSAGE.SET_NAME('GMI','IC_API_NONINV_ITEM_NO');
361: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
362: FND_MSG_PUB.Add;
363: RAISE FND_API.G_EXC_ERROR;
364: ELSIF (l_ic_item_mst_rec.inactive_ind = 1)
365: THEN
362: FND_MSG_PUB.Add;
363: RAISE FND_API.G_EXC_ERROR;
364: ELSIF (l_ic_item_mst_rec.inactive_ind = 1)
365: THEN
366: FND_MESSAGE.SET_NAME('GMI','IC_API_INACTIVE_ITEM_NO');
367: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
368: FND_MSG_PUB.Add;
369: RAISE FND_API.G_EXC_ERROR;
370: END IF;
363: RAISE FND_API.G_EXC_ERROR;
364: ELSIF (l_ic_item_mst_rec.inactive_ind = 1)
365: THEN
366: FND_MESSAGE.SET_NAME('GMI','IC_API_INACTIVE_ITEM_NO');
367: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
368: FND_MSG_PUB.Add;
369: RAISE FND_API.G_EXC_ERROR;
370: END IF;
371:
372: -- Check that transaction type is applicable to item
373: -- QC grade change
374: IF (l_ic_item_mst_rec.grade_ctl = 0 AND l_trans_type = 5)
375: THEN
376: FND_MESSAGE.SET_NAME('GMI','IC_API_INV_TRANS_TYPE_FOR_ITEM');
377: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
378: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
379: FND_MSG_PUB.Add;
380: RAISE FND_API.G_EXC_ERROR;
373: -- QC grade change
374: IF (l_ic_item_mst_rec.grade_ctl = 0 AND l_trans_type = 5)
375: THEN
376: FND_MESSAGE.SET_NAME('GMI','IC_API_INV_TRANS_TYPE_FOR_ITEM');
377: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
378: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
379: FND_MSG_PUB.Add;
380: RAISE FND_API.G_EXC_ERROR;
381: END IF;
374: IF (l_ic_item_mst_rec.grade_ctl = 0 AND l_trans_type = 5)
375: THEN
376: FND_MESSAGE.SET_NAME('GMI','IC_API_INV_TRANS_TYPE_FOR_ITEM');
377: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
378: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
379: FND_MSG_PUB.Add;
380: RAISE FND_API.G_EXC_ERROR;
381: END IF;
382:
382:
383: -- Lot status change
384: IF (l_ic_item_mst_rec.status_ctl = 0 AND l_trans_type = 4)
385: THEN
386: FND_MESSAGE.SET_NAME('GMI','IC_API_INV_TRANS_TYPE_FOR_ITEM');
387: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
388: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
389: FND_MSG_PUB.Add;
390: RAISE FND_API.G_EXC_ERROR;
383: -- Lot status change
384: IF (l_ic_item_mst_rec.status_ctl = 0 AND l_trans_type = 4)
385: THEN
386: FND_MESSAGE.SET_NAME('GMI','IC_API_INV_TRANS_TYPE_FOR_ITEM');
387: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
388: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
389: FND_MSG_PUB.Add;
390: RAISE FND_API.G_EXC_ERROR;
391: END IF;
384: IF (l_ic_item_mst_rec.status_ctl = 0 AND l_trans_type = 4)
385: THEN
386: FND_MESSAGE.SET_NAME('GMI','IC_API_INV_TRANS_TYPE_FOR_ITEM');
387: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
388: FND_MESSAGE.SET_TOKEN('TRANS_TYPE', l_trans_type);
389: FND_MSG_PUB.Add;
390: RAISE FND_API.G_EXC_ERROR;
391: END IF;
392:
418: THEN
419: IF (l_trans_rec.lot_no <>' ' AND
420: l_trans_rec.lot_no IS NOT NULL)
421: THEN
422: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
423: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
424: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
425: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
426: FND_MSG_PUB.Add;
419: IF (l_trans_rec.lot_no <>' ' AND
420: l_trans_rec.lot_no IS NOT NULL)
421: THEN
422: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
423: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
424: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
425: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
426: FND_MSG_PUB.Add;
427: RAISE FND_API.G_EXC_ERROR;
420: l_trans_rec.lot_no IS NOT NULL)
421: THEN
422: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
423: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
424: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
425: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
426: FND_MSG_PUB.Add;
427: RAISE FND_API.G_EXC_ERROR;
428: END IF;
421: THEN
422: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
423: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
424: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
425: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
426: FND_MSG_PUB.Add;
427: RAISE FND_API.G_EXC_ERROR;
428: END IF;
429: ELSE
429: ELSE
430: IF (l_trans_rec.lot_no = ' ' OR
431: l_trans_rec.lot_no IS NULL)
432: THEN
433: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
434: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
435: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
436: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
437: FND_MSG_PUB.Add;
430: IF (l_trans_rec.lot_no = ' ' OR
431: l_trans_rec.lot_no IS NULL)
432: THEN
433: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
434: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
435: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
436: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
437: FND_MSG_PUB.Add;
438: RAISE FND_API.G_EXC_ERROR;
431: l_trans_rec.lot_no IS NULL)
432: THEN
433: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
434: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
435: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
436: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
437: FND_MSG_PUB.Add;
438: RAISE FND_API.G_EXC_ERROR;
439: END IF;
432: THEN
433: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
434: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
435: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
436: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
437: FND_MSG_PUB.Add;
438: RAISE FND_API.G_EXC_ERROR;
439: END IF;
440: END IF;
448: IF (l_ic_item_mst_rec.sublot_ctl = 0)
449: THEN
450: IF (l_trans_rec.sublot_no <>' ')
451: THEN
452: FND_MESSAGE.SET_NAME('GMI','IC_API_SUBLOT_NOT_REQD');
453: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
454: FND_MSG_PUB.Add;
455: RAISE FND_API.G_EXC_ERROR;
456: END IF;
449: THEN
450: IF (l_trans_rec.sublot_no <>' ')
451: THEN
452: FND_MESSAGE.SET_NAME('GMI','IC_API_SUBLOT_NOT_REQD');
453: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
454: FND_MSG_PUB.Add;
455: RAISE FND_API.G_EXC_ERROR;
456: END IF;
457: END IF;
472: -- H.Verdding B965832 Part 2
473: IF (l_ic_item_mst_rec.lot_ctl = 1 AND
474: l_trans_rec.lot_no='DEFAULTLOT')
475: THEN
476: FND_MESSAGE.SET_NAME('GMI','IC_DEFAULTLOTERR');
477: FND_MSG_PUB.Add;
478: RAISE FND_API.G_EXC_ERROR;
479: END IF;
480: END IF;
489: -- Check for deleted or inactive lot
490: IF (l_ic_lots_mst_rec.delete_mark = 1) OR
491: (l_ic_lots_mst_rec.inactive_ind = 1)
492: THEN
493: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
494: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
495: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
496: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
497: FND_MSG_PUB.Add;
490: IF (l_ic_lots_mst_rec.delete_mark = 1) OR
491: (l_ic_lots_mst_rec.inactive_ind = 1)
492: THEN
493: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
494: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
495: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
496: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
497: FND_MSG_PUB.Add;
498: RAISE FND_API.G_EXC_ERROR;
491: (l_ic_lots_mst_rec.inactive_ind = 1)
492: THEN
493: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
494: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
495: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
496: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
497: FND_MSG_PUB.Add;
498: RAISE FND_API.G_EXC_ERROR;
499: ELSIF (l_ic_lots_mst_rec.lot_id = -2)
492: THEN
493: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
494: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
495: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
496: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
497: FND_MSG_PUB.Add;
498: RAISE FND_API.G_EXC_ERROR;
499: ELSIF (l_ic_lots_mst_rec.lot_id = -2)
500: THEN
505: IF (l_trans_type <> 1)
506: THEN
507: IF (l_ic_lots_mst_rec.lot_id = -1)
508: THEN
509: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
510: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
511: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
512: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
513: FND_MSG_PUB.Add;
506: THEN
507: IF (l_ic_lots_mst_rec.lot_id = -1)
508: THEN
509: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
510: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
511: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
512: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
513: FND_MSG_PUB.Add;
514: RAISE FND_API.G_EXC_ERROR;
507: IF (l_ic_lots_mst_rec.lot_id = -1)
508: THEN
509: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
510: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
511: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
512: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
513: FND_MSG_PUB.Add;
514: RAISE FND_API.G_EXC_ERROR;
515: END IF;
508: THEN
509: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_NO');
510: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
511: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
512: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
513: FND_MSG_PUB.Add;
514: RAISE FND_API.G_EXC_ERROR;
515: END IF;
516: ELSE
561: IF (l_trans_type = 5)
562: THEN
563: IF (l_trans_rec.qc_grade = l_ic_lots_mst_rec.qc_grade)
564: THEN
565: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_QC_GRADE');
566: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
567: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
568: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
569: FND_MSG_PUB.Add;
562: THEN
563: IF (l_trans_rec.qc_grade = l_ic_lots_mst_rec.qc_grade)
564: THEN
565: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_QC_GRADE');
566: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
567: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
568: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
569: FND_MSG_PUB.Add;
570: RAISE FND_API.G_EXC_ERROR;
563: IF (l_trans_rec.qc_grade = l_ic_lots_mst_rec.qc_grade)
564: THEN
565: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_QC_GRADE');
566: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
567: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
568: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
569: FND_MSG_PUB.Add;
570: RAISE FND_API.G_EXC_ERROR;
571: END IF;
564: THEN
565: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_QC_GRADE');
566: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
567: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
568: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
569: FND_MSG_PUB.Add;
570: RAISE FND_API.G_EXC_ERROR;
571: END IF;
572: ELSE
581: );
582: IF (l_ic_whse_mst_rec.whse_code = ' ') OR
583: (l_ic_whse_mst_rec.delete_mark = 1)
584: THEN
585: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_WHSE_CODE');
586: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.from_whse_code);
587: FND_MSG_PUB.Add;
588: RAISE FND_API.G_EXC_ERROR;
589: ELSE
582: IF (l_ic_whse_mst_rec.whse_code = ' ') OR
583: (l_ic_whse_mst_rec.delete_mark = 1)
584: THEN
585: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_WHSE_CODE');
586: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.from_whse_code);
587: FND_MSG_PUB.Add;
588: RAISE FND_API.G_EXC_ERROR;
589: ELSE
590: -- Check location parameters
594: , p_whse_code => l_trans_rec.from_whse_code
595: , p_location => l_trans_rec.from_location
596: )
597: THEN
598: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
599: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
600: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.from_whse_code);
601: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
602: FND_MSG_PUB.Add;
595: , p_location => l_trans_rec.from_location
596: )
597: THEN
598: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
599: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
600: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.from_whse_code);
601: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
602: FND_MSG_PUB.Add;
603: RAISE FND_API.G_EXC_ERROR;
596: )
597: THEN
598: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
599: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
600: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.from_whse_code);
601: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
602: FND_MSG_PUB.Add;
603: RAISE FND_API.G_EXC_ERROR;
604: ELSIF (l_trans_rec.from_location = ' ' OR
597: THEN
598: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
599: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
600: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.from_whse_code);
601: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
602: FND_MSG_PUB.Add;
603: RAISE FND_API.G_EXC_ERROR;
604: ELSIF (l_trans_rec.from_location = ' ' OR
605: l_trans_rec.from_location IS NULL)
621: );
622: IF (l_ic_whse_mst_rec.whse_code = ' ') OR
623: (l_ic_whse_mst_rec.delete_mark = 1)
624: THEN
625: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_WHSE_CODE');
626: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.to_whse_code);
627: FND_MSG_PUB.Add;
628: RAISE FND_API.G_EXC_ERROR;
629: ELSE
622: IF (l_ic_whse_mst_rec.whse_code = ' ') OR
623: (l_ic_whse_mst_rec.delete_mark = 1)
624: THEN
625: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_WHSE_CODE');
626: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.to_whse_code);
627: FND_MSG_PUB.Add;
628: RAISE FND_API.G_EXC_ERROR;
629: ELSE
630: -- Check location parameters
634: , p_whse_code => l_trans_rec.to_whse_code
635: , p_location => l_trans_rec.to_location
636: )
637: THEN
638: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
639: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
640: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.to_whse_code);
641: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.to_location);
642: FND_MSG_PUB.Add;
635: , p_location => l_trans_rec.to_location
636: )
637: THEN
638: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
639: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
640: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.to_whse_code);
641: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.to_location);
642: FND_MSG_PUB.Add;
643: RAISE FND_API.G_EXC_ERROR;
636: )
637: THEN
638: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
639: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
640: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.to_whse_code);
641: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.to_location);
642: FND_MSG_PUB.Add;
643: RAISE FND_API.G_EXC_ERROR;
644: ELSE
637: THEN
638: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOCATION');
639: FND_MESSAGE.SET_TOKEN('ITEM_NO', l_trans_rec.item_no);
640: FND_MESSAGE.SET_TOKEN('WHSE_CODE', l_trans_rec.to_whse_code);
641: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.to_location);
642: FND_MSG_PUB.Add;
643: RAISE FND_API.G_EXC_ERROR;
644: ELSE
645: IF (l_trans_rec.to_location = ' ' OR
652: -- Check that from warehouse/location differs from to warehouse/location
653: IF (l_trans_rec.from_whse_code = l_trans_rec.to_whse_code) AND
654: (l_trans_rec.from_location = l_trans_rec.to_location)
655: THEN
656: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_SAME_WHSE_LOC');
657: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
658: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
659: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
660: FND_MSG_PUB.Add;
653: IF (l_trans_rec.from_whse_code = l_trans_rec.to_whse_code) AND
654: (l_trans_rec.from_location = l_trans_rec.to_location)
655: THEN
656: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_SAME_WHSE_LOC');
657: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
658: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
659: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
660: FND_MSG_PUB.Add;
661: RAISE FND_API.G_EXC_ERROR;
654: (l_trans_rec.from_location = l_trans_rec.to_location)
655: THEN
656: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_SAME_WHSE_LOC');
657: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
658: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
659: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
660: FND_MSG_PUB.Add;
661: RAISE FND_API.G_EXC_ERROR;
662: END IF;
655: THEN
656: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_SAME_WHSE_LOC');
657: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
658: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
659: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
660: FND_MSG_PUB.Add;
661: RAISE FND_API.G_EXC_ERROR;
662: END IF;
663: -- For Change lot status 'to' warehouse and location are the same as 'from'
694: l_ic_loct_inv_rec_from.loct_onhand2 :=0;
695: l_trans_rec.lot_status :=l_ic_item_mst_rec.lot_status;
696: ELSIF (l_trans_type = 1)
697: THEN
698: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCT_ONHAND_EXISTS');
699: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
700: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
701: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
702: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
695: l_trans_rec.lot_status :=l_ic_item_mst_rec.lot_status;
696: ELSIF (l_trans_type = 1)
697: THEN
698: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCT_ONHAND_EXISTS');
699: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
700: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
701: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
702: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
703: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
696: ELSIF (l_trans_type = 1)
697: THEN
698: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCT_ONHAND_EXISTS');
699: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
700: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
701: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
702: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
703: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
704: FND_MSG_PUB.Add;
697: THEN
698: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCT_ONHAND_EXISTS');
699: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
700: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
701: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
702: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
703: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
704: FND_MSG_PUB.Add;
705: RAISE FND_API.G_EXC_ERROR;
698: FND_MESSAGE.SET_NAME('GMI','IC_API_LOCT_ONHAND_EXISTS');
699: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
700: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
701: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
702: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
703: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
704: FND_MSG_PUB.Add;
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF (l_ic_loct_inv_rec_from.item_id = 0) OR
699: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
700: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
701: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
702: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
703: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
704: FND_MSG_PUB.Add;
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF (l_ic_loct_inv_rec_from.item_id = 0) OR
707: (l_ic_loct_inv_rec_from.loct_onhand = 0 AND l_trans_type =4)
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF (l_ic_loct_inv_rec_from.item_id = 0) OR
707: (l_ic_loct_inv_rec_from.loct_onhand = 0 AND l_trans_type =4)
708: THEN
709: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOCT_ONHAND');
710: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
711: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
712: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
713: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
706: ELSIF (l_ic_loct_inv_rec_from.item_id = 0) OR
707: (l_ic_loct_inv_rec_from.loct_onhand = 0 AND l_trans_type =4)
708: THEN
709: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOCT_ONHAND');
710: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
711: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
712: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
713: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
714: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
707: (l_ic_loct_inv_rec_from.loct_onhand = 0 AND l_trans_type =4)
708: THEN
709: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOCT_ONHAND');
710: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
711: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
712: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
713: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
714: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
715: FND_MSG_PUB.Add;
708: THEN
709: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOCT_ONHAND');
710: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
711: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
712: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
713: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
714: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
715: FND_MSG_PUB.Add;
716: RAISE FND_API.G_EXC_ERROR;
709: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOCT_ONHAND');
710: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
711: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
712: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
713: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
714: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
715: FND_MSG_PUB.Add;
716: RAISE FND_API.G_EXC_ERROR;
717: ELSIF (l_trans_type = 2)
710: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
711: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
712: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
713: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
714: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
715: FND_MSG_PUB.Add;
716: RAISE FND_API.G_EXC_ERROR;
717: ELSIF (l_trans_type = 2)
718: THEN
720: -- If adjust inventory then this will also be new lot status
721: ELSIF (l_trans_type = 4) AND
722: (l_trans_rec.lot_status = l_ic_loct_inv_rec_from.lot_status)
723: THEN
724: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_LOT_STATUS');
725: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
726: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
727: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
728: FND_MSG_PUB.Add;
721: ELSIF (l_trans_type = 4) AND
722: (l_trans_rec.lot_status = l_ic_loct_inv_rec_from.lot_status)
723: THEN
724: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_LOT_STATUS');
725: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
726: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
727: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
728: FND_MSG_PUB.Add;
729: RAISE FND_API.G_EXC_ERROR;
722: (l_trans_rec.lot_status = l_ic_loct_inv_rec_from.lot_status)
723: THEN
724: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_LOT_STATUS');
725: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
726: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
727: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
728: FND_MSG_PUB.Add;
729: RAISE FND_API.G_EXC_ERROR;
730: ELSE
723: THEN
724: FND_MESSAGE.SET_NAME('GMI','IC_API_SAME_LOT_STATUS');
725: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
726: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
727: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
728: FND_MSG_PUB.Add;
729: RAISE FND_API.G_EXC_ERROR;
730: ELSE
731: -- Store original lot status
740: );
741: x_old_lot_status :=l_ic_loct_inv_rec_from.lot_status;
742: IF (l_lot_onhand = 0 OR l_lot_onhand IS NULL)
743: THEN
744: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOT_ONHAND');
745: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
746: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
747: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
748: FND_MSG_PUB.Add;
741: x_old_lot_status :=l_ic_loct_inv_rec_from.lot_status;
742: IF (l_lot_onhand = 0 OR l_lot_onhand IS NULL)
743: THEN
744: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOT_ONHAND');
745: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
746: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
747: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
748: FND_MSG_PUB.Add;
749: RAISE FND_API.G_EXC_ERROR;
742: IF (l_lot_onhand = 0 OR l_lot_onhand IS NULL)
743: THEN
744: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOT_ONHAND');
745: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
746: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
747: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
748: FND_MSG_PUB.Add;
749: RAISE FND_API.G_EXC_ERROR;
750: END IF;
743: THEN
744: FND_MESSAGE.SET_NAME('GMI','IC_API_NO_LOT_ONHAND');
745: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
746: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
747: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
748: FND_MSG_PUB.Add;
749: RAISE FND_API.G_EXC_ERROR;
750: END IF;
751: END IF;
754: IF (l_trans_type < 4)
755: THEN
756: IF (l_trans_rec.trans_qty =0)
757: THEN
758: FND_MESSAGE.SET_NAME('GMI','IC_API_ZERO_QTY');
759: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
760: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
761: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
762: FND_MSG_PUB.Add;
755: THEN
756: IF (l_trans_rec.trans_qty =0)
757: THEN
758: FND_MESSAGE.SET_NAME('GMI','IC_API_ZERO_QTY');
759: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
760: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
761: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
762: FND_MSG_PUB.Add;
763: RAISE FND_API.G_EXC_ERROR;
756: IF (l_trans_rec.trans_qty =0)
757: THEN
758: FND_MESSAGE.SET_NAME('GMI','IC_API_ZERO_QTY');
759: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
760: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
761: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
762: FND_MSG_PUB.Add;
763: RAISE FND_API.G_EXC_ERROR;
764: END IF;
757: THEN
758: FND_MESSAGE.SET_NAME('GMI','IC_API_ZERO_QTY');
759: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
760: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
761: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
762: FND_MSG_PUB.Add;
763: RAISE FND_API.G_EXC_ERROR;
764: END IF;
765: IF (l_trans_rec.trans_qty2 <> 0 AND
766: l_trans_rec.trans_qty2 IS NOT NULL) AND
767: (l_ic_item_mst_rec.dualum_ind = 0 OR
768: l_ic_item_mst_rec.dualum_ind =1)
769: THEN
770: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QTY2');
771: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
772: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
773: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
774: FND_MSG_PUB.Add;
767: (l_ic_item_mst_rec.dualum_ind = 0 OR
768: l_ic_item_mst_rec.dualum_ind =1)
769: THEN
770: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QTY2');
771: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
772: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
773: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
774: FND_MSG_PUB.Add;
775: RAISE FND_API.G_EXC_ERROR;
768: l_ic_item_mst_rec.dualum_ind =1)
769: THEN
770: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QTY2');
771: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
772: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
773: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
774: FND_MSG_PUB.Add;
775: RAISE FND_API.G_EXC_ERROR;
776: END IF;
769: THEN
770: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QTY2');
771: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
772: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
773: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
774: FND_MSG_PUB.Add;
775: RAISE FND_API.G_EXC_ERROR;
776: END IF;
777: END IF;
778:
779: -- Check Primary UoM
780: IF NOT GMA_VALID_GRP.Validate_um(l_trans_rec.item_um)
781: THEN
782: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_UOM');
783: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
784: FND_MESSAGE.SET_TOKEN('UOM',l_trans_rec.item_um);
785: FND_MSG_PUB.Add;
786: RAISE FND_API.G_EXC_ERROR;
779: -- Check Primary UoM
780: IF NOT GMA_VALID_GRP.Validate_um(l_trans_rec.item_um)
781: THEN
782: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_UOM');
783: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
784: FND_MESSAGE.SET_TOKEN('UOM',l_trans_rec.item_um);
785: FND_MSG_PUB.Add;
786: RAISE FND_API.G_EXC_ERROR;
787: END IF;
780: IF NOT GMA_VALID_GRP.Validate_um(l_trans_rec.item_um)
781: THEN
782: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_UOM');
783: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
784: FND_MESSAGE.SET_TOKEN('UOM',l_trans_rec.item_um);
785: FND_MSG_PUB.Add;
786: RAISE FND_API.G_EXC_ERROR;
787: END IF;
788:
808: );
809: -- Negative quantity indicates UoM conversion failure
810: IF (l_trans_rec.trans_qty < 0)
811: THEN
812: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
813: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
814: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um);
815: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um);
816: FND_MSG_PUB.Add;
809: -- Negative quantity indicates UoM conversion failure
810: IF (l_trans_rec.trans_qty < 0)
811: THEN
812: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
813: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
814: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um);
815: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um);
816: FND_MSG_PUB.Add;
817: RAISE FND_API.G_EXC_ERROR;
810: IF (l_trans_rec.trans_qty < 0)
811: THEN
812: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
813: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
814: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um);
815: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um);
816: FND_MSG_PUB.Add;
817: RAISE FND_API.G_EXC_ERROR;
818: ELSE
811: THEN
812: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
813: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
814: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um);
815: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um);
816: FND_MSG_PUB.Add;
817: RAISE FND_API.G_EXC_ERROR;
818: ELSE
819: l_trans_rec.item_um :=l_ic_item_mst_rec.item_um;
845: );
846: -- Negative quantity indicates UoM conversion failure
847: IF (l_qty2 < 0)
848: THEN
849: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
850: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
851: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_ic_item_mst_rec.item_um);
852: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
853: FND_MSG_PUB.Add;
846: -- Negative quantity indicates UoM conversion failure
847: IF (l_qty2 < 0)
848: THEN
849: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
850: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
851: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_ic_item_mst_rec.item_um);
852: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
853: FND_MSG_PUB.Add;
854: RAISE FND_API.G_EXC_ERROR;
847: IF (l_qty2 < 0)
848: THEN
849: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
850: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
851: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_ic_item_mst_rec.item_um);
852: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
853: FND_MSG_PUB.Add;
854: RAISE FND_API.G_EXC_ERROR;
855: END IF;
848: THEN
849: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
850: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
851: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_ic_item_mst_rec.item_um);
852: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
853: FND_MSG_PUB.Add;
854: RAISE FND_API.G_EXC_ERROR;
855: END IF;
856: -- Reverse quantity sign if reversed above
887: );
888: -- Negative quantity indicates UoM conversion failure
889: IF (l_trans_rec.trans_qty2 < 0)
890: THEN
891: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
892: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
893: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um2);
894: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
895: FND_MSG_PUB.Add;
888: -- Negative quantity indicates UoM conversion failure
889: IF (l_trans_rec.trans_qty2 < 0)
890: THEN
891: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
892: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
893: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um2);
894: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
895: FND_MSG_PUB.Add;
896: RAISE FND_API.G_EXC_ERROR;
889: IF (l_trans_rec.trans_qty2 < 0)
890: THEN
891: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
892: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
893: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um2);
894: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
895: FND_MSG_PUB.Add;
896: RAISE FND_API.G_EXC_ERROR;
897: ELSE
890: THEN
891: FND_MESSAGE.SET_NAME('GMI','IC_API_UOM_CONVERSION_ERROR');
892: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
893: FND_MESSAGE.SET_TOKEN('FROM_UOM',l_trans_rec.item_um2);
894: FND_MESSAGE.SET_TOKEN('TO_UOM',l_ic_item_mst_rec.item_um2);
895: FND_MSG_PUB.Add;
896: RAISE FND_API.G_EXC_ERROR;
897: ELSE
898: l_trans_rec.item_um2 :=l_ic_item_mst_rec.item_um2;
910: ABS(l_qty2) * (1 + l_ic_item_mst_rec.deviation_hi)) OR
911: (ABS(l_trans_rec.trans_qty2) <
912: ABS(l_qty2) * (1 - l_ic_item_mst_rec.deviation_lo))
913: THEN
914: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_TOLERANCE_ERROR');
915: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
916: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
917: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
918: FND_MSG_PUB.Add;
911: (ABS(l_trans_rec.trans_qty2) <
912: ABS(l_qty2) * (1 - l_ic_item_mst_rec.deviation_lo))
913: THEN
914: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_TOLERANCE_ERROR');
915: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
916: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
917: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
918: FND_MSG_PUB.Add;
919: RAISE FND_API.G_EXC_ERROR;
912: ABS(l_qty2) * (1 - l_ic_item_mst_rec.deviation_lo))
913: THEN
914: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_TOLERANCE_ERROR');
915: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
916: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
917: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
918: FND_MSG_PUB.Add;
919: RAISE FND_API.G_EXC_ERROR;
920: END IF;
913: THEN
914: FND_MESSAGE.SET_NAME('GMI','IC_API_QTY_TOLERANCE_ERROR');
915: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
916: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
917: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
918: FND_MSG_PUB.Add;
919: RAISE FND_API.G_EXC_ERROR;
920: END IF;
921: END IF;
926:
927: -- Check quantity is correctly signed
928: IF (l_trans_type = 3 AND l_trans_rec.trans_qty <= 0)
929: THEN
930: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_QTY_NOT_NEG');
931: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
932: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
933: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
934: FND_MSG_PUB.Add;
927: -- Check quantity is correctly signed
928: IF (l_trans_type = 3 AND l_trans_rec.trans_qty <= 0)
929: THEN
930: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_QTY_NOT_NEG');
931: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
932: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
933: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
934: FND_MSG_PUB.Add;
935: RAISE FND_API.G_EXC_ERROR;
928: IF (l_trans_type = 3 AND l_trans_rec.trans_qty <= 0)
929: THEN
930: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_QTY_NOT_NEG');
931: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
932: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
933: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
934: FND_MSG_PUB.Add;
935: RAISE FND_API.G_EXC_ERROR;
936: END IF;
929: THEN
930: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_QTY_NOT_NEG');
931: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
932: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
933: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
934: FND_MSG_PUB.Add;
935: RAISE FND_API.G_EXC_ERROR;
936: END IF;
937:
943: l_trans_rec.trans_qty) < 0) OR
944: (l_trans_type = 3 AND (l_ic_loct_inv_rec_from.loct_onhand -
945: l_trans_rec.trans_qty) < 0)
946: THEN
947: FND_MESSAGE.SET_NAME('GMI','IC_API_NEG_QTY_NOT_ALLOWED');
948: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
949: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
950: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
951: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
944: (l_trans_type = 3 AND (l_ic_loct_inv_rec_from.loct_onhand -
945: l_trans_rec.trans_qty) < 0)
946: THEN
947: FND_MESSAGE.SET_NAME('GMI','IC_API_NEG_QTY_NOT_ALLOWED');
948: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
949: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
950: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
951: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
952: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
945: l_trans_rec.trans_qty) < 0)
946: THEN
947: FND_MESSAGE.SET_NAME('GMI','IC_API_NEG_QTY_NOT_ALLOWED');
948: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
949: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
950: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
951: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
952: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
953: FND_MSG_PUB.Add;
946: THEN
947: FND_MESSAGE.SET_NAME('GMI','IC_API_NEG_QTY_NOT_ALLOWED');
948: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
949: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
950: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
951: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
952: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
953: FND_MSG_PUB.Add;
954: RAISE FND_API.G_EXC_ERROR;
947: FND_MESSAGE.SET_NAME('GMI','IC_API_NEG_QTY_NOT_ALLOWED');
948: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
949: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
950: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
951: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
952: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
953: FND_MSG_PUB.Add;
954: RAISE FND_API.G_EXC_ERROR;
955: END IF;
948: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
949: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
950: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
951: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
952: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
953: FND_MSG_PUB.Add;
954: RAISE FND_API.G_EXC_ERROR;
955: END IF;
956: END IF;
960: THEN
961: IF ((l_sy_reas_cds_rec.reason_type = 1) AND
962: (l_trans_rec.trans_qty < 0))
963: THEN
964: FND_MESSAGE.SET_NAME('GMI','IC_API_DEC_NOT_ALLOWED');
965: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
966: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
967: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
968: FND_MSG_PUB.Add;
961: IF ((l_sy_reas_cds_rec.reason_type = 1) AND
962: (l_trans_rec.trans_qty < 0))
963: THEN
964: FND_MESSAGE.SET_NAME('GMI','IC_API_DEC_NOT_ALLOWED');
965: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
966: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
967: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
968: FND_MSG_PUB.Add;
969: RAISE FND_API.G_EXC_ERROR;
962: (l_trans_rec.trans_qty < 0))
963: THEN
964: FND_MESSAGE.SET_NAME('GMI','IC_API_DEC_NOT_ALLOWED');
965: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
966: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
967: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
968: FND_MSG_PUB.Add;
969: RAISE FND_API.G_EXC_ERROR;
970: ELSIF ((l_sy_reas_cds_rec.reason_type = 2) AND
963: THEN
964: FND_MESSAGE.SET_NAME('GMI','IC_API_DEC_NOT_ALLOWED');
965: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
966: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
967: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
968: FND_MSG_PUB.Add;
969: RAISE FND_API.G_EXC_ERROR;
970: ELSIF ((l_sy_reas_cds_rec.reason_type = 2) AND
971: (l_trans_rec.trans_qty > 0))
969: RAISE FND_API.G_EXC_ERROR;
970: ELSIF ((l_sy_reas_cds_rec.reason_type = 2) AND
971: (l_trans_rec.trans_qty > 0))
972: THEN
973: FND_MESSAGE.SET_NAME('GMI','IC_API_INC_NOT_ALLOWED');
974: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
975: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
976: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
977: FND_MSG_PUB.Add;
970: ELSIF ((l_sy_reas_cds_rec.reason_type = 2) AND
971: (l_trans_rec.trans_qty > 0))
972: THEN
973: FND_MESSAGE.SET_NAME('GMI','IC_API_INC_NOT_ALLOWED');
974: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
975: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
976: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
977: FND_MSG_PUB.Add;
978: RAISE FND_API.G_EXC_ERROR;
971: (l_trans_rec.trans_qty > 0))
972: THEN
973: FND_MESSAGE.SET_NAME('GMI','IC_API_INC_NOT_ALLOWED');
974: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
975: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
976: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
977: FND_MSG_PUB.Add;
978: RAISE FND_API.G_EXC_ERROR;
979: END IF;
972: THEN
973: FND_MESSAGE.SET_NAME('GMI','IC_API_INC_NOT_ALLOWED');
974: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
975: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
976: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
977: FND_MSG_PUB.Add;
978: RAISE FND_API.G_EXC_ERROR;
979: END IF;
980: END IF;
983: IF (l_ic_item_mst_rec.lot_indivisible = 1) AND
984: (l_trans_type = 3) AND
985: (l_ic_loct_inv_rec_from.loct_onhand <> l_trans_rec.trans_qty)
986: THEN
987: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_INDIVISIBLE');
988: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
989: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
990: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
991: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
984: (l_trans_type = 3) AND
985: (l_ic_loct_inv_rec_from.loct_onhand <> l_trans_rec.trans_qty)
986: THEN
987: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_INDIVISIBLE');
988: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
989: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
990: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
991: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
992: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
985: (l_ic_loct_inv_rec_from.loct_onhand <> l_trans_rec.trans_qty)
986: THEN
987: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_INDIVISIBLE');
988: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
989: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
990: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
991: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
992: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
993: FND_MSG_PUB.Add;
986: THEN
987: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_INDIVISIBLE');
988: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
989: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
990: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
991: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
992: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
993: FND_MSG_PUB.Add;
994: RAISE FND_API.G_EXC_ERROR;
987: FND_MESSAGE.SET_NAME('GMI','IC_API_LOT_INDIVISIBLE');
988: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
989: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
990: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
991: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
992: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
993: FND_MSG_PUB.Add;
994: RAISE FND_API.G_EXC_ERROR;
995: END IF;
988: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
989: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
990: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
991: FND_MESSAGE.SET_TOKEN('WHSE_CODE',l_trans_rec.from_whse_code);
992: FND_MESSAGE.SET_TOKEN('LOCATION',l_trans_rec.from_location);
993: FND_MSG_PUB.Add;
994: RAISE FND_API.G_EXC_ERROR;
995: END IF;
996:
1023: ELSIF (IC$MOVEDIFFSTAT = '1')
1024: THEN
1025: l_trans_rec.lot_status := l_ic_loct_inv_rec_to.lot_status;
1026: ELSE
1027: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_STATUS_ERR');
1028: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1029: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
1030: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
1031: FND_MSG_PUB.Add;
1024: THEN
1025: l_trans_rec.lot_status := l_ic_loct_inv_rec_to.lot_status;
1026: ELSE
1027: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_STATUS_ERR');
1028: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1029: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
1030: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
1031: FND_MSG_PUB.Add;
1032: RAISE FND_API.G_EXC_ERROR;
1025: l_trans_rec.lot_status := l_ic_loct_inv_rec_to.lot_status;
1026: ELSE
1027: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_STATUS_ERR');
1028: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1029: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
1030: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
1031: FND_MSG_PUB.Add;
1032: RAISE FND_API.G_EXC_ERROR;
1033: END IF;
1026: ELSE
1027: FND_MESSAGE.SET_NAME('GMI','IC_API_MOVE_STATUS_ERR');
1028: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1029: FND_MESSAGE.SET_TOKEN('LOT_NO',l_trans_rec.lot_no);
1030: FND_MESSAGE.SET_TOKEN('SUBLOT_NO',l_trans_rec.sublot_no);
1031: FND_MSG_PUB.Add;
1032: RAISE FND_API.G_EXC_ERROR;
1033: END IF;
1034: ELSE
1044: IF NOT GMI_VALID_GRP.Validate_lot_status ( l_trans_rec.lot_status
1045: , l_ic_item_mst_rec.status_ctl
1046: )
1047: THEN
1048: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_STATUS');
1049: FND_MESSAGE.SET_TOKEN('LOT_STATUS',l_trans_rec.lot_status);
1050: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1051: FND_MSG_PUB.Add;
1052: RAISE FND_API.G_EXC_ERROR;
1045: , l_ic_item_mst_rec.status_ctl
1046: )
1047: THEN
1048: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_STATUS');
1049: FND_MESSAGE.SET_TOKEN('LOT_STATUS',l_trans_rec.lot_status);
1050: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1051: FND_MSG_PUB.Add;
1052: RAISE FND_API.G_EXC_ERROR;
1053: END IF;
1046: )
1047: THEN
1048: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_LOT_STATUS');
1049: FND_MESSAGE.SET_TOKEN('LOT_STATUS',l_trans_rec.lot_status);
1050: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1051: FND_MSG_PUB.Add;
1052: RAISE FND_API.G_EXC_ERROR;
1053: END IF;
1054: -- Check for unposted journals with different lot status
1059: , p_location => l_trans_rec.from_location
1060: , p_lot_status => l_trans_rec.lot_status
1061: )
1062: THEN
1063: FND_MESSAGE.SET_NAME('GMI','IC_API_UNPOSTED_JNL_LOT_STATUS');
1064: FND_MESSAGE.SET_TOKEN('LOT_STATUS',l_trans_rec.lot_status);
1065: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1066: FND_MSG_PUB.Add;
1067: RAISE FND_API.G_EXC_ERROR;
1060: , p_lot_status => l_trans_rec.lot_status
1061: )
1062: THEN
1063: FND_MESSAGE.SET_NAME('GMI','IC_API_UNPOSTED_JNL_LOT_STATUS');
1064: FND_MESSAGE.SET_TOKEN('LOT_STATUS',l_trans_rec.lot_status);
1065: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1066: FND_MSG_PUB.Add;
1067: RAISE FND_API.G_EXC_ERROR;
1068: END IF;
1061: )
1062: THEN
1063: FND_MESSAGE.SET_NAME('GMI','IC_API_UNPOSTED_JNL_LOT_STATUS');
1064: FND_MESSAGE.SET_TOKEN('LOT_STATUS',l_trans_rec.lot_status);
1065: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1066: FND_MSG_PUB.Add;
1067: RAISE FND_API.G_EXC_ERROR;
1068: END IF;
1069: END IF;
1074: IF NOT GMI_VALID_GRP.Validate_qc_grade ( l_trans_rec.qc_grade
1075: , l_ic_item_mst_rec.grade_ctl
1076: )
1077: THEN
1078: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QC_GRADE');
1079: FND_MESSAGE.SET_TOKEN('QC_GRADE',l_trans_rec.qc_grade);
1080: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1081: FND_MSG_PUB.Add;
1082: RAISE FND_API.G_EXC_ERROR;
1075: , l_ic_item_mst_rec.grade_ctl
1076: )
1077: THEN
1078: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QC_GRADE');
1079: FND_MESSAGE.SET_TOKEN('QC_GRADE',l_trans_rec.qc_grade);
1080: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1081: FND_MSG_PUB.Add;
1082: RAISE FND_API.G_EXC_ERROR;
1083: END IF;
1076: )
1077: THEN
1078: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_QC_GRADE');
1079: FND_MESSAGE.SET_TOKEN('QC_GRADE',l_trans_rec.qc_grade);
1080: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1081: FND_MSG_PUB.Add;
1082: RAISE FND_API.G_EXC_ERROR;
1083: END IF;
1084: -- Check for unposted journals with different QC grade
1087: , p_lot_id => l_lot_id
1088: , p_qc_grade => l_trans_rec.qc_grade
1089: )
1090: THEN
1091: FND_MESSAGE.SET_NAME('GMI','IC_API_UNPOSTED_JNL_QC_GRADE');
1092: FND_MESSAGE.SET_TOKEN('QC_GRADE',l_trans_rec.qc_grade);
1093: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1094: FND_MSG_PUB.Add;
1095: RAISE FND_API.G_EXC_ERROR;
1088: , p_qc_grade => l_trans_rec.qc_grade
1089: )
1090: THEN
1091: FND_MESSAGE.SET_NAME('GMI','IC_API_UNPOSTED_JNL_QC_GRADE');
1092: FND_MESSAGE.SET_TOKEN('QC_GRADE',l_trans_rec.qc_grade);
1093: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1094: FND_MSG_PUB.Add;
1095: RAISE FND_API.G_EXC_ERROR;
1096: END IF;
1089: )
1090: THEN
1091: FND_MESSAGE.SET_NAME('GMI','IC_API_UNPOSTED_JNL_QC_GRADE');
1092: FND_MESSAGE.SET_TOKEN('QC_GRADE',l_trans_rec.qc_grade);
1093: FND_MESSAGE.SET_TOKEN('ITEM_NO',l_trans_rec.item_no);
1094: FND_MSG_PUB.Add;
1095: RAISE FND_API.G_EXC_ERROR;
1096: END IF;
1097: END IF;
1098:
1099: -- Validate Company Code
1100: IF NOT GMA_VALID_GRP.Validate_co_code(l_trans_rec.co_code)
1101: THEN
1102: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_CO_CODE');
1103: FND_MESSAGE.SET_TOKEN('CO_CODE',l_trans_rec.co_code);
1104: FND_MSG_PUB.Add;
1105: RAISE FND_API.G_EXC_ERROR;
1106: END IF;
1099: -- Validate Company Code
1100: IF NOT GMA_VALID_GRP.Validate_co_code(l_trans_rec.co_code)
1101: THEN
1102: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_CO_CODE');
1103: FND_MESSAGE.SET_TOKEN('CO_CODE',l_trans_rec.co_code);
1104: FND_MSG_PUB.Add;
1105: RAISE FND_API.G_EXC_ERROR;
1106: END IF;
1107:
1109: IF NOT GMA_VALID_GRP.Validate_orgn_for_company ( l_trans_rec.orgn_code
1110: , l_trans_rec.co_code
1111: )
1112: THEN
1113: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_ORGN_CODE');
1114: FND_MESSAGE.SET_TOKEN('ORGN_CODE',l_trans_rec.orgn_code);
1115: FND_MSG_PUB.Add;
1116: RAISE FND_API.G_EXC_ERROR;
1117: END IF;
1110: , l_trans_rec.co_code
1111: )
1112: THEN
1113: FND_MESSAGE.SET_NAME('GMI','IC_API_INVALID_ORGN_CODE');
1114: FND_MESSAGE.SET_TOKEN('ORGN_CODE',l_trans_rec.orgn_code);
1115: FND_MSG_PUB.Add;
1116: RAISE FND_API.G_EXC_ERROR;
1117: END IF;
1118:
1125: );
1126: END IF;
1127: IF (l_return_val <> 0)
1128: THEN
1129: FND_MESSAGE.SET_NAME('GMI','IC_API_CANNOT_POST_CLOSED');
1130: FND_MESSAGE.SET_TOKEN('ITEM_NO' , l_trans_rec.item_no);
1131: FND_MESSAGE.SET_TOKEN('TRANS_DATE', l_trans_rec.trans_date);
1132: FND_MSG_PUB.Add;
1133: RAISE FND_API.G_EXC_ERROR;
1126: END IF;
1127: IF (l_return_val <> 0)
1128: THEN
1129: FND_MESSAGE.SET_NAME('GMI','IC_API_CANNOT_POST_CLOSED');
1130: FND_MESSAGE.SET_TOKEN('ITEM_NO' , l_trans_rec.item_no);
1131: FND_MESSAGE.SET_TOKEN('TRANS_DATE', l_trans_rec.trans_date);
1132: FND_MSG_PUB.Add;
1133: RAISE FND_API.G_EXC_ERROR;
1134: ELSIF TRUNC(l_trans_rec.trans_date, 'DD') >
1127: IF (l_return_val <> 0)
1128: THEN
1129: FND_MESSAGE.SET_NAME('GMI','IC_API_CANNOT_POST_CLOSED');
1130: FND_MESSAGE.SET_TOKEN('ITEM_NO' , l_trans_rec.item_no);
1131: FND_MESSAGE.SET_TOKEN('TRANS_DATE', l_trans_rec.trans_date);
1132: FND_MSG_PUB.Add;
1133: RAISE FND_API.G_EXC_ERROR;
1134: ELSIF TRUNC(l_trans_rec.trans_date, 'DD') >
1135: TRUNC(SYSDATE, 'DD')
1133: RAISE FND_API.G_EXC_ERROR;
1134: ELSIF TRUNC(l_trans_rec.trans_date, 'DD') >
1135: TRUNC(SYSDATE, 'DD')
1136: THEN
1137: FND_MESSAGE.SET_NAME('GMI','IC_API_CANNOT_POST_FUTURE');
1138: FND_MESSAGE.SET_TOKEN('ITEM_NO' , l_trans_rec.item_no);
1139: FND_MESSAGE.SET_TOKEN('TRANS_DATE', l_trans_rec.trans_date);
1140: FND_MSG_PUB.Add;
1141: RAISE FND_API.G_EXC_ERROR;
1134: ELSIF TRUNC(l_trans_rec.trans_date, 'DD') >
1135: TRUNC(SYSDATE, 'DD')
1136: THEN
1137: FND_MESSAGE.SET_NAME('GMI','IC_API_CANNOT_POST_FUTURE');
1138: FND_MESSAGE.SET_TOKEN('ITEM_NO' , l_trans_rec.item_no);
1139: FND_MESSAGE.SET_TOKEN('TRANS_DATE', l_trans_rec.trans_date);
1140: FND_MSG_PUB.Add;
1141: RAISE FND_API.G_EXC_ERROR;
1142: END IF;
1135: TRUNC(SYSDATE, 'DD')
1136: THEN
1137: FND_MESSAGE.SET_NAME('GMI','IC_API_CANNOT_POST_FUTURE');
1138: FND_MESSAGE.SET_TOKEN('ITEM_NO' , l_trans_rec.item_no);
1139: FND_MESSAGE.SET_TOKEN('TRANS_DATE', l_trans_rec.trans_date);
1140: FND_MSG_PUB.Add;
1141: RAISE FND_API.G_EXC_ERROR;
1142: END IF;
1143: