4 TYPE psrTyp IS RECORD (
1 PACKAGE WMS_REPLENISHMENT_PVT AUTHID CURRENT_USER AS
2 /* $Header: WMSREPVS.pls 120.7 2010/06/16 23:40:38 sahmahes ship $ */
3
5 attribute_name VARCHAR2(30),
6 priority NUMBER,
7 sort_order VARCHAR2(4));
8
9 TYPE psrTabTyp IS TABLE OF psrTyp INDEX BY BINARY_INTEGER;
10
11 g_backorder_deliv_tab WSH_UTIL_CORE.ID_TAB_TYPE;
12 g_backorder_qty_tab WSH_UTIL_CORE.ID_TAB_TYPE;
13 g_dummy_table WSH_UTIL_CORE.ID_TAB_TYPE;
14
15 TYPE CONSOL_ITEM_REPL_REC IS RECORD
16 (
17 Organization_id NUMBER,
18 Item_id NUMBER,
19 Repl_To_Subinventory_code VARCHAR2(10),
20 Repl_UOM_code VARCHAR2(3),
21 total_demand_qty NUMBER,
22 available_onhand_qty NUMBER,
23 open_mo_qty NUMBER,
24 final_replenishment_qty NUMBER,
25 date_required DATE
26 );
27 --ajith changed the IS TABLE OF CONSOL_ITEM_REPL_CUR to CONSOL_ITEM_REPL_REC
28 TYPE CONSOL_ITEM_REPL_TBL IS TABLE OF CONSOL_ITEM_REPL_REC INDEX BY BINARY_INTEGER;
29
30 -- to be used for bulk processing in the code
31 TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
32 TYPE uom_tab IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER;
33 TYPE date_tab IS TABLE OF DATE INDEX BY BINARY_INTEGER;
34 TYPE char_tab IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
35 TYPE char1_tab IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
36
37 -- The following types are used to cache the UOM conversions. The three keys to this
38 -- are the inventory item, from UOM code, and to UOM code. This will yield the conversion
39 -- rate by using a nested PLSQL table structure.
40 TYPE to_uom_code_tb IS TABLE OF NUMBER INDEX BY VARCHAR2(3);
41 TYPE from_uom_code_tb IS TABLE OF to_uom_code_tb INDEX BY VARCHAR2(3);
42 TYPE item_uom_conversion_tb IS TABLE OF from_uom_code_tb INDEX BY BINARY_INTEGER;
43
44 g_item_uom_conversion_tb item_uom_conversion_tb;
45
46 G_TRACE_ON NUMBER := NVL(fnd_profile.value('INV_DEBUG_TRACE'),2);
47
48
49 FUNCTION get_conversion_rate(p_item_id IN NUMBER,
50 p_from_uom_code IN VARCHAR2,
51 p_to_uom_code IN VARCHAR2) RETURN NUMBER;
52
53
54 PROCEDURE DYNAMIC_REPLENISHMENT(p_org_id IN NUMBER,
55 P_Batch_id IN NUMBER,
56 p_Plan_Tasks IN VARCHAR2,
57 p_Release_Sequence_Rule_Id IN NUMBER,
58 P_repl_level IN NUMBER DEFAULT 1,
59 x_msg_count OUT NOCOPY NUMBER,
60 x_return_status OUT NOCOPY VARCHAR2,
61 x_msg_data OUT NOCOPY VARCHAR2);
62
63 PROCEDURE PUSH_REPLENISHMENT(P_repl_level IN NUMBER DEFAULT 1,
64 p_Item_id IN NUMBER,
65 p_organization_id IN NUMBER,
66 p_ABC_assignment_group_id IN NUMBER, -- For ABC Compile Group
67 p_abc_class_id IN NUMBER, -- For Item Classification
68 p_Order_Type_id IN NUMBER,
69 p_Carrier_id IN NUMBER,
70 p_customer_class IN VARCHAR2,
71 p_customer_id IN NUMBER,
72 p_Ship_Method_code IN VARCHAR2,
73 p_Scheduled_Ship_Date_To IN NUMBER,
74 p_Scheduled_Ship_Date_From IN NUMBER,
75 p_Forward_Pick_Sub IN VARCHAR2,
76 p_repl_UOM IN VARCHAR2,
77 p_Repl_Lot_Size IN NUMBER,
78 p_Min_Order_lines_threshold IN NUMBER,
79 p_Min_repl_qty_threshold IN NUMBER,
80 p_max_NUM_items_for_repl IN NUMBER,
81 p_Sort_Criteria IN NUMBER,
82 p_Auto_Allocate IN VARCHAR2,
86 x_return_status OUT NOCOPY VARCHAR2,
83 p_Plan_Tasks IN VARCHAR2,
84 p_Release_Sequence_Rule_Id IN NUMBER,
85 p_Create_Reservation IN VARCHAR2,
87 x_msg_count OUT NOCOPY NUMBER,
88 x_msg_data OUT NOCOPY VARCHAR2);
89
90
91 PROCEDURE PROCESS_REPLENISHMENT(
92 p_Repl_level IN NUMBER,
93 p_repl_type IN NUMBER,
94 p_Repl_Lot_Size IN NUMBER,
95 P_consol_item_repl_tbl IN OUT NOCOPY CONSOL_ITEM_REPL_TBL, --ajith changed
96 p_Create_Reservation IN VARCHAR2,
97 p_Auto_Allocate IN VARCHAR2,
98 p_Plan_Tasks IN VARCHAR2,
99 x_return_status OUT NOCOPY VARCHAR2,
100 x_msg_count OUT NOCOPY NUMBER,
101 x_msg_data OUT NOCOPY VARCHAR2);
102
103
104
105
106 PROCEDURE CREATE_REPL_MOVE_ORDER(p_Repl_level IN NUMBER,
107 p_repl_type IN NUMBER,
108 p_consol_item_repl_tbl IN OUT NOCOPY CONSOL_ITEM_REPL_TBL,
109 p_Create_Reservation IN VARCHAR2,
110 p_Repl_Lot_Size IN NUMBER,
111 p_Auto_Allocate IN VARCHAR2,
112 p_Plan_Tasks IN VARCHAR2,
113 x_return_status OUT NOCOPY VARCHAR2,
114 x_msg_count OUT NOCOPY NUMBER,
115 x_msg_data OUT NOCOPY VARCHAR2);
116
117 PROCEDURE Get_Source_Sub_Dest_Loc_Info(p_Org_id IN NUMBER,
118 p_Item_id IN NUMBER,
119 p_Picking_Sub IN VARCHAR2,
120 x_source_sub OUT NOCOPY VARCHAR2,
121 x_src_pick_uom OUT NOCOPY VARCHAR2,
122 x_MAX_MINMAX_QUANTITY OUT nocopy NUMBER,
123 x_fixed_lot_multiple OUT nocopy NUMBER,
124 x_return_status OUT nocopy VARCHAR2) ;
125
126
127 PROCEDURE GET_OPEN_MO_QTY(p_Repl_level IN NUMBER,
128 p_repl_type IN NUMBER,
129 p_Create_Reservation IN VARCHAR2,
130 x_consol_item_repl_tbl IN OUT NOCOPY CONSOL_ITEM_REPL_TBL,
131 x_return_status OUT NOCOPY VARCHAR2,
132 x_msg_count OUT NOCOPY NUMBER,
133 x_msg_data OUT NOCOPY VARCHAR2);
134
135
136 PROCEDURE GET_AVAILABLE_ONHAND_QTY(p_Repl_level IN NUMBER,
137 p_repl_type IN NUMBER,
138 p_Create_Reservation IN VARCHAR2,
139 x_consol_item_repl_tbl IN OUT NOCOPY CONSOL_ITEM_REPL_TBL,
140 x_return_status OUT NOCOPY VARCHAR2,
141 x_msg_count OUT NOCOPY NUMBER,
142 x_msg_data OUT NOCOPY VARCHAR2);
143
144 FUNCTION get_available_capacity(p_quantity_function IN NUMBER,
145 p_organization_id IN NUMBER,
146 p_subinventory_code IN VARCHAR2,
147 p_locator_id IN NUMBER,
148 p_inventory_item_id IN NUMBER,
149 p_unit_volume IN NUMBER,
150 p_unit_volume_uom_code IN VARCHAR2,
151 p_unit_weight IN NUMBER,
152 p_unit_weight_uom_code IN VARCHAR2,
153 p_primary_uom IN VARCHAR2,
154 p_transaction_uom IN VARCHAR2,
155 p_base_uom IN VARCHAR2,
156 p_transaction_quantity IN NUMBER)
157 RETURN NUMBER;
158
159
160 PROCEDURE allocate_repl_move_order(
161 p_Quantity_function_id IN NUMBER,
162 x_return_status OUT NOCOPY VARCHAR2,
163 x_msg_count OUT NOCOPY NUMBER,
164 x_msg_data OUT nocopy VARCHAR2
165 );
166
167
168 PROCEDURE CREATE_RSV(p_replenishment_type IN NUMBER, -- 1- Stock Up/Push; 2- Dynamic
169 l_debug IN NUMBER,
170 l_organization_id IN NUMBER,
171 l_inventory_item_id IN NUMBER,
172 l_demand_type_id IN NUMBER,
173 l_demand_so_header_id IN NUMBER,
174 l_demand_line_id IN NUMBER,
175 l_split_wdd_id IN NUMBER,
176 l_primary_uom_code IN VARCHAR2,
177 l_supply_uom_code IN VARCHAR2,
178 l_atd_qty IN NUMBER,
179 l_atd_prim_qty IN NUMBER,
180 l_supply_type_id IN NUMBER,
181 l_supply_header_id IN NUMBER,
182 l_supply_line_id IN NUMBER,
183 l_supply_line_detail_id IN NUMBER,
184 l_supply_expected_time IN DATE,
185 l_demand_expected_time IN DATE,
186 l_subinventory_code IN VARCHAR2 DEFAULT NULL,
187 l_rsv_rec IN OUT NOCOPY inv_reservation_global.mtl_reservation_rec_type,
188 l_serial_number IN OUT NOCOPY inv_reservation_global.serial_number_tbl_type,
189 l_to_serial_number IN OUT NOCOPY inv_reservation_global.serial_number_tbl_type,
193 x_return_status IN OUT NOCOPY VARCHAR2,
190 l_quantity_reserved IN OUT NOCOPY NUMBER,
191 l_quantity_reserved2 IN OUT NOCOPY NUMBER,
192 l_rsv_id IN OUT NOCOPY NUMBER,
194 x_msg_count IN OUT NOCOPY NUMBER,
195 x_msg_data IN OUT NOCOPY VARCHAR2);
196
197 PROCEDURE Get_to_Sub_For_Dynamic_Repl(P_Org_id IN NUMBER,
198 P_Item_id IN NUMBER,
199 P_PRIMARY_DEMAND_QTY IN NUMBER,
200 X_TO_SUBINVENTORY_CODE IN OUT NOCOPY VARCHAR2,
201 X_REPL_UOM_CODE OUT NOCOPY VARCHAR2);
202
203
204 PROCEDURE POPULATE_DYNAMIC_REPL_DEMAND(p_repl_level IN NUMBER,
205 p_org_id IN NUMBER,
206 P_Batch_id IN NUMBER,
207 p_Release_Sequence_Rule_Id IN NUMBER,
208 x_consol_item_repl_tbl OUT NOCOPY CONSOL_ITEM_REPL_TBL,
209 x_return_status OUT NOCOPY VARCHAR2,
210 x_msg_count OUT NOCOPY NUMBER,
211 x_msg_data OUT NOCOPY VARCHAR2);
212
213 PROCEDURE POPULATE_PUSH_REPL_DEMAND(p_repl_level IN NUMBER,
214 p_Item_id IN NUMBER,
215 p_organization_id IN NUMBER,
216 p_ABC_assignment_group_id IN NUMBER, -- For ABC Compile Group
217 p_abc_class_id IN NUMBER, -- For Item Classification
218 p_Order_Type_id IN NUMBER,
219 p_Carrier_id IN NUMBER,
220 p_customer_class IN VARCHAR2,
221 p_customer_id IN NUMBER,
222 p_Ship_Method_code IN VARCHAR2,
223 p_Scheduled_Ship_Date_To IN NUMBER,
224 p_Scheduled_Ship_Date_From IN NUMBER,
225 p_Forward_Pick_Sub IN VARCHAR2,
226 p_repl_UOM IN VARCHAR2,
227 p_Release_Sequence_Rule_Id IN NUMBER,
228 p_Min_Order_lines_threshold IN NUMBER,
229 p_Min_repl_qty_threshold IN NUMBER,
230 p_max_NUM_items_for_repl IN NUMBER,
231 p_Sort_Criteria IN NUMBER,
232 x_consol_item_repl_tbl OUT NOCOPY CONSOL_ITEM_REPL_TBL,
233 x_return_status OUT NOCOPY VARCHAR2,
234 x_msg_count OUT NOCOPY NUMBER,
235 x_msg_data OUT NOCOPY VARCHAR2);
236
237 --ajith changed the procedure name from POPULATE_REPL_DEMAND_NEXT_LEVEL to POPULATE_REPL_DEMAND_NEXT_LEV because only 30 chars allowed.
238 /*
239 PROCEDURE POPULATE_REPL_DEMAND_NEXT_LEV(P_replenishment_level IN NUMBER,
240 x_consol_item_repl_tbl OUT NOCOPY CONSOL_ITEM_REPL_TBL,
241 x_return_status OUT NOCOPY VARCHAR2,
242 x_msg_count OUT NOCOPY NUMBER,
243 x_msg_data OUT NOCOPY VARCHAR2);
244 */
245
246 FUNCTION GET_SORT_TRIP_STOP_DATE(P_delivery_detail_id IN NUMBER,
247 P_TRIP_STOP_DATE_SORT IN VARCHAR2)
248 RETURN NUMBER;
249
250
251 FUNCTION GET_SORT_INVOICE_VALUE(P_SOURCE_HEADER_ID IN NUMBER, P_INVOICE_VALUE_SORT VARCHAR2)
252 RETURN NUMBER;
253
254
255 FUNCTION Get_Expected_Time(p_demand_type_id in number,
256 p_source_header_id in number,
257 p_source_line_id in number,
258 p_delivery_line_id in number) RETURN DATE;
259
260
261 PROCEDURE UPDATE_DELIVERY_DETAIL (
262 p_delivery_detail_id IN NUMBER,
263 P_PRIMARY_QUANTITY IN NUMBER,
264 P_SPLIT_DELIVERY_DETAIL_ID IN NUMBER DEFAULT NULL,
265 p_split_source_line_id IN NUMBER DEFAULT NULL,
266 x_return_status OUT NOCOPY VARCHAR2
267 );
268
269
270 PROCEDURE ADJUST_ATR_FOR_ITEM (p_repl_level IN NUMBER
271 , p_repl_type IN NUMBER
272 , x_consol_item_repl_tbl IN OUT NOCOPY CONSOL_ITEM_REPL_TBL
273 , x_return_status OUT NOCOPY VARCHAR2
274 );
275
276 --Updates the replenishment_status of single passed delivery_detail_id
277 -- If p_repl_status = 'R' marks it RR
278 -- If p_repl_status = 'C' marks it RC
279 -- If p_repl_status = NULL - Reverts WDD to original status (Ready to release / backorder)
280 --
281 PROCEDURE update_wdd_repl_status (p_deliv_detail_id IN NUMBER
282 , p_repl_status IN VARCHAR2
283 , p_deliv_qty IN NUMBER DEFAULT NULL
284 , x_return_status OUT NOCOPY VARCHAR2
285 );
286
287
288 PROCEDURE Init_Rules(p_pick_seq_rule_id IN NUMBER
289 , x_order_id_sort OUT NOCOPY VARCHAR2
290 , x_INVOICE_VALUE_SORT OUT NOCOPY VARCHAR2
291 , x_SCHEDULE_DATE_SORT OUT NOCOPY VARCHAR2
292 , x_trip_stop_date_sort OUT NOCOPY VARCHAR2
293 , x_SHIPMENT_PRI_SORT OUT NOCOPY VARCHAR2
294 , x_ordered_psr OUT nocopy psrTabTyp
295 , x_api_status OUT NOCOPY VARCHAR2);
296
297 END WMS_REPLENISHMENT_PVT;