1 PACKAGE csi_interface_pkg AUTHID CURRENT_USER AS
2 /* $Header: csipitxs.pls 120.3.12020000.7 2012/12/14 06:04:36 mvaradam ship $ */
3
4 g_om_source_table constant varchar2(30) := 'OE_ORDER_LINES_ALL';
5 g_cz_source_table constant varchar2(30) := 'CONFIGURATOR';
6 g_oke_source_table constant varchar2(30) := 'WSH_DELIVERY_DETAILS';
7 g_ship_source_table constant varchar2(30) := 'WSH_DELIVERY_DETAILS';
8
9 g_om_txn_type_id constant number := 51;
10 g_rma_txn_type_id constant number := 53;
11 g_oke_txn_type_id constant number := 326;
12 g_macd_txn_type_id constant number := 401; --Added for bug 5194812
13
14 TYPE source_header_rec IS RECORD(
15 source_header_id number,
16 source_header_ref varchar2(150), -- Changed for bug#15931790
17 org_id number,
18 sold_from_org_id number,
19 owner_party_account_id number,
20 agreement_id number,
21 ship_to_address_id number,
22 bill_to_address_id number,
23 ship_to_contact_id number,
24 bill_to_contact_id number,
25 cust_po_number varchar2(50),
26 -- For partner ordering
27 sold_to_org_id number,
28 deliver_to_org_id number);
29
30
31 TYPE source_line_rec IS RECORD(
32 source_table varchar2(80),
33 source_line_id number,
34 source_line_ref varchar2(150), -- Changed for bug#15931790
35 org_id number,
36 sold_from_org_id number,
37 inventory_item_id number,
38 organization_id number,
39 item_revision varchar2(3),
40 uom_code varchar2(3),
41 source_quantity number,
42 shipped_quantity number,
43 shipped_date date,
44 fulfilled_quantity number,
45 fulfilled_date date,
46 owner_party_id number,
47 owner_party_account_id number,
48 ship_to_address_id number,
49 bill_to_address_id number,
50 ship_to_party_site_id number,
51 agreement_id number,
52 ship_to_contact_id number,
53 ship_to_contact_party_id number,
54 bill_to_contact_id number,
55 bill_to_contact_party_id number,
56 link_to_line_id number,
57 top_model_line_id number,
58 ato_line_id number,
59 item_type_code varchar2(30),
60 cust_po_number varchar2(50),
61 config_header_id number,
62 config_rev_num number,
63 config_item_id number,
64 batch_validate_flag varchar2(1),
65 -- For partner ordering
66 sold_to_org_id number,
67 deliver_to_org_id number,
68 ib_current_loc varchar2(60),
69 ib_current_loc_id number,
70 ib_install_loc varchar2(60),
71 ib_install_loc_id number,
72 install_to_party_site_id number);
73
74 TYPE source_line_tbl IS TABLE OF source_line_rec INDEX BY BINARY_INTEGER;
75
76 PROCEDURE get_source_info(
77 p_source_table IN varchar2,
78 p_source_id IN number,
79 x_source_header_rec OUT NOCOPY source_header_rec,
80 x_source_line_rec OUT NOCOPY source_line_rec,
81 x_return_status OUT NOCOPY varchar);
82
83 TYPE item_attributes_rec IS RECORD(
84 serial_control_code number,
85 lot_control_code number,
86 locator_control_code number,
87 revision_control_code number,
88 ib_trackable_flag varchar2(1),
89 shippable_flag varchar2(1),
90 inv_item_flag varchar2(1),
91 stockable_flag varchar2(1),
92 bom_item_type number,
93 pick_components_flag varchar2(1),
94 primary_uom_code varchar2(8),
95 ato_item_flag varchar2(1),
96 model_item_id number,
97 ib_item_instance_class varchar2(30),
98 config_model_type varchar2(30),
99 negative_balances_code number);
100
101 PROCEDURE get_item_attributes(
102 p_transaction_id IN number,-- Added for bug#14835893
103 p_inventory_item_id IN number,
104 p_organization_id IN number,
105 x_item_attrib_rec OUT NOCOPY item_attributes_rec,
106 x_return_status OUT NOCOPY varchar2);
107
108
109 /* ------------------------------------------------------------------- */
110 /* use the source information and build a default transaction detail */
111 /* ------------------------------------------------------------------- */
112
113 -- this routine also splits the txn_line_detail based on the srl cntrl flag
114 -- and also based on the parent/child ratio so that the instance are
115 -- based on the number of txn line detail records
116
117 -- also cascades the transaction details from its parent having txn details
118
119 PROCEDURE build_default_txn_detail(
120 p_source_table IN varchar2,
121 p_source_id IN number,
122 p_source_header_rec IN source_header_rec,
123 p_source_line_rec IN source_line_rec,
124 p_csi_txn_rec IN csi_datastructures_pub.transaction_rec,
125 px_txn_line_rec IN OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
126 x_txn_line_detail_tbl OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
127 x_txn_party_tbl OUT NOCOPY csi_t_datastructures_grp.txn_party_detail_tbl,
128 x_txn_party_acct_tbl OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
129 x_txn_org_assgn_tbl OUT NOCOPY csi_t_datastructures_grp.txn_org_assgn_tbl,
130 x_pricing_attribs_tbl OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl,
131 x_return_status OUT NOCOPY varchar2);
132
133
134 /* ------------------------------------------------------------------- */
135 /* this routine is to rebuild the user entered transaction detail with */
136 /* the addition of all the defaults like contacts, org assignments etc.*/
137 /* ------------------------------------------------------------------- */
138
139 -- rebuild also splits the transaction detail bases on the serial control
140 -- flag or the based on the parent/child ratios.
141
142 -- for shipping we might want to pass the mtl_txn_table based on which we should
143 -- re-build the txn detail table
144
145 PROCEDURE rebuild_txn_detail(
146 p_source_table IN varchar2,
147 p_source_id IN number,
148 p_source_header_rec IN source_header_rec,
149 p_source_line_rec IN source_line_rec,
150 p_csi_txn_rec IN csi_datastructures_pub.transaction_rec,
151 px_txn_line_rec IN OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
152 px_txn_line_detail_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
153 px_txn_party_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_party_detail_tbl,
154 px_txn_party_acct_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
155 px_txn_org_assgn_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_org_assgn_tbl,
156 x_pricing_attribs_tbl OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl,
157 x_return_status OUT NOCOPY varchar2);
158
159
160 PROCEDURE get_cz_txn_details(
161 p_config_session_key IN csi_utility_grp.config_session_key,
162 x_txn_line_rec OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
163 x_txn_line_dtl_tbl OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
164 x_txn_party_tbl OUT NOCOPY csi_t_datastructures_grp.txn_party_detail_tbl,
165 x_txn_party_acct_tbl OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
166 x_txn_org_assgn_tbl OUT NOCOPY csi_t_datastructures_grp.txn_org_assgn_tbl,
167 x_txn_ii_rltns_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ii_rltns_tbl,
168 x_txn_eav_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
169 x_return_status OUT NOCOPY varchar2);
170
171 PROCEDURE get_config_keys_for_order(
172 p_header_id IN number,
173 x_config_session_keys OUT NOCOPY csi_utility_grp.config_session_keys,
174 x_return_status OUT NOCOPY varchar2);
175
176 PROCEDURE get_cz_relations(
177 p_source_header_rec IN source_header_rec,
178 p_source_line_rec IN source_line_rec,
179 px_txn_line_rec IN OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
180 px_txn_line_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
181 x_txn_ii_rltns_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ii_rltns_tbl,
182 x_txn_eav_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
183 x_return_status OUT NOCOPY varchar2);
184
185 /* this routine takes the source line info and the current entered source txn
186 line detail info and builds the non source relation based on the source table
187 information
188
189 . if it is for the config line then it would read the config txn detail to read
190 the relationship and builds them to the corresponding source line detail
191 entered in the order line level
192
193 . if it is for the fulfillment/shipment then it reads the parent and child
194 information from the order line and builds the parent and the child relation
195 for the current order line being processed
196
197 */
198
199 PROCEDURE get_relations(
200 p_source_id IN number,
201 p_source_table IN varchar2,
202 p_source_header_rec IN source_header_rec,
203 p_source_line_rec IN source_line_rec,
204 px_txn_line_rec IN OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
205 px_txn_line_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
206 x_txn_ii_rltns_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ii_rltns_tbl,
207 x_txn_eav_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
208 x_return_status OUT NOCOPY varchar2);
209
210 PROCEDURE get_extended_attrib_values(
211 p_source_id IN number,
212 p_source_table IN varchar2,
213 p_source_header_rec IN source_header_rec,
214 p_source_line_rec IN source_line_rec,
215 px_txn_line_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
216 x_txn_eav_tbl OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
217 x_return_status OUT NOCOPY varchar2);
218
219 PROCEDURE get_order_line_source_info(
220 p_order_line_id IN number,
221 x_source_header_rec OUT NOCOPY source_header_rec,
222 x_source_line_rec OUT NOCOPY source_line_rec,
223 x_return_status OUT NOCOPY varchar2);
224
225 PROCEDURE dump_instance_key(
226 p_instance_key IN csi_utility_grp.config_instance_key);
227
228 PROCEDURE dump_instance_keys(
229 p_instance_keys IN csi_utility_grp.config_instance_keys);
230
231 /*
232 PROCEDURE dump_instance_keys(
233 p_instance_keys IN csi_utility_grp.config_instance_keys)
234 IS
235 l_rec csi_utility_grp.config_instance_key;
236 BEGIN
237 IF p_instance_keys.COUNT > 0 THEN
238 FOR l_ind IN p_instance_keys.FIRST .. p_instance_keys.LAST
239 LOOP
240 l_rec := p_instance_keys(l_ind);
241 csi_t_gen_utility_pvt.add('Instance rec: #'||l_ind);
242 csi_t_gen_utility_pvt.add(' inst_hdr_id :'||l_rec.inst_hdr_id
243 csi_t_gen_utility_pvt.add(' inst_item_id :'||l_rec.inst_item_id
244 csi_t_gen_utility_pvt.add(' inst_rev_num :'||l_rec.inst_rev_num
245 csi_t_gen_utility_pvt.add(' inst_baseline_rev_num :'||l_rec.inst_baseline_rev_num
246 END LOOP;
247 END IF;
248 END dump_instance_keys;
249 */
250
251 PROCEDURE interface_ib(
252 p_source_header_rec IN csi_interface_pkg.source_header_rec,
253 p_source_line_rec IN csi_interface_pkg.source_line_rec,
254 px_csi_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
255 px_txn_line_rec IN OUT NOCOPY csi_t_datastructures_grp.txn_line_rec,
256 px_txn_line_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
257 px_txn_party_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_party_detail_tbl,
258 px_txn_party_acct_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
259 px_txn_org_assgn_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_org_assgn_tbl,
260 px_txn_eav_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
261 px_txn_ii_rltns_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_ii_rltns_tbl,
262 px_pricing_attribs_tbl IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl,
263 x_return_status OUT NOCOPY varchar2,
264 x_return_message OUT NOCOPY varchar2);
265
266 FUNCTION check_MACD_processing(
267 p_config_session_key IN csi_utility_grp.config_session_key,
268 x_return_status OUT NOCOPY varchar2)
269 RETURN boolean;
270
271 TYPE mtl_txn_rec IS RECORD(
272 trx_source_line_id number,
273 inventory_item_id number,
274 organization_id number,
275 revision varchar2(30),
276 subinventory_code varchar2(80),
277 locator_id number,
278 lot_number varchar2(80),
279 serial_number varchar2(80),
280 transaction_quantity number,
281 transaction_uom varchar2(3),
282 transaction_date date,
283 lot_control_code number,
284 serial_control_code number,
285 primary_uom varchar2(3),
286 primary_quantity number,
287 transaction_type_id number,
288 transaction_action_id number,
289 src_serial_flag varchar2(1),
290 dest_serial_flag varchar2(1),
291 create_update_flag varchar2(1),
292 match_flag varchar2(1) := 'N',
293 instance_id number,
294 negative_instance_flag varchar2(1) := 'N',
295 object_version_num number);
296
297 TYPE mtl_txn_tbl IS TABLE OF mtl_txn_rec INDEX BY BINARY_INTEGER;
298
299 PROCEDURE process_cz_txn_details(
300 p_config_session_keys IN csi_utility_grp.config_session_keys,
301 p_instance_id IN number,
302 x_instance_tbl OUT NOCOPY csi_datastructures_pub.instance_tbl,
303 x_return_status OUT NOCOPY varchar2);
304
305 -- following routines are for processing mtl transactions
306
307 PROCEDURE get_mtl_txn_tbl(
308 p_mtl_txn_id IN number,
309 x_mtl_txn_tbl OUT NOCOPY mtl_txn_tbl,
310 x_return_status OUT NOCOPY varchar2);
311
312 PROCEDURE pre_process_mtl_txn_tbl(
313 p_item_attrib_rec IN item_attributes_rec,
314 px_mtl_txn_tbl IN OUT NOCOPY mtl_txn_tbl,
315 x_return_status OUT NOCOPY varchar2);
316
317 PROCEDURE get_inventory_instances(
318 p_item_attrib_rec IN item_attributes_rec,
319 px_mtl_txn_tbl IN OUT NOCOPY mtl_txn_tbl,
320 x_return_status OUT NOCOPY varchar2);
321
322 PROCEDURE decrement_inventory_instances(
323 p_item_attrib_rec IN item_attributes_rec,
324 p_mtl_txn_tbl IN OUT NOCOPY mtl_txn_tbl,
325 px_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
326 x_return_status OUT NOCOPY varchar2);
327
328 PROCEDURE sync_txn_dtl_and_mtl_txn(
329 p_mtl_txn_tbl IN mtl_txn_tbl,
330 p_item_attrib_rec IN item_attributes_rec,
331 px_txn_line_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_line_detail_tbl,
332 px_txn_party_dtl_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_party_detail_tbl,
333 px_txn_party_acct_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_pty_acct_detail_tbl,
334 px_txn_org_assgn_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_org_assgn_tbl,
335 px_txn_eav_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_ext_attrib_vals_tbl,
336 px_txn_ii_rltns_tbl IN OUT NOCOPY csi_t_datastructures_grp.txn_ii_rltns_tbl,
337 x_return_status OUT NOCOPY varchar2);
338
339 FUNCTION check_standard_bom_pc(
340 p_instance_id IN NUMBER,
341 p_std_item_rec IN csi_datastructures_pub.instance_rec,
342 p_bom_item_type IN NUMBER)
343 RETURN boolean;
344
345 PROCEDURE build_relationship_tbl(
346 p_txn_ii_rltns_tbl IN csi_t_datastructures_grp.txn_ii_rltns_tbl,
347 p_txn_line_dtl_tbl IN csi_t_datastructures_grp.txn_line_detail_tbl,
348 x_c_ii_rltns_tbl OUT NOCOPY csi_datastructures_pub.ii_relationship_tbl,
349 x_u_ii_rltns_tbl OUT NOCOPY csi_datastructures_pub.ii_relationship_tbl,
350 x_return_status OUT NOCOPY varchar2);
351
352 END csi_interface_pkg;