144: IF l_kanban_details_rec.kanban_card_id IS NULL THEN
145:
146: x_ret_status := FND_API.G_RET_STS_ERROR;
147:
148: fnd_message.set_name('FLM', 'FLM_INVALID_KANBAN');
149: x_err_msg := fnd_message.get;
150:
151: RETURN;
152:
145:
146: x_ret_status := FND_API.G_RET_STS_ERROR;
147:
148: fnd_message.set_name('FLM', 'FLM_INVALID_KANBAN');
149: x_err_msg := fnd_message.get;
150:
151: RETURN;
152:
153: END IF;
156: IF p_quantity IS NULL OR p_quantity <= 0 THEN
157:
158: x_ret_status := FND_API.G_RET_STS_ERROR;
159:
160: fnd_message.set_name('FLM', 'FLM_ATTRIBUTE_INVALID');
161: fnd_message.set_token('ATTRIBUTE', 'Receipt Quantity');
162: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
163:
164: END IF;
157:
158: x_ret_status := FND_API.G_RET_STS_ERROR;
159:
160: fnd_message.set_name('FLM', 'FLM_ATTRIBUTE_INVALID');
161: fnd_message.set_token('ATTRIBUTE', 'Receipt Quantity');
162: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
163:
164: END IF;
165:
158: x_ret_status := FND_API.G_RET_STS_ERROR;
159:
160: fnd_message.set_name('FLM', 'FLM_ATTRIBUTE_INVALID');
161: fnd_message.set_token('ATTRIBUTE', 'Receipt Quantity');
162: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
163:
164: END IF;
165:
166:
168: IF l_kanban_details_rec.card_status <> INV_KANBAN_PVT.G_Card_Status_Active THEN
169:
170: x_ret_status := FND_API.G_RET_STS_ERROR;
171:
172: fnd_message.set_name('FLM', 'FLM_INVALID_CARD_STATUS');
173: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
174:
175: END IF;
176:
169:
170: x_ret_status := FND_API.G_RET_STS_ERROR;
171:
172: fnd_message.set_name('FLM', 'FLM_INVALID_CARD_STATUS');
173: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
174:
175: END IF;
176:
177: -- Validate source type for supplier / inter org
178: IF l_kanban_details_rec.source_type NOT IN (INV_KANBAN_PVT.G_Source_Type_InterOrg, INV_KANBAN_PVT.G_Source_Type_Supplier) THEN
179:
180: x_ret_status := FND_API.G_RET_STS_ERROR;
181:
182: fnd_message.set_name('FLM', 'FLM_RCV_SRC_TYPE_ERR');
183: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
184:
185: END IF;
186:
179:
180: x_ret_status := FND_API.G_RET_STS_ERROR;
181:
182: fnd_message.set_name('FLM', 'FLM_RCV_SRC_TYPE_ERR');
183: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
184:
185: END IF;
186:
187: -- Validate supply status for In Process
188: IF TRUNC(l_kanban_details_rec.supply_status) <> INV_KANBAN_PVT.G_Supply_Status_InProcess THEN
189:
190: x_ret_status := FND_API.G_RET_STS_ERROR;
191:
192: fnd_message.set_name('FLM', 'FLM_INVALID_KANBAN_STATUS');
193: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
194:
195: RETURN;
196:
189:
190: x_ret_status := FND_API.G_RET_STS_ERROR;
191:
192: fnd_message.set_name('FLM', 'FLM_INVALID_KANBAN_STATUS');
193: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
194:
195: RETURN;
196:
197: END IF;
204: IF l_item_details_rec.lot_control_code <> 1 OR l_item_details_rec.serial_number_control_code <> 1 THEN
205:
206: x_ret_status := FND_API.G_RET_STS_ERROR;
207:
208: fnd_message.set_name('FLM', 'FLM_EKB_LOT_SERIAL_ERR');
209: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
210:
211: END IF;
212:
205:
206: x_ret_status := FND_API.G_RET_STS_ERROR;
207:
208: fnd_message.set_name('FLM', 'FLM_EKB_LOT_SERIAL_ERR');
209: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
210:
211: END IF;
212:
213:
220: IF l_po_details_rec.po_header_id IS NULL THEN
221:
222: x_ret_status := FND_API.G_RET_STS_ERROR;
223:
224: fnd_message.set_name ('FLM', 'FLM_EKB_PO_NOT_EXISTS');
225: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
226:
227: ELSE
228:
221:
222: x_ret_status := FND_API.G_RET_STS_ERROR;
223:
224: fnd_message.set_name ('FLM', 'FLM_EKB_PO_NOT_EXISTS');
225: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
226:
227: ELSE
228:
229: -- Check for Approved PO
230: IF l_po_details_rec.approved_flag <> 'Y' THEN
231:
232: x_ret_status := FND_API.G_RET_STS_ERROR;
233:
234: fnd_message.set_name('FLM', 'FLM_EKB_APPROVED_PO');
235: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
236:
237: END IF;
238:
231:
232: x_ret_status := FND_API.G_RET_STS_ERROR;
233:
234: fnd_message.set_name('FLM', 'FLM_EKB_APPROVED_PO');
235: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
236:
237: END IF;
238:
239: l_receivable_quantity := l_po_details_rec.quantity_ordered
252: IF l_ship_totals_rec.num_of_ship_lines = 0 THEN
253:
254: x_ret_status := FND_API.G_RET_STS_ERROR;
255:
256: fnd_message.set_name('FLM', 'FLM_EKB_SHIP_NOT_EXISTS');
257: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
258:
259: ELSE
260:
253:
254: x_ret_status := FND_API.G_RET_STS_ERROR;
255:
256: fnd_message.set_name('FLM', 'FLM_EKB_SHIP_NOT_EXISTS');
257: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
258:
259: ELSE
260:
261: l_receivable_quantity := l_ship_totals_rec.quantity_shipped - l_ship_totals_rec.quantity_received;
268: IF p_quantity > l_receivable_quantity THEN
269:
270: x_ret_status := FND_API.G_RET_STS_ERROR;
271:
272: fnd_message.set_name('FLM', 'FLM_RECEIVE_QTY_ERR');
273: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
274:
275: END IF;
276:
269:
270: x_ret_status := FND_API.G_RET_STS_ERROR;
271:
272: fnd_message.set_name('FLM', 'FLM_RECEIVE_QTY_ERR');
273: x_err_msg := x_err_msg || fnd_message.get || FND_CONST.NEWLINE;
274:
275: END IF;
276:
277: