17: select
18: count(picking_line_detail_id),
19: min(picking_line_detail_id),
20: sum(requested_quantity)
21: from so_picking_line_details
22: where picking_line_id = pl_id
23: and NVL(shipped_quantity, 0) = 0
24: and NVL(released_flag, 'Y') = 'Y'
25: group by
61: sql_statement NUMBER;
62: err_msg VARCHAR2(255);
63: CURSOR c3( pl_id NUMBER ) IS
64: SELECT picking_line_detail_id
65: FROM so_picking_line_details
66: WHERE picking_line_id = pl_id
67: FOR UPDATE OF picking_line_detail_id NOWAIT;
68: BEGIN
69: SAVEPOINT before_consolidate;
100: EXIT WHEN c2%NOTFOUND;
101:
102: IF ( pld_count > 1 ) THEN
103: sql_statement := 50;
104: DELETE FROM so_picking_line_details
105: WHERE picking_line_id = pl_id
106: AND shipped_quantity = 0
107: AND NVL(released_flag, 'Y') = 'Y'
108: AND picking_line_detail_id <> keep_pld_id
167: nvl(AUTOSCHEDULED_FLAG, -99999),
168: nvl(delivery, -99999),
169: nvl(update_flag, -99999),
170: nvl(detail_type_code, -99999)
171: FROM so_picking_line_details
172: WHERE picking_line_detail_id = keep_pld_id);
173:
174: sql_statement := 60;
175: UPDATE so_picking_line_details
171: FROM so_picking_line_details
172: WHERE picking_line_detail_id = keep_pld_id);
173:
174: sql_statement := 60;
175: UPDATE so_picking_line_details
176: SET requested_quantity = sum_requested,
177: serial_number = NULL
178: WHERE picking_line_detail_id = keep_pld_id;
179: END IF;