[Home] [Help]
PACKAGE BODY: APPS.OE_ORDER_GRP
Source
1 PACKAGE BODY OE_Order_GRP AS
2 /* $Header: OEXGORDB.pls 120.19.12020000.2 2013/01/17 15:52:00 sujithku ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Order_GRP';
7
8 -- Local procedure: Control_Rec_For_Service_Level
9 PROCEDURE Control_Rec_For_Service_Level
10 ( p_api_service_level IN VARCHAR2
11 , p_control_rec IN OE_GLOBALS.Control_Rec_Type
12 , p_validation_level IN VARCHAR2
13 , x_control_rec OUT NOCOPY /* file.sql.39 change */ OE_GLOBALS.Control_Rec_Type
14 , x_validation_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
15 )
16 IS
17 BEGIN
18
19 IF p_control_rec.controlled_operation THEN
20 x_control_rec.process_partial := p_control_rec.process_partial;
21 END IF;
22
23 IF p_api_service_level = OE_GLOBALS.G_CHECK_SECURITY_ONLY THEN
24
25 x_control_rec.controlled_operation := TRUE;
26 x_control_rec.check_security := TRUE;
27 -- Bug 2988993 => clear_dependents should also be FALSE
28 -- if default attributes should be FALSE
29 x_control_rec.clear_dependents := FALSE;
30 x_control_rec.default_attributes := FALSE;
31 x_control_rec.change_attributes := FALSE;
32 x_control_rec.validate_entity := FALSE;
33 x_control_rec.write_to_db := FALSE;
34 x_control_rec.process := FALSE;
35
36 x_validation_level := FND_API.G_VALID_LEVEL_NONE;
37
38 ELSIF p_api_service_level = OE_GLOBALS.G_VALIDATION_ONLY THEN
39
40 x_control_rec.controlled_operation := TRUE;
41 x_control_rec.check_security := TRUE;
42 x_control_rec.default_attributes := TRUE;
43 x_control_rec.change_attributes := TRUE;
44 x_control_rec.validate_entity := TRUE;
45 x_control_rec.write_to_db := TRUE;
46 x_control_rec.process := FALSE;
47
48 -- No check for branch scheduling is needed. Therefore, removing the
49 -- check for profile value.
50 OE_SCHEDULE_UTIL.OESCH_PERFORM_SCHEDULING := 'N';
51
52
53 x_validation_level := FND_API.G_VALID_LEVEL_FULL;
54
55
56 ELSE
57
58 x_control_rec.controlled_operation := p_control_rec.controlled_operation;
59 x_control_rec.private_call := FALSE;
60
61 x_validation_level := p_validation_level;
62
63 END IF;
64
65 x_control_rec.require_reason := p_control_rec.require_reason;
66
67 END Control_Rec_For_Service_Level;
68
69 --For bug 3390458
70 Procedure RTrim_data
71 ( p_x_header_rec IN OUT NOCOPY OE_Order_Pub.Header_Rec_Type
72 , p_x_line_tbl IN OUT NOCOPY OE_Order_Pub.Line_Tbl_Type
73 , x_return_status OUT NOCOPY /* file.sql.39 change */ Varchar2)
74 IS
75 BEGIN
76
77 p_x_header_rec.transactional_curr_code:=RTRIM(p_x_header_rec.transactional_curr_code,' ');
78 p_x_header_rec.packing_instructions:=RTRIM(p_x_header_rec.packing_instructions,' ');
79 p_x_header_rec.shipping_instructions:=RTRIM(p_x_header_rec.shipping_instructions,' ');
80 p_x_header_rec.cust_po_number:=RTRIM(p_x_header_rec.cust_po_number,' ');
81 p_x_header_rec.tp_context:=RTRIM(p_x_header_rec.tp_context,' ');
82 p_x_header_rec.tp_attribute1:=RTRIM(p_x_header_rec.tp_attribute1,' ');
83 p_x_header_rec.tp_attribute2:=RTRIM(p_x_header_rec.tp_attribute2,' ');
84 p_x_header_rec.tp_attribute3:=RTRIM(p_x_header_rec.tp_attribute3,' ');
85 p_x_header_rec.tp_attribute4:=RTRIM(p_x_header_rec.tp_attribute4,' ');
86 p_x_header_rec.tp_attribute5:=RTRIM(p_x_header_rec.tp_attribute5,' ');
87 p_x_header_rec.tp_attribute6:=RTRIM(p_x_header_rec.tp_attribute6,' ');
88 p_x_header_rec.tp_attribute7:=RTRIM(p_x_header_rec.tp_attribute7,' ');
89 p_x_header_rec.tp_attribute8:=RTRIM(p_x_header_rec.tp_attribute8,' ');
90 p_x_header_rec.tp_attribute9:=RTRIM(p_x_header_rec.tp_attribute9,' ');
91 p_x_header_rec.tp_attribute10:=RTRIM(p_x_header_rec.tp_attribute10,' ');
92 p_x_header_rec.tp_attribute11:=RTRIM(p_x_header_rec.tp_attribute11,' ');
93 p_x_header_rec.tp_attribute12:=RTRIM(p_x_header_rec.tp_attribute12,' ');
94 p_x_header_rec.tp_attribute13:=RTRIM(p_x_header_rec.tp_attribute13,' ');
95 p_x_header_rec.tp_attribute14:=RTRIM(p_x_header_rec.tp_attribute14,' ');
96 p_x_header_rec.tp_attribute15:=RTRIM(p_x_header_rec.tp_attribute15,' ');
97
98 FOR I IN 1..p_x_line_tbl.COUNT
99 LOOP
100 p_x_line_tbl(I).customer_dock_code:=RTRIM(p_x_line_tbl(I).customer_dock_code,' ');
101 p_x_line_tbl(I).customer_job:=RTRIM(p_x_line_tbl(I).customer_job,' ');
102 p_x_line_tbl(I).cust_production_seq_num:=RTRIM(p_x_line_tbl(I).cust_production_seq_num,' ');
103 p_x_line_tbl(I).customer_production_line:=RTRIM(p_x_line_tbl(I).customer_production_line,' ');
104 p_x_line_tbl(I).end_item_unit_number:=RTRIM(p_x_line_tbl(I).end_item_unit_number,' ');
105 p_x_line_tbl(I).user_item_description:=RTRIM(p_x_line_tbl(I).user_item_description,' ');
106 p_x_line_tbl(I).packing_instructions:=RTRIM(p_x_line_tbl(I).packing_instructions,' ');
107 p_x_line_tbl(I).shipping_instructions:=RTRIM(p_x_line_tbl(I).shipping_instructions,' ');
108 p_x_line_tbl(I).cust_po_number:=RTRIM(p_x_line_tbl(I).cust_po_number,' ');
109 p_x_line_tbl(I).cust_model_serial_number:=RTRIM(p_x_line_tbl(I).cust_model_serial_number,' ');
110 p_x_line_tbl(I).tp_context:=RTRIM(p_x_line_tbl(I).tp_context,' ');
111 p_x_line_tbl(I).tp_attribute1:=RTRIM(p_x_line_tbl(I).tp_attribute1,' ');
112 p_x_line_tbl(I).tp_attribute2:=RTRIM(p_x_line_tbl(I).tp_attribute2,' ');
113 p_x_line_tbl(I).tp_attribute3:=RTRIM(p_x_line_tbl(I).tp_attribute3,' ');
114 p_x_line_tbl(I).tp_attribute4:=RTRIM(p_x_line_tbl(I).tp_attribute4,' ');
115 p_x_line_tbl(I).tp_attribute5:=RTRIM(p_x_line_tbl(I).tp_attribute5,' ');
116 p_x_line_tbl(I).tp_attribute6:=RTRIM(p_x_line_tbl(I).tp_attribute6,' ');
117 p_x_line_tbl(I).tp_attribute7:=RTRIM(p_x_line_tbl(I).tp_attribute7,' ');
118 p_x_line_tbl(I).tp_attribute8:=RTRIM(p_x_line_tbl(I).tp_attribute8,' ');
119 p_x_line_tbl(I).tp_attribute9:=RTRIM(p_x_line_tbl(I).tp_attribute9,' ');
120 p_x_line_tbl(I).tp_attribute10:=RTRIM(p_x_line_tbl(I).tp_attribute10,' ');
121 p_x_line_tbl(I).tp_attribute11:=RTRIM(p_x_line_tbl(I).tp_attribute11,' ');
122 p_x_line_tbl(I).tp_attribute12:=RTRIM(p_x_line_tbl(I).tp_attribute12,' ');
123 p_x_line_tbl(I).tp_attribute13:=RTRIM(p_x_line_tbl(I).tp_attribute13,' ');
124 p_x_line_tbl(I).tp_attribute14:=RTRIM(p_x_line_tbl(I).tp_attribute14,' ');
125 p_x_line_tbl(I).tp_attribute15:=RTRIM(p_x_line_tbl(I).tp_attribute15,' ');
126
127 END LOOP;
128
129 END RTrim_data;
130
131
132 -- Start of Comments
133 -- API name Process_Order
134 -- Type Group
135 -- Function OverLoaded
136 --
137 -- Pre-reqs
138 --
139 -- Parameters
140 --
141 -- Version Current version = 1.0
142 -- Initial version = 1.0
143 --
144 -- Notes
145 --
146 -- End of Comments
147
148 PROCEDURE Process_Order
149 ( p_api_version_number IN NUMBER
150 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
151 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
152 , p_commit IN VARCHAR2 := FND_API.G_FALSE
153 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
154 , p_control_rec IN OE_GLOBALS.Control_Rec_Type :=
155 OE_GLOBALS.G_MISS_CONTROL_REC
156 , p_api_service_level IN VARCHAR2 := OE_GLOBALS.G_ALL_SERVICE
157 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
158 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
159 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
160 , p_header_rec IN OE_Order_Pub.Header_Rec_Type :=
161 OE_Order_PUB.G_MISS_HEADER_REC
162 , p_old_header_rec IN OE_Order_PUB.Header_Rec_Type :=
163 OE_Order_PUB.G_MISS_HEADER_REC
164 , p_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type :=
165 OE_Order_PUB.G_MISS_HEADER_VAL_REC
166 , p_old_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type :=
167 OE_Order_PUB.G_MISS_HEADER_VAL_REC
168 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type :=
169 OE_Order_PUB.G_MISS_HEADER_ADJ_TBL
170 , p_old_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type :=
171 OE_Order_PUB.G_MISS_HEADER_ADJ_TBL
172 , p_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type :=
173 OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL
174 , p_old_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type :=
175 OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL
176 , p_Header_price_Att_tbl IN OE_Order_PUB.Header_Price_Att_Tbl_Type :=
177 OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL
178 , p_old_Header_Price_Att_tbl IN OE_Order_PUB.Header_Price_Att_Tbl_Type :=
179 OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL
180 , p_Header_Adj_Att_tbl IN OE_Order_PUB.Header_Adj_Att_Tbl_Type :=
181 OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL
182 , p_old_Header_Adj_Att_tbl IN OE_Order_PUB.Header_Adj_Att_Tbl_Type :=
183 OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL
184 , p_Header_Adj_Assoc_tbl IN OE_Order_PUB.Header_Adj_Assoc_Tbl_Type :=
185 OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL
186 , p_old_Header_Adj_Assoc_tbl IN OE_Order_PUB.Header_Adj_Assoc_Tbl_Type :=
187 OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL
188 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type :=
189 OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL
190 , p_old_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type :=
191 OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL
192 , p_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type :=
193 OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL
194 , p_old_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type :=
195 OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL
196 , p_header_Payment_tbl IN OE_Order_PUB.Header_Payment_Tbl_Type :=
197 OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
198 , p_old_header_Payment_tbl IN OE_Order_PUB.Header_Payment_Tbl_Type :=
199 OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
200 , p_Header_Payment_val_tbl IN OE_Order_PUB.Header_Payment_Val_Tbl_Type :=
201 OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
202 , p_old_Header_Payment_val_tbl IN OE_Order_PUB.Header_Payment_Val_Tbl_Type:=
203 OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
204 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type :=
205 OE_Order_PUB.G_MISS_LINE_TBL
206 , p_old_line_tbl IN OE_Order_PUB.Line_Tbl_Type :=
207 OE_Order_PUB.G_MISS_LINE_TBL
208 , p_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type :=
209 OE_Order_PUB.G_MISS_LINE_VAL_TBL
210 , p_old_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type :=
211 OE_Order_PUB.G_MISS_LINE_VAL_TBL
212 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type :=
213 OE_Order_PUB.G_MISS_LINE_ADJ_TBL
214 , p_old_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type :=
215 OE_Order_PUB.G_MISS_LINE_ADJ_TBL
216 , p_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type :=
217 OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL
218 , p_old_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type :=
219 OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL
220 , p_Line_price_Att_tbl IN OE_Order_PUB.Line_Price_Att_Tbl_Type :=
221 OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL
222 , p_old_Line_Price_Att_tbl IN OE_Order_PUB.Line_Price_Att_Tbl_Type :=
223 OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL
224 , p_Line_Adj_Att_tbl IN OE_Order_PUB.Line_Adj_Att_Tbl_Type :=
225 OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL
226 , p_old_Line_Adj_Att_tbl IN OE_Order_PUB.Line_Adj_Att_Tbl_Type :=
227 OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL
228 , p_Line_Adj_Assoc_tbl IN OE_Order_PUB.Line_Adj_Assoc_Tbl_Type :=
229 OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL
230 , p_old_Line_Adj_Assoc_tbl IN OE_Order_PUB.Line_Adj_Assoc_Tbl_Type :=
231 OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL
232 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type :=
233 OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL
234 , p_old_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type :=
235 OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL
236 , p_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type :=
237 OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL
238 , p_old_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type :=
239 OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL
240 , p_Line_Payment_tbl IN OE_Order_PUB.Line_Payment_Tbl_Type :=
241 OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
242 , p_old_Line_Payment_tbl IN OE_Order_PUB.Line_Payment_Tbl_Type :=
243 OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
244 , p_Line_Payment_val_tbl IN OE_Order_PUB.Line_Payment_Val_Tbl_Type :=
245 OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
246 , p_old_Line_Payment_val_tbl IN OE_Order_PUB.Line_Payment_Val_Tbl_Type :=
247 OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
248 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type :=
249 OE_Order_PUB.G_MISS_LOT_SERIAL_TBL
250 , p_old_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type :=
251 OE_Order_PUB.G_MISS_LOT_SERIAL_TBL
252 , p_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type :=
253 OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL
254 , p_old_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type :=
255 OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL
256 , p_Action_Request_tbl IN OE_Order_PUB.Request_Tbl_Type :=
257 OE_Order_PUB.G_MISS_REQUEST_TBL
258 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
259 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
260 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
261 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
262 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
263 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
264 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
265 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
266 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
267 , x_Header_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Tbl_Type
268 , x_Header_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Val_Tbl_Type
269 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
270 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
271 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
272 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
273 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
274 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
275 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
276 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
277 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
278 , x_Line_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Tbl_Type
279 , x_Line_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Val_Tbl_Type
280 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
281 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
282 , x_action_request_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Request_Tbl_Type
283 --For bug 3390458
284 , p_rtrim_data IN Varchar2 :='N'
285 , p_validate_desc_flex in varchar2 default 'Y' -- bug4343612
286 --ER7675548
287 , p_header_customer_info_tbl IN OE_ORDER_PUB.CUSTOMER_INFO_TABLE_TYPE :=
288 OE_ORDER_PUB.G_MISS_CUSTOMER_INFO_TBL
289 , p_line_customer_info_tbl IN OE_ORDER_PUB.CUSTOMER_INFO_TABLE_TYPE :=
290 OE_ORDER_PUB.G_MISS_CUSTOMER_INFO_TBL
291 )
292 IS
293 l_org_id NUMBER; -- MOAC
294 l_api_version_number CONSTANT NUMBER := 1.0;
295 l_api_name CONSTANT VARCHAR2(30):= 'Process_Order';
296 l_control_rec OE_GLOBALS.Control_Rec_Type;
297 l_validation_level VARCHAR2(30);
298 l_return_status VARCHAR2(1);
299 l_old_header_rec OE_Order_PUB.Header_Rec_Type;
300 l_old_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
301 l_old_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type ;
302 l_old_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type ;
303 l_old_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type ;
304 l_old_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
305 l_old_line_tbl OE_Order_PUB.Line_Tbl_Type;
306 l_old_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
307 l_old_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type ;
308 l_old_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type ;
309 l_old_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type ;
310 l_old_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
311 l_old_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
312 l_old_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
313 l_old_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
314
315 l_aac_header_rec OE_Order_PUB.Header_Rec_Type;
316 l_aac_line_tbl OE_Order_PUB.Line_Tbl_Type;
317
318 l_header_rec OE_Order_PUB.Header_Rec_Type;
319 l_cust_info_tbl OE_ORDER_PUB.CUSTOMER_INFO_TABLE_TYPE;
320 l_line_tbl OE_ORDER_PUB.LINE_TBL_TYPE;
321
322 I NUMBER;
323 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
324 BEGIN
325
326 IF l_debug_level > 0 THEN /* added for 3677092 */
327 oe_debug_pub.add( 'ENTERING OE_ORDER_GRP.PROCESS_ORDER', 0.5) ;
328 END IF;
329
330 l_return_status := FND_API.G_RET_STS_SUCCESS; --Nocopy changes
331
332 -- MOAC change
333 -- Check if org context has been set before doing any process
334 -- If there is no org context set, we stop calling group process order API
335 -- and raise an error though we don't do any validation for the org_id.
336 l_org_id := MO_GLOBAL.get_current_org_id;
337 IF (l_org_id IS NULL OR l_org_id = FND_API.G_MISS_NUM) THEN
338 FND_MESSAGE.set_name('FND','MO_ORG_REQUIRED');
339 OE_MSG_PUB.Add;
340 RAISE FND_API.G_EXC_ERROR;
341 END IF;
342
343 -- Bug 4129234/ orig bug 3823649 ReSet the Audit Trail Global variables
344 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
345 OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'N';
346
347
348 -- Bug 3013210 => set a savepoint so that rollbacks can be done for
349 -- validation only service level call
350
351 SAVEPOINT Group_Process_Order;
352
353
354 --Added to fix #1566362 as these tables were not getting passed to the PVT API.
355
356 l_old_Header_price_Att_tbl := p_old_Header_Price_Att_tbl;
357 l_old_Header_Adj_Att_tbl := p_old_Header_Adj_Att_tbl;
358 l_old_Header_Adj_Assoc_tbl := p_old_Header_Adj_Assoc_tbl;
359 l_old_Line_price_Att_tbl := p_old_Line_Price_Att_tbl;
360 l_old_Line_Adj_Att_tbl := p_old_Line_Adj_Att_tbl;
361 l_old_Line_Adj_Assoc_tbl := p_old_Line_Adj_Assoc_tbl;
362 x_Header_price_Att_tbl := p_Header_price_Att_tbl;
363 x_Header_Adj_Assoc_tbl := p_Header_Adj_Assoc_tbl;
364 x_Header_Adj_Att_tbl := p_Header_Adj_Att_tbl;
365 x_Line_price_Att_tbl := p_Line_price_Att_tbl;
366 x_Line_Adj_Assoc_tbl := p_Line_Adj_Assoc_tbl;
367 x_Line_Adj_Att_tbl := p_Line_Adj_Att_tbl;
368
369 -- Standard call to check for call compatibility
370
371 IF NOT FND_API.Compatible_API_Call
372 ( l_api_version_number
373 , p_api_version_number
374 , l_api_name
375 , G_PKG_NAME
376 )
377 THEN
378 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
379 END IF;
380
381 -- determine if we should default reason for versioning, for bug 3636884
382 IF p_control_rec.require_reason THEN
383 -- We are calling from Order Import, don't do anything.
384 NULL;
385 ELSE
386 OE_GLOBALS.G_DEFAULT_REASON := TRUE;
387 END IF;
388
389
390 -- Initialize the control record based on the api_service_level
391
392 Control_Rec_For_Service_Level
393 (p_api_service_level => p_api_service_level
394 ,p_control_rec => p_control_rec
395 ,p_validation_level => p_validation_level
396 ,x_control_rec => l_control_rec
397 ,x_validation_level => l_validation_level
398 );
399
400
401
402 --ER7675548
403 savepoint ADD_CUSTOMER_INFO;
404
405 l_cust_info_tbl := p_header_customer_info_tbl;
406 l_header_rec := p_header_rec;
407
408 OE_HEADER_UTIL.Get_customer_info_ids
409 (
410 p_header_customer_info_tbl => l_cust_info_tbl,
411 p_x_header_rec => l_header_rec,
412 x_return_status => x_return_status,
413 x_msg_count => x_msg_count,
414 x_msg_data => x_msg_data
415 );
416
417 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
418 ROLLBACK TO SAVEPOINT ADD_CUSTOMER_INFO;
419 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
420 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
421 ROLLBACK TO SAVEPOINT ADD_CUSTOMER_INFO;
422 RAISE FND_API.G_EXC_ERROR;
423 END IF;
424
425
426 l_line_tbl := p_line_tbl;
427 l_cust_info_tbl := p_line_customer_info_tbl;
428
429 OE_LINE_UTIL.Get_customer_info_ids
430 (
431 p_line_customer_info_tbl => l_cust_info_tbl,
432 p_x_line_tbl => l_line_tbl,
433 x_return_status => x_return_status,
434 x_msg_count => x_msg_count,
435 x_msg_data => x_msg_data
436 );
437
438
439 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
440 ROLLBACK TO SAVEPOINT ADD_CUSTOMER_INFO;
441 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
443 ROLLBACK TO SAVEPOINT ADD_CUSTOMER_INFO;
444 RAISE FND_API.G_EXC_ERROR;
445 END IF;
446
447 --ER7675548
448
449 -- Bug 5555080 Call Value_to_Id before AAC so that if Ids are passed we don't create Account
450
451 -- Perform Value to Id conversion
452
453 Value_To_Id
454 ( x_return_status => l_return_status
455 , p_header_rec => l_header_rec
456 , p_header_val_rec => p_header_val_rec
457 , p_Header_Adj_tbl => p_Header_Adj_tbl
458 , p_Header_Adj_val_tbl => p_Header_Adj_val_tbl
459 , p_Header_Scredit_tbl => p_Header_Scredit_tbl
460 , p_Header_Scredit_val_tbl => p_Header_Scredit_val_tbl
461 , p_Header_Payment_tbl => p_Header_Payment_tbl
462 , p_Header_Payment_val_tbl => p_Header_Payment_val_tbl
463 , p_line_tbl => l_line_tbl
464 , p_line_val_tbl => p_line_val_tbl
465 , p_Line_Adj_tbl => p_Line_Adj_tbl
466 , p_Line_Adj_val_tbl => p_Line_Adj_val_tbl
467 , p_Line_Scredit_tbl => p_Line_Scredit_tbl
468 , p_Line_Scredit_val_tbl => p_Line_Scredit_val_tbl
469 , p_Line_Payment_tbl => p_Line_Payment_tbl
470 , p_Line_Payment_val_tbl => p_Line_Payment_val_tbl
471 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
472 , p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
473 , x_header_rec => x_header_rec
474 , x_Header_Adj_tbl => x_Header_Adj_tbl
475 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
476 , x_Header_Payment_tbl => x_Header_Payment_tbl
477 , x_line_tbl => x_line_tbl
478 , x_Line_Adj_tbl => x_Line_Adj_tbl
479 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
480 , x_Line_Payment_tbl => x_Line_Payment_tbl
481 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
482 );
483
484 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
485 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
487 RAISE FND_API.G_EXC_ERROR;
488 END IF;
489
490
491 -- Perform Value to Id conversion (for old)
492
493 Value_To_Id
494 ( x_return_status => l_return_status
495 , p_header_rec => p_old_header_rec
496 , p_header_val_rec => p_old_header_val_rec
497 , p_Header_Adj_tbl => p_old_Header_Adj_tbl
498 , p_Header_Adj_val_tbl => p_old_Header_Adj_val_tbl
499 , p_Header_Scredit_tbl => p_old_Header_Scredit_tbl
500 , p_Header_Scredit_val_tbl => p_old_Header_Scredit_val_tbl
501 , p_Header_Payment_tbl => p_Header_Payment_tbl
502 , p_Header_Payment_val_tbl => p_Header_Payment_val_tbl
503 , p_line_tbl => p_old_line_tbl
504 , p_line_val_tbl => p_old_line_val_tbl
505 , p_Line_Adj_tbl => p_old_Line_Adj_tbl
506 , p_Line_Adj_val_tbl => p_old_Line_Adj_val_tbl
507 , p_Line_Scredit_tbl => p_old_Line_Scredit_tbl
508 , p_Line_Scredit_val_tbl => p_old_Line_Scredit_val_tbl
509 , p_Line_Payment_tbl => p_Line_Payment_tbl
510 , p_Line_Payment_val_tbl => p_Line_Payment_val_tbl
511 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
512 , p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
513 , x_header_rec => l_old_header_rec
514 , x_Header_Adj_tbl => l_old_Header_Adj_tbl
515 , x_Header_Scredit_tbl => l_old_Header_Scredit_tbl
516 , x_Header_Payment_tbl => x_Header_Payment_tbl
517 , x_line_tbl => l_old_line_tbl
518 , x_Line_Adj_tbl => l_old_Line_Adj_tbl
519 , x_Line_Scredit_tbl => l_old_Line_Scredit_tbl
520 , x_Line_Payment_tbl => x_Line_Payment_tbl
521 , x_Lot_Serial_tbl => l_old_Lot_Serial_tbl
522 );
523
524 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
525 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
526 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
527 RAISE FND_API.G_EXC_ERROR;
528 END IF;
529
530 -- Copy action request tbl to OUT variable
531
532 x_action_request_tbl := p_action_request_tbl;
533
534 -- automatic account creation
535
536 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510'
537 THEN
538
539 automatic_account_creation(p_header_rec => x_header_rec,
540 p_header_val_rec => p_header_val_rec,
541 p_line_tbl => x_line_tbl,
542 p_line_val_tbl => p_line_val_tbl,
543 x_header_rec => x_header_rec,
544 x_line_tbl => x_line_tbl,
545 x_return_status => x_return_status,
546 x_msg_count => x_msg_count,
547 x_msg_data => x_msg_data);
548 end if;
549
550
551
552 -- added for notification framework
553 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
554 OE_ORDER_UTIL.Clear_Global_Picture(l_return_status);
555 END IF;
556
557 --added for bug 3390458
558 IF p_rtrim_data ='Y'
559 THEN
560 RTrim_data
561 ( p_x_header_rec => x_header_rec
562 , p_x_line_tbl => x_line_tbl
563 , x_return_status =>x_return_status);
564
565 END IF;
566
567 -- added for bug 5001819
568 -- need to supress defaulting of credit card when trxn_extension_id is passed
569 I := x_Header_Payment_tbl.FIRST;
570
571 WHILE I IS NOT NULL LOOP
572 IF x_Header_Payment_tbl(I).payment_type_code = 'CREDIT_CARD'
573 AND x_Header_Payment_tbl(I).trxn_extension_id IS NOT NULL
574 AND NOT OE_GLOBALS.Equal(x_Header_Payment_tbl(I).trxn_extension_id,FND_API.G_MISS_NUM) THEN --bug 5020737
575 x_header_rec.credit_card_number := null;
576 x_header_rec.credit_card_code := null;
577 x_header_rec.credit_card_holder_name := null;
578 x_header_rec.credit_card_expiration_date := null;
579
580 exit; -- exit the loop
581 END IF;
582
583 I := x_Header_Payment_tbl.NEXT(I);
584 END LOOP;
585
586 OE_GLOBALS.g_validate_desc_flex := p_validate_desc_flex ;--bug4343612
587
588 -- sol_ord_er #16014165 start
589 /* System Parameter "OM: Subscription Item Line Behavior" needs to be honored only from UI */
590 If x_line_tbl.count > 0 THEN
591 For i in x_line_tbl.first .. x_line_tbl.last
592 LOOP
593 If (x_line_tbl(i).operation = OE_GLOBALS.G_OPR_CREATE
594 or x_line_tbl(i).operation = OE_GLOBALS.G_OPR_INSERT)
595 AND NVL(x_line_tbl(i).subscription_enable_flag,FND_API.G_MISS_CHAR) = FND_API.G_MISS_CHAR THEN
596 x_line_tbl(i).subscription_enable_flag := 'N';
597 End If;
598 End LOOP;
599 End If;
600 -- sol_ord_er #16014165 end
601
602 -- Call OE_Order_PVT.Process_Order
603 OE_Order_PVT.Process_Order
604 ( p_api_version_number => 1.0
605 , p_init_msg_list => p_init_msg_list
606 , p_validation_level => l_validation_level
607 -- , p_commit => p_commit
608 , x_return_status => x_return_status
609 , x_msg_count => x_msg_count
610 , x_msg_data => x_msg_data
611 , p_control_rec => l_control_rec
612 , p_x_header_rec => x_header_rec
613 , p_old_header_rec => l_old_header_rec
614 , p_x_Header_Adj_tbl => x_Header_Adj_tbl
615 , p_old_Header_Adj_tbl => l_old_Header_Adj_tbl
616 , p_x_Header_Price_Att_tbl => x_Header_Price_Att_tbl
617 , p_old_Header_Price_Att_tbl => l_old_Header_Price_Att_tbl
618 , p_x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
619 , p_old_Header_Adj_Att_tbl => l_old_Header_Adj_Att_tbl
620 , p_x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
621 , p_old_Header_Adj_Assoc_tbl => l_old_Header_Adj_Assoc_tbl
622 , p_x_Header_Scredit_tbl => x_Header_Scredit_tbl
623 , p_old_Header_Scredit_tbl => l_old_Header_Scredit_tbl
624 , p_x_Header_Payment_tbl => x_Header_Payment_tbl
625 , p_old_Header_Payment_tbl => l_old_Header_Payment_tbl
626 , p_x_line_tbl => x_line_tbl
627 , p_old_line_tbl => l_old_line_tbl
628 , p_x_Line_Adj_tbl => x_Line_Adj_tbl
629 , p_old_Line_Adj_tbl => l_old_Line_Adj_tbl
630 , p_x_Line_Price_Att_tbl => x_Line_Price_Att_tbl
631 , p_old_Line_Price_Att_tbl => l_old_Line_Price_Att_tbl
632 , p_x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
633 , p_old_Line_Adj_Att_tbl => l_old_Line_Adj_Att_tbl
634 , p_x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
635 , p_old_Line_Adj_Assoc_tbl => l_old_Line_Adj_Assoc_tbl
636 , p_x_Line_Scredit_tbl => x_Line_Scredit_tbl
637 , p_old_Line_Scredit_tbl => l_old_Line_Scredit_tbl
638 , p_x_Line_Payment_tbl => x_Line_Payment_tbl
639 , p_old_Line_Payment_tbl => l_old_Line_Payment_tbl
640 , p_x_Lot_Serial_tbl => x_Lot_Serial_tbl
641 , p_old_Lot_Serial_tbl => l_old_Lot_Serial_tbl
642 , p_x_Action_Request_tbl => x_Action_Request_tbl
643 );
644
645 --Added for bug 4697870 start
646 if x_return_status =FND_API.G_RET_STS_UNEXP_ERROR or x_return_status = FND_API.G_RET_STS_ERROR then
647 ROLLBACK TO SAVEPOINT Group_Process_Order;
648 OE_Delayed_Requests_PVT.Clear_Request(l_return_status);
649 if x_return_status =FND_API.G_RET_STS_UNEXP_ERROR then
650 raise FND_API.G_EXC_UNEXPECTED_ERROR;
651 elsif x_return_status =FND_API.G_RET_STS_ERROR then
652 raise FND_API.G_EXC_ERROR ;
653 end if;
654 end if;
655 --Added for bug 4697870 end
656 -- If p_return_values is TRUE then convert Ids to Values.
657
658 IF FND_API.to_Boolean(p_return_values) THEN
659
660 Id_To_Value
661 ( p_header_rec => x_header_rec
662 , p_Header_Adj_tbl => x_Header_Adj_tbl
663 , p_Header_Scredit_tbl => x_Header_Scredit_tbl
664 , p_Header_Payment_tbl => x_Header_Payment_tbl
665 , p_line_tbl => x_line_tbl
666 , p_Line_Adj_tbl => x_Line_Adj_tbl
667 , p_Line_Scredit_tbl => x_Line_Scredit_tbl
668 , p_Line_Payment_tbl => x_Line_Payment_tbl
669 , p_Lot_Serial_tbl => x_Lot_Serial_tbl
670 , x_header_val_rec => x_header_val_rec
671 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
672 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
673 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
674 , x_line_val_tbl => x_line_val_tbl
675 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
676 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
677 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
678 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
679 );
680
681 END IF;
682
683 -- This is set for validation only mode hence resetting
684
685 -- No check for branch scheduling is needed. Therefore, removing the
686 -- check for profile value.
687
688 OE_SCHEDULE_UTIL.OESCH_PERFORM_SCHEDULING := 'Y';
689
690
691 -- Bug 3013210 => if service level is validation only, rollback any
692 -- DB writes and also clear delayed requests
693
694 IF p_api_service_level = OE_GLOBALS.G_VALIDATION_ONLY THEN
695
696 ROLLBACK TO SAVEPOINT Group_Process_Order;
697
698 OE_Delayed_Requests_PVT.Clear_Request(l_return_status);
699 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
700 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
701 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
702 RAISE FND_API.G_EXC_ERROR;
703 END IF;
704
705 END IF; -- End if service level is validation only
706
707 IF l_debug_level > 0 THEN /* added for 13435459 */
708 oe_debug_pub.add( 'EXITING OE_ORDER_GRP.PROCESS_ORDER', 0.5) ;
709 END IF;
710
711 EXCEPTION
712
713 WHEN FND_API.G_EXC_ERROR THEN
714
715 IF l_debug_level > 0 THEN /* added for 13435459 */
716 oe_debug_pub.add( 'ERROR IN OE_ORDER_GRP.PROCESS_ORDER', 0.5) ;
717 END IF;
718
719 x_return_status := FND_API.G_RET_STS_ERROR;
720
721 -- Get message count and data
722
723 OE_MSG_PUB.Count_And_Get
724 ( p_count => x_msg_count
725 , p_data => x_msg_data
726 );
727
728 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
729
730 IF l_debug_level > 0 THEN /* added for 13435459 */
731 oe_debug_pub.add( 'UNEXP. ERROR IN OE_ORDER_GRP.PROCESS_ORDER', 0.5) ;
732 END IF;
733
734 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
735
736 -- Get message count and data
737
738 OE_MSG_PUB.Count_And_Get
739 ( p_count => x_msg_count
740 , p_data => x_msg_data
741 );
742
743 WHEN OTHERS THEN
744
745 IF l_debug_level > 0 THEN /* added for 13435459 */
746 oe_debug_pub.add( 'OTHERS EXCEPTION IN OE_ORDER_GRP.PROCESS_ORDER', 0.5) ;
747 END IF;
748
749 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
750
751 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
752 THEN
753 OE_MSG_PUB.Add_Exc_Msg
754 ( G_PKG_NAME
755 , 'Process_Order'
756 );
757 END IF;
758
759 -- Get message count and data
760
761 OE_MSG_PUB.Count_And_Get
762 ( p_count => x_msg_count
763 , p_data => x_msg_data
764 );
765
766 END Process_Order;
767
768
769
770 -- Start of Comments
771 -- API name Lock_Order
772 -- Type Group
773 -- Function Overloaded
774 --
775 -- Pre-reqs
776 --
777 -- Parameters
778 --
779 -- Version Current version = 1.0
780 -- Initial version = 1.0
781 --
782 -- Notes
783 --
784 -- End of Comments
785
786 PROCEDURE Lock_Order
787 ( p_api_version_number IN NUMBER
788 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
789 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
790 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
791 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
792 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
793 , p_header_rec IN OE_Order_PUB.Header_Rec_Type :=
794 OE_Order_PUB.G_MISS_HEADER_REC
795 , p_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type :=
796 OE_Order_PUB.G_MISS_HEADER_VAL_REC
797 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type :=
798 OE_Order_PUB.G_MISS_HEADER_ADJ_TBL
799 , p_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type :=
800 OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL
801 , p_Header_price_Att_tbl IN OE_Order_PUB.Header_Price_Att_Tbl_Type :=
802 OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL
803 , p_Header_Adj_Att_tbl IN OE_Order_PUB.Header_Adj_Att_Tbl_Type :=
804 OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL
805 , p_Header_Adj_Assoc_tbl IN OE_Order_PUB.Header_Adj_Assoc_Tbl_Type :=
806 OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL
807 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type :=
808 OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL
809 , p_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type :=
810 OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL
811 , p_Header_Payment_tbl IN OE_Order_PUB.Header_Payment_Tbl_Type :=
812 OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
813 , p_Header_Payment_val_tbl IN OE_Order_PUB.Header_Payment_Val_Tbl_Type :=
814 OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
815 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type :=
816 OE_Order_PUB.G_MISS_LINE_TBL
817 , p_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type :=
818 OE_Order_PUB.G_MISS_LINE_VAL_TBL
819 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type :=
820 OE_Order_PUB.G_MISS_LINE_ADJ_TBL
821 , p_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type :=
822 OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL
823 , p_Line_price_Att_tbl IN OE_Order_PUB.Line_Price_Att_Tbl_Type :=
824 OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL
825 , p_Line_Adj_Att_tbl IN OE_Order_PUB.Line_Adj_Att_Tbl_Type :=
826 OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL
827 , p_Line_Adj_Assoc_tbl IN OE_Order_PUB.Line_Adj_Assoc_Tbl_Type :=
828 OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL
829 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type :=
830 OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL
831 , p_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type :=
832 OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL
833 , p_Line_Payment_tbl IN OE_Order_PUB.Line_Payment_Tbl_Type :=
834 OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
835 , p_Line_Payment_val_tbl IN OE_Order_PUB.Line_Payment_Val_Tbl_Type :=
836 OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
837 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type :=
838 OE_Order_PUB.G_MISS_LOT_SERIAL_TBL
839 , p_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type :=
840 OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL
841 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
842 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
843 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
844 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
845 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
846 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
847 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
848 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
849 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
850 , x_Header_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Tbl_Type
851 , x_Header_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Val_Tbl_Type
852 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
853 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
854 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
855 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
856 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
857 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
858 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
859 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
860 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
861 , x_Line_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Tbl_Type
862 , x_Line_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Val_Tbl_Type
863 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
864 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
865 )
866 IS
867 l_api_version_number CONSTANT NUMBER := 1.0;
868 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Order';
869 l_return_status VARCHAR2(1);
870 BEGIN
871
872 -- Standard call to check for call compatibility
873
874 IF NOT FND_API.Compatible_API_Call
875 ( l_api_version_number
876 , p_api_version_number
877 , l_api_name
878 , G_PKG_NAME
879 )
880 THEN
881 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
882 END IF;
883
884 -- Perform Value to Id conversion
885
886 Value_To_Id
887 ( x_return_status => l_return_status
888 , p_header_rec => p_header_rec
889 , p_header_val_rec => p_header_val_rec
890 , p_Header_Adj_tbl => p_Header_Adj_tbl
891 , p_Header_Adj_val_tbl => p_Header_Adj_val_tbl
892 , p_Header_Scredit_tbl => p_Header_Scredit_tbl
893 , p_Header_Scredit_val_tbl => p_Header_Scredit_val_tbl
894 , p_Header_Payment_tbl => p_Header_Payment_tbl
895 , p_Header_Payment_val_tbl => p_Header_Payment_val_tbl
896 , p_line_tbl => p_line_tbl
897 , p_line_val_tbl => p_line_val_tbl
898 , p_Line_Adj_tbl => p_Line_Adj_tbl
899 , p_Line_Adj_val_tbl => p_Line_Adj_val_tbl
900 , p_Line_Scredit_tbl => p_Line_Scredit_tbl
901 , p_Line_Scredit_val_tbl => p_Line_Scredit_val_tbl
902 , p_Line_Payment_tbl => p_Line_Payment_tbl
903 , p_Line_Payment_val_tbl => p_Line_Payment_val_tbl
904 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
905 , p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
906 , x_header_rec => x_header_rec
907 , x_Header_Adj_tbl => x_Header_Adj_tbl
908 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
909 , x_Header_Payment_tbl => x_Header_Payment_tbl
910 , x_line_tbl => x_line_tbl
911 , x_Line_Adj_tbl => x_Line_Adj_tbl
912 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
913 , x_Line_Payment_tbl => x_Line_Payment_tbl
914 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
915 );
916
917 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
918 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
919 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
920 RAISE FND_API.G_EXC_ERROR;
921 END IF;
922
923
924 -- Call OE_Order_PVT.Lock_Order
925
926 OE_Order_PVT.Lock_Order
927 ( p_api_version_number => 1.0
928 , p_init_msg_list => p_init_msg_list
929 , x_return_status => x_return_status
930 , x_msg_count => x_msg_count
931 , x_msg_data => x_msg_data
932 , p_x_header_rec => x_header_rec
933 , p_x_Header_Adj_tbl => x_Header_Adj_tbl
934 , p_x_Header_Price_Att_tbl => x_Header_Price_Att_tbl
935 , p_x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
936 , p_x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
937 , p_x_Header_Scredit_tbl => x_Header_Scredit_tbl
938 , p_x_Header_Payment_tbl => x_Header_Payment_tbl
939 , p_x_line_tbl => x_line_tbl
940 , p_x_Line_Adj_tbl => x_Line_Adj_tbl
941 , p_x_Line_Price_Att_tbl => x_Line_Price_Att_tbl
942 , p_x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
943 , p_x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
944 , p_x_Line_Scredit_tbl => x_Line_Scredit_tbl
945 , p_x_Line_Payment_tbl => x_Line_Payment_tbl
946 , p_x_Lot_Serial_tbl => x_Lot_Serial_tbl
947 );
948
949 -- If p_return_values is TRUE then convert Ids to Values.
950
951 IF FND_API.to_Boolean(p_return_values) THEN
952
953 Id_To_Value
954 ( p_header_rec => x_header_rec
955 , p_Header_Adj_tbl => x_Header_Adj_tbl
956 , p_Header_Scredit_tbl => x_Header_Scredit_tbl
957 , p_Header_Payment_tbl => x_Header_Payment_tbl
958 , p_line_tbl => x_line_tbl
959 , p_Line_Adj_tbl => x_Line_Adj_tbl
960 , p_Line_Scredit_tbl => x_Line_Scredit_tbl
961 , p_Line_Payment_tbl => x_Line_Payment_tbl
962 , p_Lot_Serial_tbl => x_Lot_Serial_tbl
963 , x_header_val_rec => x_header_val_rec
964 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
965 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
966 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
967 , x_line_val_tbl => x_line_val_tbl
968 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
969 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
970 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
971 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
972 );
973
974 END IF;
975
976 EXCEPTION
977
978 WHEN FND_API.G_EXC_ERROR THEN
979
980 x_return_status := FND_API.G_RET_STS_ERROR;
981
982 -- Get message count and data
983
984 OE_MSG_PUB.Count_And_Get
985 ( p_count => x_msg_count
986 , p_data => x_msg_data
987 );
988
989 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
990
991 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
992
993 -- Get message count and data
994
995 OE_MSG_PUB.Count_And_Get
996 ( p_count => x_msg_count
997 , p_data => x_msg_data
998 );
999
1000 WHEN OTHERS THEN
1001
1002 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1003
1004 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1005 THEN
1006 OE_MSG_PUB.Add_Exc_Msg
1007 ( G_PKG_NAME
1008 , 'Lock_Order'
1009 );
1010 END IF;
1011
1012 -- Get message count and data
1013
1014 OE_MSG_PUB.Count_And_Get
1015 ( p_count => x_msg_count
1016 , p_data => x_msg_data
1017 );
1018
1019 END Lock_Order;
1020
1021
1022 -- Start of Comments
1023 -- API name Get_Order
1024 -- Type Public
1025 -- Function Overloaded
1026 --
1027 -- Pre-reqs
1028 --
1029 -- Parameters
1030 --
1031 -- Version Current version = 1.0
1032 -- Initial version = 1.0
1033 --
1034 -- Notes
1035 --
1036 -- End of Comments
1037
1038 PROCEDURE Get_Order
1039 ( p_api_version_number IN NUMBER
1040 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1041 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1042 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1043 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1044 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1045 , p_header_id IN NUMBER :=
1046 FND_API.G_MISS_NUM
1047 , p_header IN VARCHAR2 :=
1048 FND_API.G_MISS_CHAR
1049 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
1050 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
1051 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
1052 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
1053 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
1054 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
1055 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
1056 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
1057 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
1058 , x_Header_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Tbl_Type
1059 , x_Header_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Val_Tbl_Type
1060 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
1061 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
1062 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
1063 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
1064 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
1065 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
1066 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
1067 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
1068 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
1069 , x_Line_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Tbl_Type
1070 , x_Line_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Val_Tbl_Type
1071 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
1072 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
1073 )
1074 IS
1075 l_api_version_number CONSTANT NUMBER := 1.0;
1076 l_api_name CONSTANT VARCHAR2(30):= 'Get_Order';
1077 l_header_id NUMBER := p_header_id;
1078 BEGIN
1079
1080 -- Standard call to check for call compatibility
1081
1082 IF NOT FND_API.Compatible_API_Call
1083 ( l_api_version_number
1084 , p_api_version_number
1085 , l_api_name
1086 , G_PKG_NAME
1087 )
1088 THEN
1089 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1090 END IF;
1091
1092 -- Standard check for Val/ID conversion
1093
1094 IF p_header = FND_API.G_MISS_CHAR
1095 THEN
1096
1097 l_header_id := p_header_id;
1098
1099 ELSIF p_header_id <> FND_API.G_MISS_NUM THEN
1100
1101 l_header_id := p_header_id;
1102
1103 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1104 THEN
1105
1106 fnd_message.set_name('ONT','OE_BOTH_VAL_AND_ID_EXIST');
1107 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header');
1108 OE_MSG_PUB.Add;
1109
1110 END IF;
1111
1112 ELSE
1113
1114 -- Convert Value to Id
1115
1116 /*l_header_id := OE_Value_To_Id.header
1117 ( p_header => p_header
1118 );*/
1119
1120 IF l_header_id = FND_API.G_MISS_NUM THEN
1121 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1122 THEN
1123
1124 fnd_message.set_name('ONT','Invalid Business Object Value');
1125 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header');
1126 OE_MSG_PUB.Add;
1127
1128 END IF;
1129 END IF;
1130
1131 RAISE FND_API.G_EXC_ERROR;
1132
1133 END IF;
1134
1135
1136 -- Call OE_Order_PVT.Get_Order
1137
1138 OE_Order_PVT.Get_Order
1139 ( p_api_version_number => 1.0
1140 , p_init_msg_list => p_init_msg_list
1141 , x_return_status => x_return_status
1142 , x_msg_count => x_msg_count
1143 , x_msg_data => x_msg_data
1144 , p_header_id => l_header_id
1145 , x_header_rec => x_header_rec
1146 , x_Header_Adj_tbl => x_Header_Adj_tbl
1147 , x_Header_Price_Att_tbl => x_Header_Price_Att_tbl
1148 , x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
1149 , x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
1150 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
1151 , x_Header_Payment_tbl => x_Header_Payment_tbl
1152 , x_line_tbl => x_line_tbl
1153 , x_Line_Adj_tbl => x_Line_Adj_tbl
1154 , x_Line_Price_Att_tbl => x_Line_Price_Att_tbl
1155 , x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
1156 , x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
1157 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
1158 , x_Line_Payment_tbl => x_Line_Payment_tbl
1159 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
1160 );
1161
1162
1163 -- If p_return_values is TRUE then convert Ids to Values.
1164
1165 IF FND_API.TO_BOOLEAN(p_return_values) THEN
1166
1167 Id_To_Value
1168 ( p_header_rec => x_header_rec
1169 , p_Header_Adj_tbl => x_Header_Adj_tbl
1170 , p_Header_Scredit_tbl => x_Header_Scredit_tbl
1171 , p_Header_Payment_tbl => x_Header_PAyment_tbl
1172 , p_line_tbl => x_line_tbl
1173 , p_Line_Adj_tbl => x_Line_Adj_tbl
1174 , p_Line_Scredit_tbl => x_Line_Scredit_tbl
1175 , p_Line_Payment_tbl => x_Line_Payment_tbl
1176 , p_Lot_Serial_tbl => x_Lot_Serial_tbl
1177 , x_header_val_rec => x_header_val_rec
1178 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
1179 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
1180 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
1181 , x_line_val_tbl => x_line_val_tbl
1182 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
1183 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
1184 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
1185 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
1186 );
1187
1188 END IF;
1189
1190 -- Set return status
1191
1192 x_return_status := FND_API.G_RET_STS_SUCCESS;
1193
1194 -- Get message count and data
1195
1196 OE_MSG_PUB.Count_And_Get
1197 ( p_count => x_msg_count
1198 , p_data => x_msg_data
1199 );
1200
1201
1202 EXCEPTION
1203
1204 WHEN FND_API.G_EXC_ERROR THEN
1205
1206 x_return_status := FND_API.G_RET_STS_ERROR;
1207
1208 -- Get message count and data
1209
1210 OE_MSG_PUB.Count_And_Get
1211 ( p_count => x_msg_count
1212 , p_data => x_msg_data
1213 );
1214
1215 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1216
1217 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1218
1219 -- Get message count and data
1220
1221 OE_MSG_PUB.Count_And_Get
1222 ( p_count => x_msg_count
1223 , p_data => x_msg_data
1224 );
1225
1226 WHEN OTHERS THEN
1227
1228 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1229
1230 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1231 THEN
1232 OE_MSG_PUB.Add_Exc_Msg
1233 ( G_PKG_NAME
1234 , 'Get_Order'
1235 );
1236 END IF;
1237
1238 -- Get message count and data
1239
1240 OE_MSG_PUB.Count_And_Get
1241 ( p_count => x_msg_count
1242 , p_data => x_msg_data
1243 );
1244
1245 END Get_Order;
1246
1247
1248 -- Procedure Id_To_Value
1249
1250 PROCEDURE Id_To_Value
1251 ( p_header_rec IN OE_Order_PUB.Header_Rec_Type
1252 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type
1253 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type
1254 , p_Header_Payment_tbl IN OE_Order_PUB.Header_Payment_Tbl_Type
1255 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type
1256 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type
1257 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type
1258 , p_Line_Payment_tbl IN OE_Order_PUB.Line_Payment_Tbl_Type
1259 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type
1260 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
1261 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
1262 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
1263 , x_Header_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Val_Tbl_Type
1264 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
1265 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
1266 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
1267 , x_Line_Payment_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Val_Tbl_Type
1268 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
1269 )
1270 IS
1271 BEGIN
1272
1273 -- Convert header
1274
1275 x_header_val_rec := OE_Header_Util.Get_Values(p_header_rec);
1276
1277 -- Convert Header_Adj
1278
1279 FOR I IN 1..p_Header_Adj_tbl.COUNT LOOP
1280 x_Header_Adj_val_tbl(I) :=
1281 OE_Header_Adj_Util.Get_Values(p_Header_Adj_tbl(I));
1282 END LOOP;
1283
1284 -- Convert Header_Scredit
1285
1286 FOR I IN 1..p_Header_Scredit_tbl.COUNT LOOP
1287 x_Header_Scredit_val_tbl(I) :=
1288 OE_Header_Scredit_Util.Get_Values(p_Header_Scredit_tbl(I));
1289 END LOOP;
1290
1291 -- Convert Header_Payment
1292
1293 FOR I IN 1..p_Header_Payment_tbl.COUNT LOOP
1294 x_Header_Payment_val_tbl(I) :=
1295 OE_Header_Payment_Util.Get_Values(p_Header_Payment_tbl(I));
1296 END LOOP;
1297
1298
1299 -- Convert line
1300
1301 FOR I IN 1..p_line_tbl.COUNT LOOP
1302 x_line_val_tbl(I) :=
1303 OE_Line_Util.Get_Values(p_line_tbl(I));
1304 END LOOP;
1305
1306 -- Convert Line_Adj
1307
1308 FOR I IN 1..p_Line_Adj_tbl.COUNT LOOP
1309 x_Line_Adj_val_tbl(I) :=
1310 OE_Line_Adj_Util.Get_Values(p_Line_Adj_tbl(I));
1311 END LOOP;
1312
1313 -- Convert Line_Scredit
1314
1315 FOR I IN 1..p_Line_Scredit_tbl.COUNT LOOP
1316 x_Line_Scredit_val_tbl(I) :=
1317 OE_Line_Scredit_Util.Get_Values(p_Line_Scredit_tbl(I));
1318 END LOOP;
1319
1320 -- Convert Line_Payment
1321
1322 FOR I IN 1..p_Line_Payment_tbl.COUNT LOOP
1323 x_Line_Payment_val_tbl(I) :=
1324 OE_Line_Payment_Util.Get_Values(p_Line_Payment_tbl(I));
1325 END LOOP;
1326
1327 -- Convert Lot_Serial
1328
1329 FOR I IN 1..p_Lot_Serial_tbl.COUNT LOOP
1330 x_Lot_Serial_val_tbl(I) :=
1331 OE_Lot_Serial_Util.Get_Values(p_Lot_Serial_tbl(I));
1332 END LOOP;
1333
1334 EXCEPTION
1335
1336 WHEN OTHERS THEN
1337
1338 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1339 THEN
1340 OE_MSG_PUB.Add_Exc_Msg
1341 ( G_PKG_NAME
1342 , 'Id_To_Value'
1343 );
1344 END IF;
1345
1346 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1347
1348 END Id_To_Value;
1349
1350 -- Procedure Value_To_Id
1351
1352 PROCEDURE Value_To_Id
1353 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1354 , p_header_rec IN OE_Order_PUB.Header_Rec_Type
1355 , p_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type
1356 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type
1357 , p_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type
1358 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type
1359 , p_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type
1360 , p_Header_Payment_tbl IN OE_Order_PUB.Header_Payment_Tbl_Type
1361 , p_Header_Payment_val_tbl IN OE_Order_PUB.Header_Payment_Val_Tbl_Type
1362 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type
1363 , p_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type
1364 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type
1365 , p_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type
1366 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type
1367 , p_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type
1368 , p_Line_Payment_tbl IN OE_Order_PUB.Line_Payment_Tbl_Type
1369 , p_Line_Payment_val_tbl IN OE_Order_PUB.Line_Payment_Val_Tbl_Type
1370 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type
1371 , p_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type
1372 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
1373 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
1374 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
1375 , x_Header_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Tbl_Type
1376 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
1377 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
1378 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
1379 , x_Line_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Tbl_Type
1380 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
1381 )
1382 IS
1383 l_order_source_id NUMBER := p_header_rec.order_source_id;
1384 l_orig_sys_document_ref VARCHAR2(50) := p_header_rec.orig_sys_document_ref;
1385 l_orig_sys_line_ref VARCHAR2(50);
1386 l_orig_sys_shipment_ref VARCHAR2(50);
1387 l_change_sequence VARCHAR2(50) := p_header_rec.change_sequence;
1388 l_source_document_type_id NUMBER := p_header_rec.source_document_type_id;
1389 l_source_document_id NUMBER := p_header_rec.source_document_id;
1390 l_source_document_line_id NUMBER;
1391
1392 l_header_rec OE_Order_PUB.Header_Rec_Type;
1393 l_Header_Adj_rec OE_Order_PUB.Header_Adj_Rec_Type;
1394 l_Header_Scredit_rec OE_Order_PUB.Header_Scredit_Rec_Type;
1395 l_line_rec OE_Order_PUB.Line_Rec_Type;
1396 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
1397 l_Line_Scredit_rec OE_Order_PUB.Line_Scredit_Rec_Type;
1398 l_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
1399 l_Header_Payment_rec OE_Order_PUB.Header_Payment_Rec_Type;
1400 l_Line_Payment_rec OE_Order_PUB.Line_Payment_Rec_Type;
1401
1402 l_index BINARY_INTEGER;
1403 BEGIN
1404
1405 -- Init x_return_status.
1406
1407 x_return_status := FND_API.G_RET_STS_SUCCESS;
1408
1409 -- Convert header
1410
1411 x_header_rec := p_header_rec;
1412
1413 --Setting message context for bug 2829206
1414 IF p_header_rec.header_Id IS NOT NULL AND
1415 p_header_rec.header_Id <> FND_API.G_MISS_NUM THEN
1416 BEGIN
1417 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1418 source_document_type_id, source_document_id
1419 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1420 l_source_document_type_id, l_source_document_id
1421 FROM OE_ORDER_HEADERS_ALL
1422 WHERE header_id = p_header_rec.header_Id;
1423 EXCEPTION
1424 WHEN NO_DATA_FOUND THEN
1425 l_order_source_id := null;
1426 l_orig_sys_document_ref := null;
1427 l_change_sequence := null;
1428 l_source_document_type_id := null;
1429 l_source_document_id := null;
1430 WHEN OTHERS THEN
1431 l_order_source_id := null;
1432 l_orig_sys_document_ref := null;
1433 l_change_sequence := null;
1434 l_source_document_type_id := null;
1435 l_source_document_id := null;
1436 END;
1437 END IF;
1438
1439 OE_MSG_PUB.set_msg_context(
1440 p_entity_code => 'HEADER'
1441 ,p_entity_id => p_header_rec.header_id
1442 ,p_header_id => p_header_rec.header_id
1443 ,p_line_id => null
1444 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1445 ,p_orig_sys_document_line_ref => null
1446 ,p_change_sequence => l_change_sequence
1447 ,p_source_document_id => l_source_document_id
1448 ,p_source_document_line_id => null
1449 ,p_order_source_id => l_order_source_id
1450 ,p_source_document_type_id => l_source_document_type_id);
1451
1452 OE_Header_Util.Get_Ids
1453 ( p_x_header_rec => x_header_rec
1454 , p_header_val_rec => p_header_val_rec
1455 );
1456
1457 IF x_header_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1458 x_return_status := FND_API.G_RET_STS_ERROR;
1459 END IF;
1460
1461 OE_MSG_PUB.reset_msg_context('HEADER');
1462
1463 -- Convert Header_Adj
1464
1465 x_Header_Adj_tbl := p_Header_Adj_tbl;
1466
1467 l_index := p_Header_Adj_val_tbl.FIRST;
1468
1469 WHILE l_index IS NOT NULL LOOP
1470
1471 --Setting message context for bug 2829206
1472 IF x_header_Adj_tbl(l_index).header_Id IS NOT NULL AND
1473 x_header_Adj_tbl(l_index).header_Id <> FND_API.G_MISS_NUM THEN
1474 BEGIN
1475 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1476 source_document_type_id, source_document_id
1477 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1478 l_source_document_type_id, l_source_document_id
1479 FROM OE_ORDER_HEADERS_ALL
1480 WHERE header_id = x_header_Adj_tbl(l_index).header_Id;
1481 EXCEPTION
1482 WHEN NO_DATA_FOUND THEN
1483 l_order_source_id := null;
1484 l_orig_sys_document_ref := null;
1485 l_change_sequence := null;
1486 l_source_document_type_id := null;
1487 l_source_document_id := null;
1488 WHEN OTHERS THEN
1489 l_order_source_id := null;
1490 l_orig_sys_document_ref := null;
1491 l_change_sequence := null;
1492 l_source_document_type_id := null;
1493 l_source_document_id := null;
1494 END;
1495 END IF;
1496
1497 OE_MSG_PUB.set_msg_context(
1498 p_entity_code => 'HEADER_ADJ'
1499 ,p_entity_id => x_header_Adj_tbl(l_index).price_adjustment_id
1500 ,p_header_id => x_header_Adj_tbl(l_index).header_Id
1501 ,p_line_id => null
1502 ,p_order_source_id => l_order_source_id
1503 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1504 ,p_orig_sys_document_line_ref => null
1505 ,p_change_sequence => l_change_sequence
1506 ,p_source_document_type_id => l_source_document_type_id
1507 ,p_source_document_id => l_source_document_id
1508 ,p_source_document_line_id => null );
1509
1510 OE_Header_Adj_Util.Get_Ids
1511 ( p_x_Header_Adj_rec => x_Header_Adj_tbl(l_index)
1512 , p_Header_Adj_val_rec => p_Header_Adj_val_tbl(l_index)
1513 );
1514
1515 IF x_Header_Adj_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1516 x_return_status := FND_API.G_RET_STS_ERROR;
1517 END IF;
1518
1519 l_index := p_Header_Adj_val_tbl.NEXT(l_index);
1520
1521 OE_MSG_PUB.reset_msg_context('HEADER_ADJ');
1522
1523 END LOOP;
1524
1525 -- Convert Header_Scredit
1526
1527 x_Header_Scredit_tbl := p_Header_Scredit_tbl;
1528
1529 l_index := p_Header_Scredit_val_tbl.FIRST;
1530
1531 WHILE l_index IS NOT NULL LOOP
1532
1533 --Setting message context for bug 2829206
1534 IF x_header_Scredit_tbl(l_index).header_id IS NOT NULL AND
1535 x_header_Scredit_tbl(l_index).header_id <> FND_API.G_MISS_NUM THEN
1536 BEGIN
1537 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1538 source_document_type_id, source_document_id
1539 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1540 l_source_document_type_id, l_source_document_id
1541 FROM OE_ORDER_HEADERS_ALL
1542 WHERE header_id = x_header_Scredit_tbl(l_index).header_id;
1543 EXCEPTION
1544 WHEN NO_DATA_FOUND THEN
1545 l_order_source_id := null;
1546 l_orig_sys_document_ref := null;
1547 l_change_sequence := null;
1548 l_source_document_type_id := null;
1549 l_source_document_id := null;
1550 WHEN OTHERS THEN
1551 l_order_source_id := null;
1552 l_orig_sys_document_ref := null;
1553 l_change_sequence := null;
1554 l_source_document_type_id := null;
1555 l_source_document_id := null;
1556 END;
1557 END IF;
1558
1559 OE_MSG_PUB.set_msg_context(
1560 p_entity_code => 'HEADER_SCREDIT'
1561 ,p_entity_id => x_header_Scredit_tbl(l_index).sales_credit_id
1562 ,p_header_id => x_header_Scredit_tbl(l_index).header_Id
1563 ,p_line_id => null
1564 ,p_order_source_id => l_order_source_id
1565 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1566 ,p_orig_sys_document_line_ref => null
1567 ,p_change_sequence => l_change_sequence
1568 ,p_source_document_type_id => l_source_document_type_id
1569 ,p_source_document_id => l_source_document_id
1570 ,p_source_document_line_id => null );
1571
1572 OE_Header_Scredit_Util.Get_Ids
1573 ( p_x_Header_Scredit_rec => x_Header_Scredit_tbl(l_index)
1574 , p_Header_Scredit_val_rec => p_Header_Scredit_val_tbl(l_index)
1575 );
1576
1577 IF x_Header_Scredit_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1578 x_return_status := FND_API.G_RET_STS_ERROR;
1579 END IF;
1580
1581 l_index := p_Header_Scredit_val_tbl.NEXT(l_index);
1582
1583 OE_MSG_PUB.reset_msg_context('HEADER_SCREDIT');
1584
1585 END LOOP;
1586
1587 -- Convert Header_Payment
1588
1589 x_Header_Payment_tbl := p_Header_Payment_tbl;
1590
1591 l_index := p_Header_Payment_val_tbl.FIRST;
1592
1593 WHILE l_index IS NOT NULL LOOP
1594
1595 --Setting message context for bug 2829206
1596 IF x_header_Payment_tbl(l_index).header_id IS NOT NULL AND
1597 x_header_Payment_tbl(l_index).header_id <> FND_API.G_MISS_NUM THEN
1598 BEGIN
1599 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1600 source_document_type_id, source_document_id
1601 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1602 l_source_document_type_id, l_source_document_id
1603 FROM OE_ORDER_HEADERS_ALL
1604 WHERE header_id = x_header_Payment_tbl(l_index).header_id;
1605 EXCEPTION
1606 WHEN NO_DATA_FOUND THEN
1607 l_order_source_id := null;
1608 l_orig_sys_document_ref := null;
1609 l_change_sequence := null;
1610 l_source_document_type_id := null;
1611 l_source_document_id := null;
1612 WHEN OTHERS THEN
1613 l_order_source_id := null;
1614 l_orig_sys_document_ref := null;
1615 l_change_sequence := null;
1616 l_source_document_type_id := null;
1617 l_source_document_id := null;
1618 END;
1619 END IF;
1620
1621 OE_MSG_PUB.set_msg_context(
1622 p_entity_code => 'HEADER_PAYMENT'
1623 ,p_entity_id => x_header_Payment_tbl(l_index).payment_number
1624 ,p_header_id => x_header_Payment_tbl(l_index).header_Id
1625 ,p_line_id => null
1626 ,p_order_source_id => l_order_source_id
1627 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1628 ,p_orig_sys_document_line_ref => null
1629 ,p_change_sequence => l_change_sequence
1630 ,p_source_document_type_id => l_source_document_type_id
1631 ,p_source_document_id => l_source_document_id
1632 ,p_source_document_line_id => null );
1633
1634 OE_Header_Payment_Util.Get_Ids
1635 ( p_x_Header_Payment_rec => x_Header_Payment_tbl(l_index)
1636 , p_Header_Payment_val_rec => p_Header_Payment_val_tbl(l_index)
1637 );
1638
1639 IF x_Header_Payment_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1640 x_return_status := FND_API.G_RET_STS_ERROR;
1641 END IF;
1642
1643 l_index := p_Header_Payment_val_tbl.NEXT(l_index);
1644
1645 OE_MSG_PUB.reset_msg_context('HEADER_PAYMENT');
1646
1647 END LOOP;
1648
1649 -- Convert line
1650
1651 x_line_tbl := p_line_tbl;
1652
1653 l_index := p_line_val_tbl.FIRST;
1654
1655 WHILE l_index IS NOT NULL LOOP
1656 OE_MSG_PUB.set_msg_context
1657 ( p_entity_code => 'LINE'
1658 ,p_entity_id => x_line_tbl(l_index).line_id
1659 ,p_header_id => x_line_tbl(l_index).header_id
1660 ,p_line_id => x_line_tbl(l_index).line_id
1661 ,p_orig_sys_document_ref => x_line_tbl(l_index).orig_sys_document_ref
1662 ,p_orig_sys_document_line_ref => x_line_tbl(l_index).orig_sys_line_ref
1663 ,p_orig_sys_shipment_ref => x_line_tbl(l_index).orig_sys_shipment_ref
1664 ,p_change_sequence => x_line_tbl(l_index).change_sequence
1665 ,p_source_document_id => x_line_tbl(l_index).source_document_id
1666 ,p_source_document_line_id => x_line_tbl(l_index).source_document_line_id
1667 ,p_order_source_id => x_line_tbl(l_index).order_source_id
1668 ,p_source_document_type_id => x_line_tbl(l_index).source_document_type_id);
1669
1670 -- Fix bug 1351061: populate the sold_to_org_id on the
1671 -- line record from the header record. This is needed as
1672 -- the customer related value fields (ship_to_org, bill_to_org
1673 -- etc.) are converted to ID fields only if the sold_to_org_id
1674 -- is provided.
1675 IF nvl(x_line_tbl(l_index).sold_to_org_id,FND_API.G_MISS_NUM)
1676 = FND_API.G_MISS_NUM
1677 AND nvl(p_line_val_tbl(l_index).sold_to_org,FND_API.G_MISS_CHAR)
1678 = FND_API.G_MISS_CHAR
1679 AND x_header_rec.sold_to_org_id <> FND_API.G_MISS_NUM
1680 THEN
1681 x_line_tbl(l_index).sold_to_org_id := x_header_rec.sold_to_org_id;
1682 END IF;
1683
1684 OE_Line_Util.Get_Ids
1685 ( p_x_line_rec => x_line_tbl(l_index)
1686 , p_line_val_rec => p_line_val_tbl(l_index)
1687 );
1688
1689 IF x_line_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1690 x_return_status := FND_API.G_RET_STS_ERROR;
1691 END IF;
1692
1693 l_index := p_line_val_tbl.NEXT(l_index);
1694
1695 OE_MSG_PUB.reset_msg_context('LINE');
1696
1697 END LOOP;
1698
1699 -- Convert Line_Adj
1700
1701 x_Line_Adj_tbl := p_Line_Adj_tbl;
1702
1703 l_index := p_Line_Adj_val_tbl.FIRST;
1704
1705 WHILE l_index IS NOT NULL LOOP
1706 IF x_Line_Adj_tbl(l_index).line_id IS NOT NULL AND
1707 x_Line_Adj_tbl(l_index).line_id <> FND_API.G_MISS_NUM THEN
1708 BEGIN
1709 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1710 source_document_type_id, source_document_id, orig_sys_line_ref,
1711 source_document_line_id, orig_sys_shipment_ref
1712 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1713 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
1714 l_source_document_line_id, l_orig_sys_shipment_ref
1715 FROM OE_ORDER_LINES_ALL
1716 WHERE line_id = x_Line_Adj_tbl(l_index).line_id;
1717 EXCEPTION
1718 WHEN NO_DATA_FOUND THEN
1719 l_order_source_id := null;
1720 l_orig_sys_document_ref := null;
1721 l_change_sequence := null;
1722 l_source_document_type_id := null;
1723 l_source_document_id := null;
1724 l_orig_sys_line_ref := null;
1725 l_source_document_line_id := null;
1726 l_orig_sys_shipment_ref := null;
1727 WHEN OTHERS THEN
1728 l_order_source_id := null;
1729 l_orig_sys_document_ref := null;
1730 l_change_sequence := null;
1731 l_source_document_type_id := null;
1732 l_source_document_id := null;
1733 l_orig_sys_line_ref := null;
1734 l_source_document_line_id := null;
1735 l_orig_sys_shipment_ref := null;
1736 END;
1737 END IF;
1738
1739 OE_MSG_PUB.set_msg_context(
1740 p_entity_code => 'LINE_ADJ'
1741 ,p_entity_id => x_Line_Adj_tbl(l_index).price_adjustment_id
1742 ,p_header_id => x_Line_Adj_tbl(l_index).header_id
1743 ,p_line_id => x_Line_Adj_tbl(l_index).line_id
1744 ,p_order_source_id => l_order_source_id
1745 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1746 ,p_orig_sys_document_line_ref => l_orig_sys_line_ref
1747 ,p_orig_sys_shipment_ref => l_orig_sys_shipment_ref
1748 ,p_change_sequence => l_change_sequence
1749 ,p_source_document_type_id => l_source_document_type_id
1750 ,p_source_document_id => l_source_document_id
1751 ,p_source_document_line_id => l_source_document_line_id );
1752
1753 OE_Line_Adj_Util.Get_Ids
1754 ( p_x_Line_Adj_rec => x_Line_Adj_tbl(l_index)
1755 , p_Line_Adj_val_rec => p_Line_Adj_val_tbl(l_index)
1756 );
1757
1758 IF x_Line_Adj_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1759 x_return_status := FND_API.G_RET_STS_ERROR;
1760 END IF;
1761
1762 l_index := p_Line_Adj_val_tbl.NEXT(l_index);
1763
1764 OE_MSG_PUB.reset_msg_context('LINE_ADJ');
1765
1766 END LOOP;
1767
1768 -- Convert Line_Scredit
1769
1770 x_Line_Scredit_tbl := p_Line_Scredit_tbl;
1771
1772 l_index := p_Line_Scredit_val_tbl.FIRST;
1773
1774 WHILE l_index IS NOT NULL LOOP
1775
1776 IF x_Line_Scredit_tbl(l_index).line_id IS NOT NULL AND
1777 x_Line_Scredit_tbl(l_index).line_id <> FND_API.G_MISS_NUM THEN
1778 BEGIN
1779 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1780 source_document_type_id, source_document_id, orig_sys_line_ref,
1781 source_document_line_id, orig_sys_shipment_ref
1782 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1783 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
1784 l_source_document_line_id, l_orig_sys_shipment_ref
1785 FROM OE_ORDER_LINES_ALL
1786 WHERE line_id = x_Line_Scredit_tbl(l_index).line_id;
1787 EXCEPTION
1788 WHEN NO_DATA_FOUND THEN
1789 l_order_source_id := null;
1790 l_orig_sys_document_ref := null;
1791 l_change_sequence := null;
1792 l_source_document_type_id := null;
1793 l_source_document_id := null;
1794 l_orig_sys_line_ref := null;
1795 l_source_document_line_id := null;
1796 l_orig_sys_shipment_ref := null;
1797 WHEN OTHERS THEN
1798 l_order_source_id := null;
1799 l_orig_sys_document_ref := null;
1800 l_change_sequence := null;
1801 l_source_document_type_id := null;
1802 l_source_document_id := null;
1803 l_orig_sys_line_ref := null;
1804 l_source_document_line_id := null;
1805 l_orig_sys_shipment_ref := null;
1806 END;
1807 END IF;
1808
1809 OE_MSG_PUB.set_msg_context(
1810 p_entity_code => 'LINE_SCREDIT'
1811 ,p_entity_id => x_Line_Scredit_tbl(l_index).sales_credit_id
1812 ,p_header_id => x_Line_Scredit_tbl(l_index).header_id
1813 ,p_line_id => x_Line_Scredit_tbl(l_index).line_id
1814 ,p_order_source_id => l_order_source_id
1815 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1816 ,p_orig_sys_document_line_ref => l_orig_sys_line_ref
1817 ,p_orig_sys_shipment_ref => l_orig_sys_shipment_ref
1818 ,p_change_sequence => l_change_sequence
1819 ,p_source_document_type_id => l_source_document_type_id
1820 ,p_source_document_id => l_source_document_id
1821 ,p_source_document_line_id => l_source_document_line_id );
1822
1823 OE_Line_Scredit_Util.Get_Ids
1824 ( p_x_Line_Scredit_rec => x_Line_Scredit_tbl(l_index)
1825 , p_Line_Scredit_val_rec => p_Line_Scredit_val_tbl(l_index)
1826 );
1827
1828 IF x_Line_Scredit_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1829 x_return_status := FND_API.G_RET_STS_ERROR;
1830 END IF;
1831
1832 l_index := p_Line_Scredit_val_tbl.NEXT(l_index);
1833
1834 OE_MSG_PUB.reset_msg_context('LINE_SCREDIT');
1835
1836 END LOOP;
1837
1838 -- Convert Line_Payment
1839
1840 x_Line_Payment_tbl := p_Line_Payment_tbl;
1841
1842 l_index := p_Line_Payment_val_tbl.FIRST;
1843
1844 WHILE l_index IS NOT NULL LOOP
1845
1846 IF x_Line_Payment_tbl(l_index).line_id IS NOT NULL AND
1847 x_Line_Payment_tbl(l_index).line_id <> FND_API.G_MISS_NUM THEN
1848 BEGIN
1849 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1850 source_document_type_id, source_document_id, orig_sys_line_ref,
1851 source_document_line_id, orig_sys_shipment_ref
1852 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1853 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
1854 l_source_document_line_id, l_orig_sys_shipment_ref
1855 FROM OE_ORDER_LINES_ALL
1856 WHERE line_id = x_Line_Payment_tbl(l_index).line_id;
1857 EXCEPTION
1858 WHEN NO_DATA_FOUND THEN
1859 l_order_source_id := null;
1860 l_orig_sys_document_ref := null;
1861 l_change_sequence := null;
1862 l_source_document_type_id := null;
1863 l_source_document_id := null;
1864 l_orig_sys_line_ref := null;
1865 l_source_document_line_id := null;
1866 l_orig_sys_shipment_ref := null;
1867 WHEN OTHERS THEN
1868 l_order_source_id := null;
1869 l_orig_sys_document_ref := null;
1870 l_change_sequence := null;
1871 l_source_document_type_id := null;
1872 l_source_document_id := null;
1873 l_orig_sys_line_ref := null;
1874 l_source_document_line_id := null;
1875 l_orig_sys_shipment_ref := null;
1876 END;
1877 END IF;
1878
1879 OE_MSG_PUB.set_msg_context(
1880 p_entity_code => 'LINE_PAYMENT'
1881 ,p_entity_id => x_Line_Payment_tbl(l_index).payment_number
1882 ,p_header_id => x_Line_Payment_tbl(l_index).header_id
1883 ,p_line_id => x_Line_Payment_tbl(l_index).line_id
1884 ,p_order_source_id => l_order_source_id
1885 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1886 ,p_orig_sys_document_line_ref => l_orig_sys_line_ref
1887 ,p_orig_sys_shipment_ref => l_orig_sys_shipment_ref
1888 ,p_change_sequence => l_change_sequence
1889 ,p_source_document_type_id => l_source_document_type_id
1890 ,p_source_document_id => l_source_document_id
1891 ,p_source_document_line_id => l_source_document_line_id );
1892
1893 OE_Line_Payment_Util.Get_Ids
1894 ( p_x_Line_Payment_rec => x_Line_Payment_tbl(l_index)
1895 , p_Line_Payment_val_rec => p_Line_Payment_val_tbl(l_index)
1896 );
1897
1898 IF x_Line_Payment_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1899 x_return_status := FND_API.G_RET_STS_ERROR;
1900 END IF;
1901
1902 l_index := p_Line_Payment_val_tbl.NEXT(l_index);
1903
1904 OE_MSG_PUB.reset_msg_context('LINE_PAYMENT');
1905
1906 END LOOP;
1907
1908 -- Convert Lot_Serial
1909
1910 x_Lot_Serial_tbl := p_Lot_Serial_tbl;
1911
1912 l_index := p_Lot_Serial_val_tbl.FIRST;
1913
1914 WHILE l_index IS NOT NULL LOOP
1915
1916 IF x_Lot_Serial_tbl(l_index).line_id IS NOT NULL AND
1917 x_Lot_Serial_tbl(l_index).line_id <> FND_API.G_MISS_NUM THEN
1918 BEGIN
1919 SELECT order_source_id, orig_sys_document_ref, change_sequence,
1920 source_document_type_id, source_document_id, orig_sys_line_ref,
1921 source_document_line_id, orig_sys_shipment_ref
1922 INTO l_order_source_id, l_orig_sys_document_ref, l_change_sequence,
1923 l_source_document_type_id, l_source_document_id, l_orig_sys_line_ref,
1924 l_source_document_line_id, l_orig_sys_shipment_ref
1925 FROM OE_ORDER_LINES_ALL
1926 WHERE line_id = x_Lot_Serial_tbl(l_index).line_id;
1927 EXCEPTION
1928 WHEN NO_DATA_FOUND THEN
1929 l_order_source_id := null;
1930 l_orig_sys_document_ref := null;
1931 l_change_sequence := null;
1932 l_source_document_type_id := null;
1933 l_source_document_id := null;
1934 l_orig_sys_line_ref := null;
1935 l_source_document_line_id := null;
1936 l_orig_sys_shipment_ref := null;
1937 WHEN OTHERS THEN
1938 l_order_source_id := null;
1939 l_orig_sys_document_ref := null;
1940 l_change_sequence := null;
1941 l_source_document_type_id := null;
1942 l_source_document_id := null;
1943 l_orig_sys_line_ref := null;
1944 l_source_document_line_id := null;
1945 l_orig_sys_shipment_ref := null;
1946 END;
1947 END IF;
1948
1949 OE_MSG_PUB.set_msg_context(
1950 p_entity_code => 'LOT_SERIAL'
1951 ,p_entity_id => null
1952 ,p_header_id => p_header_rec.header_id
1953 ,p_line_id => x_Lot_Serial_tbl(l_index).line_id
1954 ,p_order_source_id => l_order_source_id
1955 ,p_orig_sys_document_ref => l_orig_sys_document_ref
1956 ,p_orig_sys_document_line_ref => l_orig_sys_line_ref
1957 ,p_orig_sys_shipment_ref => l_orig_sys_shipment_ref
1958 ,p_change_sequence => l_change_sequence
1959 ,p_source_document_type_id => l_source_document_type_id
1960 ,p_source_document_id => l_source_document_id
1961 ,p_source_document_line_id => l_source_document_line_id );
1962
1963 OE_Lot_Serial_Util.Get_Ids
1964 ( p_x_Lot_Serial_rec => x_Lot_Serial_tbl(l_index)
1965 , p_Lot_Serial_val_rec => p_Lot_Serial_val_tbl(l_index)
1966 );
1967
1968 IF x_Lot_Serial_tbl(l_index).return_status = FND_API.G_RET_STS_ERROR THEN
1969 x_return_status := FND_API.G_RET_STS_ERROR;
1970 END IF;
1971
1972 l_index := p_Lot_Serial_val_tbl.NEXT(l_index);
1973
1974 OE_MSG_PUB.reset_msg_context('LOT_SERIAL_ID');
1975
1976 END LOOP;
1977
1978 EXCEPTION
1979
1980 WHEN OTHERS THEN
1981
1982 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1983 THEN
1984 OE_MSG_PUB.Add_Exc_Msg
1985 ( G_PKG_NAME
1986 , 'Value_To_Id'
1987 );
1988 END IF;
1989
1990 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1991
1992 END Value_To_Id;
1993
1994 -- API Name: Get_Option_Lines
1995 -- Type : Group
1996 -- Function
1997 --
1998 -- Pre-reqs
1999 --
2000 -- Parameters
2001 --
2002 -- Version Current version = 1.0
2003 -- Initial version = 1.0
2004 --
2005 -- Notes
2006 --
2007 -- End of Comments
2008
2009
2010
2011 Procedure Get_Option_Lines
2012 ( p_api_version_number IN NUMBER
2013 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
2014 , p_top_model_line_id IN NUMBER
2015 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_Pub.Line_Tbl_Type
2016 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2017 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2018 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2019 )
2020
2021 IS
2022 l_api_version_number CONSTANT NUMBER := 1.0;
2023 l_api_name CONSTANT VARCHAR2(30) := 'Get_Option_Lines';
2024 l_return_status VARCHAR2(1);
2025 l_top_model_line_id NUMBER;
2026 l_line_tbl OE_Order_PUB.Line_Tbl_Type;
2027
2028 BEGIN
2029
2030 -- Standard call to check for API compatibility
2031
2032 IF NOT FND_API.Compatible_API_Call
2033 ( l_api_version_number
2034 , p_api_version_number
2035 , l_api_name
2036 , G_PKG_NAME
2037 )
2038 THEN
2039 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2040 END IF;
2041
2042 -- Standard check for Val/ID conversion
2043
2044 IF p_top_model_line_id <> FND_API.G_MISS_NUM THEN
2045
2046 l_top_model_line_id := p_top_model_line_id;
2047
2048 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2049 THEN
2050 fnd_message.set_name('ONT','OE_BOTH_VAL_AND_ID_EXIST');
2051 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Top Model Line');
2052 OE_MSG_PUB.Add;
2053 END IF;
2054
2055 ELSE
2056 IF l_top_model_line_id = FND_API.G_MISS_NUM THEN
2057 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2058 THEN
2059 fnd_message.set_name('ONT','Invalid Business Object Value');
2060 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Top Model Line');
2061 OE_MSG_PUB.Add;
2062 END IF;
2063 END IF;
2064
2065 RAISE FND_API.G_EXC_ERROR;
2066 END IF;
2067
2068 -- Make a call to OE_Config_Util.Query_OPtions
2069 OE_Config_Util.Query_Options
2070 (p_top_model_line_id => l_top_model_line_id
2071 ,x_line_tbl => l_line_tbl
2072 );
2073
2074 -- Load the OUT parameters
2075
2076 x_line_tbl := l_line_tbl;
2077
2078 -- Set the return status
2079
2080 x_return_status := FND_API.G_RET_STS_SUCCESS;
2081
2082 -- Get message count and data
2083
2084 OE_MSG_PUB.Count_And_Get
2085 ( p_count =>x_msg_count
2086 , p_data =>x_msg_data
2087 );
2088
2089 EXCEPTION
2090
2091 WHEN FND_API.G_EXC_ERROR THEN
2092 x_return_status := FND_API.G_RET_STS_ERROR;
2093
2094 -- Get message count and data
2095
2096 OE_MSG_PUB.Count_And_Get
2097 ( p_count => x_msg_count
2098 , p_data => x_msg_data
2099 );
2100
2101 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2102
2103 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2104
2105 -- Get message count and data
2106 OE_MSG_PUB.Count_And_Get
2107 ( p_count => x_msg_count
2108 , p_data => x_msg_data
2109 );
2110
2111 WHEN OTHERS THEN
2112
2113 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2114 THEN
2115 OE_MSG_PUB.Add_Exc_Msg
2116 ( G_PKG_NAME
2117 , 'Get_Option_Lines'
2118 );
2119 END IF;
2120
2121 -- Get message count and data
2122 OE_MSG_PUB.Count_And_Get
2123 ( p_count => x_msg_count
2124 , p_data => x_msg_data
2125 );
2126
2127 END Get_Option_Lines;
2128
2129 -- Existing APIs Calling the New APIs with Payments
2130
2131 PROCEDURE Process_Order
2132 ( p_api_version_number IN NUMBER
2133 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
2134 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
2135 , p_commit IN VARCHAR2 := FND_API.G_FALSE
2136 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
2137 , p_control_rec IN OE_GLOBALS.Control_Rec_Type :=
2138 OE_GLOBALS.G_MISS_CONTROL_REC
2139 , p_api_service_level IN VARCHAR2 := OE_GLOBALS.G_ALL_SERVICE
2140 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2141 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2142 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2143 , p_header_rec IN OE_Order_Pub.Header_Rec_Type :=
2144 OE_Order_PUB.G_MISS_HEADER_REC
2145 , p_old_header_rec IN OE_Order_PUB.Header_Rec_Type :=
2146 OE_Order_PUB.G_MISS_HEADER_REC
2147 , p_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type :=
2148 OE_Order_PUB.G_MISS_HEADER_VAL_REC
2149 , p_old_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type :=
2150 OE_Order_PUB.G_MISS_HEADER_VAL_REC
2151 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type :=
2152 OE_Order_PUB.G_MISS_HEADER_ADJ_TBL
2153 , p_old_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type :=
2154 OE_Order_PUB.G_MISS_HEADER_ADJ_TBL
2155 , p_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type :=
2156 OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL
2157 , p_old_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type :=
2158 OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL
2159 , p_Header_price_Att_tbl IN OE_Order_PUB.Header_Price_Att_Tbl_Type :=
2160 OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL
2161 , p_old_Header_Price_Att_tbl IN OE_Order_PUB.Header_Price_Att_Tbl_Type :=
2162 OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL
2163 , p_Header_Adj_Att_tbl IN OE_Order_PUB.Header_Adj_Att_Tbl_Type :=
2164 OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL
2165 , p_old_Header_Adj_Att_tbl IN OE_Order_PUB.Header_Adj_Att_Tbl_Type :=
2166 OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL
2167 , p_Header_Adj_Assoc_tbl IN OE_Order_PUB.Header_Adj_Assoc_Tbl_Type :=
2168 OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL
2169 , p_old_Header_Adj_Assoc_tbl IN OE_Order_PUB.Header_Adj_Assoc_Tbl_Type :=
2170 OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL
2171 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type :=
2172 OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL
2173 , p_old_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type :=
2174 OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL
2175 , p_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type :=
2176 OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL
2177 , p_old_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type :=
2178 OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL
2179 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type :=
2180 OE_Order_PUB.G_MISS_LINE_TBL
2181 , p_old_line_tbl IN OE_Order_PUB.Line_Tbl_Type :=
2182 OE_Order_PUB.G_MISS_LINE_TBL
2183 , p_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type :=
2184 OE_Order_PUB.G_MISS_LINE_VAL_TBL
2185 , p_old_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type :=
2186 OE_Order_PUB.G_MISS_LINE_VAL_TBL
2187 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type :=
2188 OE_Order_PUB.G_MISS_LINE_ADJ_TBL
2189 , p_old_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type :=
2190 OE_Order_PUB.G_MISS_LINE_ADJ_TBL
2191 , p_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type :=
2192 OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL
2193 , p_old_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type :=
2194 OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL
2195 , p_Line_price_Att_tbl IN OE_Order_PUB.Line_Price_Att_Tbl_Type :=
2196 OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL
2197 , p_old_Line_Price_Att_tbl IN OE_Order_PUB.Line_Price_Att_Tbl_Type :=
2198 OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL
2199 , p_Line_Adj_Att_tbl IN OE_Order_PUB.Line_Adj_Att_Tbl_Type :=
2200 OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL
2201 , p_old_Line_Adj_Att_tbl IN OE_Order_PUB.Line_Adj_Att_Tbl_Type :=
2202 OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL
2203 , p_Line_Adj_Assoc_tbl IN OE_Order_PUB.Line_Adj_Assoc_Tbl_Type :=
2204 OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL
2205 , p_old_Line_Adj_Assoc_tbl IN OE_Order_PUB.Line_Adj_Assoc_Tbl_Type :=
2206 OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL
2207 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type :=
2208 OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL
2209 , p_old_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type :=
2210 OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL
2211 , p_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type :=
2212 OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL
2213 , p_old_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type :=
2214 OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL
2215 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type :=
2216 OE_Order_PUB.G_MISS_LOT_SERIAL_TBL
2217 , p_old_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type :=
2218 OE_Order_PUB.G_MISS_LOT_SERIAL_TBL
2219 , p_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type :=
2220 OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL
2221 , p_old_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type :=
2222 OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL
2223 , p_Action_Request_tbl IN OE_Order_PUB.Request_Tbl_Type :=
2224 OE_Order_PUB.G_MISS_REQUEST_TBL
2225 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
2226 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
2227 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
2228 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
2229 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
2230 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
2231 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
2232 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
2233 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
2234 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
2235 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
2236 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
2237 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
2238 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
2239 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
2240 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
2241 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
2242 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
2243 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
2244 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
2245 , x_action_request_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Request_Tbl_Type
2246 --For bug 3390458
2247 , p_rtrim_data IN Varchar2 :='N'
2248 , p_validate_desc_flex in varchar2 default 'Y' -- bug4343612
2249 --ER7675548
2250 , p_header_customer_info_tbl IN OE_ORDER_PUB.CUSTOMER_INFO_TABLE_TYPE :=
2251 OE_ORDER_PUB.G_MISS_CUSTOMER_INFO_TBL
2252 , p_line_customer_info_tbl IN OE_ORDER_PUB.CUSTOMER_INFO_TABLE_TYPE :=
2253 OE_ORDER_PUB.G_MISS_CUSTOMER_INFO_TBL
2254 )
2255 IS
2256 l_api_version_number CONSTANT NUMBER := 1.0;
2257 l_api_name CONSTANT VARCHAR2(30):= 'Process_Order';
2258 l_control_rec OE_GLOBALS.Control_Rec_Type;
2259 l_validation_level VARCHAR2(30);
2260 l_return_status VARCHAR2(1);
2261 l_old_header_rec OE_Order_PUB.Header_Rec_Type;
2262 l_old_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
2263 l_old_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type ;
2264 l_old_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type ;
2265 l_old_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type ;
2266 l_old_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
2267 l_old_line_tbl OE_Order_PUB.Line_Tbl_Type;
2268 l_old_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
2269 l_old_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type ;
2270 l_old_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type ;
2271 l_old_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type ;
2272 l_old_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
2273 l_old_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
2274 x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
2275 x_Header_Payment_val_tbl OE_Order_PUB.Header_Payment_Val_Tbl_Type;
2276 x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
2277 x_Line_Payment_val_tbl OE_Order_PUB.Line_Payment_Val_Tbl_Type;
2278 I NUMBER;
2279
2280 BEGIN
2281
2282 l_return_status := FND_API.G_RET_STS_SUCCESS; --Nocopy changes
2283
2284 Process_Order
2285 ( p_api_version_number => p_api_version_number
2286 , p_init_msg_list => p_init_msg_list
2287 , p_return_values => p_return_values
2288 , p_commit => p_commit
2289 , p_validation_level => p_validation_level
2290 , p_control_rec => p_control_rec
2291 , p_api_service_level => p_api_service_level
2292 , x_return_status => x_return_status
2293 , x_msg_count => x_msg_count
2294 , x_msg_data => x_msg_data
2295 , p_header_rec => p_header_rec
2296 , p_old_header_rec => p_old_header_rec
2297 , p_header_val_rec => p_header_val_rec
2298 , p_old_header_val_rec => p_old_header_val_rec
2299 , p_Header_Adj_tbl => p_Header_Adj_tbl
2300 , p_old_Header_Adj_tbl => p_old_Header_Adj_tbl
2301 , p_Header_Adj_val_tbl => p_Header_Adj_val_tbl
2302 , p_old_Header_Adj_val_tbl => p_old_Header_Adj_val_tbl
2303 , p_Header_price_Att_tbl => p_Header_price_Att_tbl
2304 , p_old_Header_Price_Att_tbl => p_old_Header_Price_Att_tbl
2305 , p_Header_Adj_Att_tbl => p_Header_Adj_Att_tbl
2306 , p_old_Header_Adj_Att_tbl => p_old_Header_Adj_Att_tbl
2307 , p_Header_Adj_Assoc_tbl => p_Header_Adj_Assoc_tbl
2308 , p_old_Header_Adj_Assoc_tbl => p_old_Header_Adj_Assoc_tbl
2309 , p_Header_Scredit_tbl => p_Header_Scredit_tbl
2310 , p_old_Header_Scredit_tbl => p_old_Header_Scredit_tbl
2311 , p_Header_Scredit_val_tbl => p_Header_Scredit_val_tbl
2312 , p_old_Header_Scredit_val_tbl => p_old_Header_Scredit_val_tbl
2313 , p_Header_Payment_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
2314 , p_old_Header_Payment_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
2315 , p_Header_Payment_val_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
2316 , p_old_Header_Payment_val_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
2317 , p_line_tbl => p_line_tbl
2318 , p_old_line_tbl => p_old_line_tbl
2319 , p_line_val_tbl => p_line_val_tbl
2320 , p_old_line_val_tbl => p_old_line_val_tbl
2321 , p_Line_Adj_tbl => p_Line_Adj_tbl
2322 , p_old_Line_Adj_tbl => p_old_Line_Adj_tbl
2323 , p_Line_Adj_val_tbl => p_Line_Adj_val_tbl
2324 , p_old_Line_Adj_val_tbl => p_old_Line_Adj_val_tbl
2325 , p_Line_price_Att_tbl => p_Line_price_Att_tbl
2326 , p_old_Line_Price_Att_tbl => p_old_Line_Price_Att_tbl
2327 , p_Line_Adj_Att_tbl => p_Line_Adj_Att_tbl
2328 , p_old_Line_Adj_Att_tbl => p_old_Line_Adj_Att_tbl
2329 , p_Line_Adj_Assoc_tbl => p_Line_Adj_Assoc_tbl
2330 , p_old_Line_Adj_Assoc_tbl => p_old_Line_Adj_Assoc_tbl
2331 , p_Line_Scredit_tbl => p_Line_Scredit_tbl
2332 , p_old_Line_Scredit_tbl => p_old_Line_Scredit_tbl
2333 , p_Line_Scredit_val_tbl => p_Line_Scredit_val_tbl
2334 , p_old_Line_Scredit_val_tbl => p_old_Line_Scredit_val_tbl
2335 , p_Line_Payment_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
2336 , p_old_Line_Payment_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
2337 , p_Line_Payment_val_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
2338 , p_old_Line_Payment_val_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
2339 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
2340 , p_old_Lot_Serial_tbl => p_old_Lot_Serial_tbl
2341 , p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
2342 , p_old_Lot_Serial_val_tbl => p_old_Lot_Serial_val_tbl
2343 , p_action_request_tbl => p_action_request_tbl
2344 , p_rtrim_data =>p_rtrim_data
2345 , x_header_rec => x_header_rec
2346 , x_header_val_rec => x_header_val_rec
2347 , x_Header_Adj_tbl => x_Header_Adj_tbl
2348 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
2349 , x_Header_price_Att_tbl => x_Header_price_Att_tbl
2350 , x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
2351 , x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
2352 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
2353 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
2354 , x_Header_Payment_tbl => x_Header_Payment_tbl
2355 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
2356 , x_line_tbl => x_line_tbl
2357 , x_line_val_tbl => x_line_val_tbl
2358 , x_Line_Adj_tbl => x_Line_Adj_tbl
2359 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
2360 , x_Line_price_Att_tbl => x_Line_price_Att_tbl
2361 , x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
2362 , x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
2363 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
2364 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
2365 , x_Line_Payment_tbl => x_Line_Payment_tbl
2366 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
2367 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
2368 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
2369 , x_action_request_tbl => x_action_request_tbl
2370 , p_validate_desc_flex => p_validate_desc_flex --bug4343612
2371 --ER7675548
2372 , p_header_customer_info_tbl =>p_header_customer_info_tbl
2373 , p_line_customer_info_tbl =>p_line_customer_info_tbl
2374 );
2375
2376 END Process_Order;
2377
2378 PROCEDURE Lock_Order
2379 ( p_api_version_number IN NUMBER
2380 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
2381 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
2382 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2383 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2384 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2385 , p_header_rec IN OE_Order_PUB.Header_Rec_Type :=
2386 OE_Order_PUB.G_MISS_HEADER_REC
2387 , p_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type :=
2388 OE_Order_PUB.G_MISS_HEADER_VAL_REC
2389 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type :=
2390 OE_Order_PUB.G_MISS_HEADER_ADJ_TBL
2391 , p_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type :=
2392 OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL
2393 , p_Header_price_Att_tbl IN OE_Order_PUB.Header_Price_Att_Tbl_Type :=
2394 OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL
2395 , p_Header_Adj_Att_tbl IN OE_Order_PUB.Header_Adj_Att_Tbl_Type :=
2396 OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL
2397 , p_Header_Adj_Assoc_tbl IN OE_Order_PUB.Header_Adj_Assoc_Tbl_Type :=
2398 OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL
2399 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type :=
2400 OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL
2401 , p_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type :=
2402 OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL
2403 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type :=
2404 OE_Order_PUB.G_MISS_LINE_TBL
2405 , p_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type :=
2406 OE_Order_PUB.G_MISS_LINE_VAL_TBL
2407 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type :=
2408 OE_Order_PUB.G_MISS_LINE_ADJ_TBL
2409 , p_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type :=
2410 OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL
2411 , p_Line_price_Att_tbl IN OE_Order_PUB.Line_Price_Att_Tbl_Type :=
2412 OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL
2413 , p_Line_Adj_Att_tbl IN OE_Order_PUB.Line_Adj_Att_Tbl_Type :=
2414 OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL
2415 , p_Line_Adj_Assoc_tbl IN OE_Order_PUB.Line_Adj_Assoc_Tbl_Type :=
2416 OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL
2417 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type :=
2418 OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL
2419 , p_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type :=
2420 OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL
2421 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type :=
2422 OE_Order_PUB.G_MISS_LOT_SERIAL_TBL
2423 , p_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type :=
2424 OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL
2425 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
2426 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
2427 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
2428 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
2429 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
2430 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
2431 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
2432 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
2433 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
2434 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
2435 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
2436 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
2437 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
2438 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
2439 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
2440 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
2441 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
2442 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
2443 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
2444 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
2445 )
2446 IS
2447 l_api_version_number CONSTANT NUMBER := 1.0;
2448 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Order';
2449 l_return_status VARCHAR2(1);
2450 x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
2451 x_Header_Payment_val_tbl OE_Order_PUB.Header_Payment_Val_Tbl_Type;
2452 x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
2453 x_Line_Payment_val_tbl OE_Order_PUB.Line_Payment_Val_Tbl_Type;
2454
2455 BEGIN
2456
2457 Lock_Order
2458 ( p_api_version_number => p_api_version_number
2459 , p_init_msg_list => p_init_msg_list
2460 , p_return_values => p_return_values
2461 , x_return_status => x_return_status
2462 , x_msg_count => x_msg_count
2463 , x_msg_data => x_msg_data
2464 , p_header_rec => p_header_rec
2465 , p_header_val_rec => p_header_val_rec
2466 , p_Header_Adj_tbl => p_Header_Adj_tbl
2467 , p_Header_Adj_val_tbl => p_Header_Adj_val_tbl
2468 , p_Header_price_Att_tbl => p_Header_price_Att_tbl
2469 , p_Header_Adj_Att_tbl => p_Header_Adj_Att_tbl
2470 , p_Header_Adj_Assoc_tbl => p_Header_Adj_Assoc_tbl
2471 , p_Header_Scredit_tbl => p_Header_Scredit_tbl
2472 , p_Header_Scredit_val_tbl => p_Header_Scredit_val_tbl
2473 , p_Header_Payment_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
2474 , p_Header_Payment_val_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
2475 , p_line_tbl => p_line_tbl
2476 , p_line_val_tbl => p_line_val_tbl
2477 , p_Line_Adj_tbl => p_Line_Adj_tbl
2478 , p_Line_Adj_val_tbl => p_Line_Adj_val_tbl
2479 , p_Line_price_Att_tbl => p_Line_price_Att_tbl
2480 , p_Line_Adj_Att_tbl => p_Line_Adj_Att_tbl
2481 , p_Line_Adj_Assoc_tbl => p_Line_Adj_Assoc_tbl
2482 , p_Line_Scredit_tbl => p_Line_Scredit_tbl
2483 , p_Line_Scredit_val_tbl => p_Line_Scredit_val_tbl
2484 , p_Line_Payment_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
2485 , p_Line_Payment_val_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
2486 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
2487 , p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
2488 , x_header_rec => x_header_rec
2489 , x_header_val_rec => x_header_val_rec
2490 , x_Header_Adj_tbl => x_Header_Adj_tbl
2491 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
2492 , x_Header_price_Att_tbl => x_Header_price_Att_tbl
2493 , x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
2494 , x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
2495 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
2496 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
2497 , x_Header_Payment_tbl => x_Header_Payment_tbl
2498 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
2499 , x_line_tbl => x_line_tbl
2500 , x_line_val_tbl => x_line_val_tbl
2501 , x_Line_Adj_tbl => x_Line_Adj_tbl
2502 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
2503 , x_Line_price_Att_tbl => x_Line_price_Att_tbl
2504 , x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
2505 , x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
2506 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
2507 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
2508 , x_Line_Payment_tbl => x_Line_Payment_tbl
2509 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
2510 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
2511 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
2512 );
2513
2514 END Lock_Order;
2515
2516 PROCEDURE Get_Order
2517 ( p_api_version_number IN NUMBER
2518 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
2519 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
2520 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2521 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2522 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2523 , p_header_id IN NUMBER :=
2524 FND_API.G_MISS_NUM
2525 , p_header IN VARCHAR2 :=
2526 FND_API.G_MISS_CHAR
2527 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
2528 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
2529 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
2530 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
2531 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
2532 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
2533 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
2534 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
2535 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
2536 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
2537 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
2538 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
2539 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
2540 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
2541 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
2542 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
2543 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
2544 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
2545 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
2546 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
2547 )
2548 IS
2549 l_api_version_number CONSTANT NUMBER := 1.0;
2550 l_api_name CONSTANT VARCHAR2(30):= 'Get_Order';
2551 l_header_id NUMBER := p_header_id;
2552 x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
2553 x_Header_Payment_val_tbl OE_Order_PUB.Header_Payment_Val_Tbl_Type;
2554 x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
2555 x_Line_Payment_val_tbl OE_Order_PUB.Line_Payment_Val_Tbl_Type;
2556
2557 BEGIN
2558
2559 Get_Order
2560 ( p_api_version_number => p_api_version_number
2561 , p_init_msg_list => p_init_msg_list
2562 , p_return_values => p_return_values
2563 , x_return_status => x_return_status
2564 , x_msg_count => x_msg_count
2565 , x_msg_data => x_msg_data
2566 , p_header_id => p_header_id
2567 , p_header => p_header
2568 , x_header_rec => x_header_rec
2569 , x_header_val_rec => x_header_val_rec
2570 , x_Header_Adj_tbl => x_Header_Adj_tbl
2571 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
2572 , x_Header_price_Att_tbl => x_Header_price_Att_tbl
2573 , x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
2574 , x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
2575 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
2576 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
2577 , x_Header_Payment_tbl => x_Header_Payment_tbl
2578 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
2579 , x_line_tbl => x_line_tbl
2580 , x_line_val_tbl => x_line_val_tbl
2581 , x_Line_Adj_tbl => x_Line_Adj_tbl
2582 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
2583 , x_Line_price_Att_tbl => x_Line_price_Att_tbl
2584 , x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
2585 , x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
2586 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
2587 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
2588 , x_Line_Payment_tbl => x_Line_Payment_tbl
2589 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
2590 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
2591 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
2592 );
2593 END Get_Order;
2594
2595 PROCEDURE Id_To_Value
2596 ( p_header_rec IN OE_Order_PUB.Header_Rec_Type
2597 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type
2598 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type
2599 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type
2600 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type
2601 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type
2602 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type
2603 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
2604 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
2605 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
2606 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
2607 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
2608 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
2609 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
2610 )
2611 IS
2612 x_Header_Payment_val_tbl OE_Order_PUB.Header_Payment_Val_Tbl_Type;
2613 x_Line_Payment_val_tbl OE_Order_PUB.Line_Payment_Val_Tbl_Type;
2614
2615 BEGIN
2616
2617 Id_To_value
2618 ( p_header_rec => p_header_rec
2619 , p_Header_Adj_tbl => p_Header_Adj_tbl
2620 , p_Header_Scredit_tbl => p_Header_Scredit_tbl
2621 , p_Header_Payment_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
2622 , p_line_tbl => p_line_tbl
2623 , p_Line_Adj_tbl => p_Line_Adj_tbl
2624 , p_Line_Scredit_tbl => p_Line_Scredit_tbl
2625 , p_Line_Payment_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
2626 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
2627 , x_header_val_rec => x_header_val_rec
2628 , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
2629 , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
2630 , x_Header_Payment_val_tbl => x_Header_Payment_val_tbl
2631 , x_line_val_tbl => x_line_val_tbl
2632 , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
2633 , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
2634 , x_Line_Payment_val_tbl => x_Line_Payment_val_tbl
2635 , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
2636 );
2637
2638 End Id_To_Value;
2639
2640 PROCEDURE Value_To_Id
2641 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2642 , p_header_rec IN OE_Order_PUB.Header_Rec_Type
2643 , p_header_val_rec IN OE_Order_PUB.Header_Val_Rec_Type
2644 , p_Header_Adj_tbl IN OE_Order_PUB.Header_Adj_Tbl_Type
2645 , p_Header_Adj_val_tbl IN OE_Order_PUB.Header_Adj_Val_Tbl_Type
2646 , p_Header_Scredit_tbl IN OE_Order_PUB.Header_Scredit_Tbl_Type
2647 , p_Header_Scredit_val_tbl IN OE_Order_PUB.Header_Scredit_Val_Tbl_Type
2648 , p_line_tbl IN OE_Order_PUB.Line_Tbl_Type
2649 , p_line_val_tbl IN OE_Order_PUB.Line_Val_Tbl_Type
2650 , p_Line_Adj_tbl IN OE_Order_PUB.Line_Adj_Tbl_Type
2651 , p_Line_Adj_val_tbl IN OE_Order_PUB.Line_Adj_Val_Tbl_Type
2652 , p_Line_Scredit_tbl IN OE_Order_PUB.Line_Scredit_Tbl_Type
2653 , p_Line_Scredit_val_tbl IN OE_Order_PUB.Line_Scredit_Val_Tbl_Type
2654 , p_Lot_Serial_tbl IN OE_Order_PUB.Lot_Serial_Tbl_Type
2655 , p_Lot_Serial_val_tbl IN OE_Order_PUB.Lot_Serial_Val_Tbl_Type
2656 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
2657 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
2658 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
2659 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
2660 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
2661 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
2662 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
2663 )
2664 IS
2665 l_order_source_id NUMBER := p_header_rec.order_source_id;
2666 l_orig_sys_document_ref VARCHAR2(50) := p_header_rec.orig_sys_document_ref;
2667 l_orig_sys_line_ref VARCHAR2(50);
2668 l_orig_sys_shipment_ref VARCHAR2(50);
2669 l_change_sequence VARCHAR2(50) := p_header_rec.change_sequence;
2670 l_source_document_type_id NUMBER := p_header_rec.source_document_type_id;
2671 l_source_document_id NUMBER := p_header_rec.source_document_id;
2672 l_source_document_line_id NUMBER;
2673
2674 l_header_rec OE_Order_PUB.Header_Rec_Type;
2675 l_Header_Adj_rec OE_Order_PUB.Header_Adj_Rec_Type;
2676 l_Header_Scredit_rec OE_Order_PUB.Header_Scredit_Rec_Type;
2677 l_line_rec OE_Order_PUB.Line_Rec_Type;
2678 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
2679 l_Line_Scredit_rec OE_Order_PUB.Line_Scredit_Rec_Type;
2680 l_Lot_Serial_rec OE_Order_PUB.Lot_Serial_Rec_Type;
2681 x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
2682 x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
2683 l_index BINARY_INTEGER;
2684 BEGIN
2685
2686 Value_To_Id
2687 ( x_return_status => x_return_status
2688 , p_header_rec => p_header_rec
2689 , p_header_val_rec => p_header_val_rec
2690 , p_Header_Adj_tbl => p_Header_Adj_tbl
2691 , p_Header_Adj_val_tbl => p_Header_Adj_val_tbl
2692 , p_Header_Scredit_tbl => p_Header_Scredit_tbl
2693 , p_Header_Scredit_val_tbl => p_Header_Scredit_val_tbl
2694 , p_Header_Payment_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_TBL
2695 , p_Header_Payment_val_tbl => OE_Order_PUB.G_MISS_HEADER_PAYMENT_VAL_TBL
2696 , p_line_tbl => p_line_tbl
2697 , p_line_val_tbl => p_line_val_tbl
2698 , p_Line_Adj_tbl => p_Line_Adj_tbl
2699 , p_Line_Adj_val_tbl => p_Line_Adj_val_tbl
2700 , p_Line_Scredit_tbl => p_Line_Scredit_tbl
2701 , p_Line_Scredit_val_tbl => p_Line_Scredit_val_tbl
2702 , p_Line_Payment_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_TBL
2703 , p_Line_Payment_val_tbl => OE_Order_PUB.G_MISS_LINE_PAYMENT_VAL_TBL
2704 , p_Lot_Serial_tbl => p_Lot_Serial_tbl
2705 , p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
2706 , x_header_rec => x_header_rec
2707 , x_Header_Adj_tbl => x_Header_Adj_tbl
2708 , x_Header_Scredit_tbl => x_Header_Scredit_tbl
2709 , x_Header_Payment_tbl => x_Header_Payment_tbl
2710 , x_line_tbl => x_line_tbl
2711 , x_Line_Adj_tbl => x_Line_Adj_tbl
2712 , x_Line_Scredit_tbl => x_Line_Scredit_tbl
2713 , x_Line_Payment_tbl => x_Line_Payment_tbl
2714 , x_Lot_Serial_tbl => x_Lot_Serial_tbl
2715 );
2716
2717 END Value_To_Id;
2718
2719 PROCEDURE automatic_account_creation(
2720 p_header_rec IN OE_Order_Pub.Header_Rec_Type,
2721 p_Header_Val_Rec IN OE_Order_pub.Header_Val_Rec_type,
2722 p_line_tbl IN OE_Order_Pub.Line_Tbl_Type,
2723 p_Line_Val_tbl IN OE_Order_pub.Line_Val_tbl_Type,
2724 x_header_rec IN OUT NOCOPY OE_Order_Pub.Header_Rec_Type, --bug6278382
2725 x_line_tbl IN OUT NOCOPY OE_Order_Pub.Line_Tbl_Type, --bug6278382
2726 x_return_status OUT NOCOPY VARCHAR2,
2727 x_msg_count OUT NOCOPY NUMBER,
2728 x_msg_data OUT NOCOPY VARCHAR2
2729 ) IS
2730
2731 p_control_rec oe_create_account_info.control_rec_type;
2732 p_account_tbl oe_create_account_info.account_tbl;
2733 p_contact_tbl oe_create_account_info.contact_tbl;
2734 p_site_tbl oe_create_account_info.site_tbl_type;
2735 p_line_site_tbl oe_create_account_info.site_tbl_type;
2736 p_party_customer_rec oe_create_account_info.party_customer_rec;
2737
2738 l_cust_account_role_id number;
2739 l_multiple_sold_to varchar2(32000);
2740 l_sold_to_org_id VARCHAR2(80);
2741 l_sold_to VARCHAR2(360);
2742 l_customer_name varchar2(360);
2743 l_account_number varchar2(30);
2744 l_email_address varchar2(2000);
2745 l_contact_name varchar2(360);
2746 l_count number;
2747
2748 l_message varchar2(300);
2749 l_site_tbl_counter number := 1;
2750 l_create_account boolean := FALSE; --do we need to call AAC?
2751 l_create_hdr_account boolean := FALSE; --do we need to call AAC for the header?
2752
2753 l_line_acct_matched number := 0;
2754 i number;
2755 j number;
2756
2757 l_header_end_cust_exists varchar2(2) :='N'; -- added for bug 4240715
2758
2759 TYPE line_acct IS RECORD (
2760 ship boolean := FALSE
2761 ,ship_value boolean := FALSE
2762 ,deliver boolean := FALSE
2763 ,deliver_value boolean := FALSE
2764 ,invoice boolean := FALSE
2765 ,invoice_value boolean := FALSE
2766 ,end_customer boolean :=FALSE -- End Customer Enhancement(bug 4240715)
2767 ,end_customer_value boolean :=FALSE
2768 );
2769
2770 type line_acct_needed_tbl is table of line_acct index by binary_integer;
2771 l_line_acct_needed line_acct_needed_tbl;
2772
2773 l_debug_level NUMBER := oe_debug_pub.g_debug_level;
2774
2775 BEGIN
2776 --oe_create_account_info.set_debug_on();
2777
2778 IF l_debug_level > 0 THEN
2779 oe_debug_pub.add(' AAC:Inside Process Order: Automatic Account Creation');
2780 oe_debug_pub.add(' operation='||p_header_rec.operation);
2781 END IF;
2782
2783 /* copy input records to output records */
2784 x_header_rec := p_header_rec;
2785 x_line_tbl := p_line_tbl;
2786
2787 -- Retrieve the sold_to_org_id if not passed on the header record. This
2788 -- will be needed by the value_to_id functions for related fields.
2789 -- For e.g. oe_value_to_id.ship_to_org_id requires sold_to_org_id
2790
2791 IF p_header_rec.operation = OE_GLOBALS.G_OPR_UPDATE AND
2792 p_header_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
2793
2794 IF l_debug_level > 0 THEN
2795 oe_debug_pub.add('AAC: Selecting Customer Based on old sold_to_org_id');
2796 END IF;
2797 SELECT SOLD_TO_ORG_ID
2798 INTO l_sold_to_org_id
2799 FROM OE_ORDER_HEADERS
2800 WHERE HEADER_ID = p_header_rec.header_id;
2801 x_header_rec.sold_to_org_id := l_sold_to_org_id;
2802 END IF;
2803
2804
2805
2806 IF l_debug_level > 0 THEN
2807 oe_debug_pub.add('AAC: header_id:'||p_header_rec.header_id);
2808 oe_debug_pub.add('AAC: sold_to_party_id:'|| p_header_rec.sold_to_party_id);
2809 oe_debug_pub.add('AAC: sold_to_party_number:'|| p_header_rec.sold_to_party_number);
2810 oe_debug_pub.add('AAC: sold_to_org_id:'|| p_header_rec.sold_to_org_id);
2811 oe_debug_pub.add('AAC: l_sold_to_org_id:'|| l_sold_to_org_id);
2812 END IF;
2813
2814 /* check to see if we need account creation at all, return ASAP if not{ */
2815 /* check header level party info */
2816 -- l_sold_to_org_id is not null for UPDATE case of an Order
2817 IF l_sold_to_org_id is null then
2818 IF ((nvl(p_header_rec.sold_to_org_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM
2819 and ( (p_header_rec.sold_to_party_id is not null or p_header_rec.sold_to_party_number is not null)
2820 or nvl(p_header_val_rec.sold_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
2821 or
2822 ((nvl(p_header_rec.sold_to_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM)
2823 and (nvl(p_header_val_Rec.sold_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR
2824 or nvl(p_header_Rec.sold_to_org_contact_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM)))
2825 THEN
2826 IF l_debug_level > 0 THEN
2827 oe_debug_pub.add('AAC: sold_to_org_id/sold_to_contact_id creation needed');
2828 oe_debug_pub.add('AAC: sold_to_party_id:'|| p_header_rec.sold_to_party_id);
2829 oe_debug_pub.add('AAC: sold_to_party_number:'|| p_header_rec.sold_to_party_number);
2830 END IF;
2831 l_create_account := TRUE;
2832 l_create_hdr_account := TRUE;
2833 END IF;
2834 END IF; -- if l_sold_to_org_id is not null
2835
2836 l_header_end_cust_exists :='N'; --bug 4240715
2837
2838 /* check header ship_to party info */
2839 IF ((nvl(p_header_rec.ship_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
2840 (p_header_rec.ship_to_party_id is not null or
2841 p_header_rec.ship_to_party_number is not null or
2842 p_header_rec.ship_to_party_site_id is not null or
2843 p_header_rec.ship_to_party_site_use_id is not null or
2844 p_header_rec.ship_to_org_contact_id is not null) or
2845 (nvl(p_header_val_Rec.ship_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2846 nvl(p_header_val_Rec.ship_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2847 nvl(p_header_val_Rec.ship_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2848 nvl(p_header_val_Rec.ship_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2849 nvl(p_header_val_Rec.ship_to_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2850 nvl(p_header_val_Rec.ship_to_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2851 nvl(p_header_val_Rec.ship_to_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2852 nvl(p_header_val_Rec.ship_to_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2853 nvl(p_header_val_Rec.ship_to_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2854 nvl(p_header_val_Rec.ship_to_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2855 nvl(p_header_val_Rec.ship_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2856 nvl(p_header_val_Rec.ship_to_zip,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR)))
2857 THEN
2858 IF l_debug_level > 0 THEN
2859 oe_debug_pub.add('AAC: ship_to sites creation needed');
2860 oe_debug_pub.add('AAC: ship_to_org_id :'|| p_header_Rec.ship_to_org_id);
2861 oe_debug_pub.add('AAC: ship_to_party_id :'|| p_header_rec.ship_to_party_id);
2862 oe_debug_pub.add('AAC: ship_to_party_number :'|| p_header_rec.ship_to_party_number);
2863 oe_debug_pub.add('AAC: ship_to_party_site_id :'|| p_header_rec.ship_to_party_site_id);
2864 oe_debug_pub.add('AAC: ship_to_party_site_use_id:'|| p_header_rec.ship_to_party_site_use_id);
2865 oe_debug_pub.add('AAC: ship_to_org_contact_id :'|| p_header_rec.ship_to_org_contact_id);
2866 oe_debug_pub.add('AAC: ship_to_org :'|| p_header_val_Rec.ship_to_org);
2867 oe_debug_pub.add('AAC: ship_to_customer_number :'|| p_header_val_Rec.ship_to_customer_number_oi);
2868 oe_debug_pub.add('AAC: ship_to_customer_name :'|| p_header_val_Rec.ship_to_customer_name_oi);
2869 oe_debug_pub.add('AAC: ship_to_contact :'|| p_header_val_Rec.ship_to_contact);
2870 END IF;
2871
2872 l_create_account := TRUE;
2873 l_create_hdr_account := TRUE;
2874
2875 p_site_tbl(l_site_tbl_counter).p_party_id := p_header_rec.ship_to_party_id;
2876 p_site_tbl(l_site_tbl_counter).p_party_site_id := p_header_rec.ship_to_party_site_id;
2877 if(p_header_rec.ship_to_org_id = FND_API.G_MISS_NUM)
2878 then
2879 p_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
2880 else
2881 p_site_tbl(l_site_tbl_counter).p_site_use_id := p_header_rec.ship_to_org_id;
2882 end if;
2883
2884 p_site_tbl(l_site_tbl_counter).p_cust_account_role_id := p_header_rec.ship_to_contact_id;
2885 p_site_tbl(l_site_tbl_counter).p_org_contact_id := p_header_rec.ship_to_org_contact_id;
2886 p_site_tbl(l_site_tbl_counter).p_contact_name := p_header_val_rec.ship_to_contact;
2887
2888 p_site_tbl(l_site_tbl_counter).p_party_site_use_id := p_header_rec.ship_to_party_site_use_id;
2889 p_site_tbl(l_site_tbl_counter).p_site_use_code := 'SHIP_TO';
2890
2891 --p_site_tbl(l_site_tbl_counter).p_party_name := p_header_val_Rec.ship_to_org;
2892 p_site_tbl(l_site_tbl_counter).p_party_name := p_header_val_Rec.ship_to_customer_name_oi;
2893 p_site_tbl(l_site_tbl_counter).p_party_number := p_header_rec.ship_to_party_number;
2894 p_site_tbl(l_site_tbl_counter).p_cust_account_number := p_header_val_Rec.ship_to_customer_number_oi;
2895
2896 p_site_tbl(l_site_tbl_counter).p_site_address1 := p_header_val_rec.ship_to_address1 ;
2897 p_site_tbl(l_site_tbl_counter).p_site_address2 := p_header_val_rec.ship_to_address2 ;
2898 p_site_tbl(l_site_tbl_counter).p_site_address3 := p_header_val_rec.ship_to_address3 ;
2899 p_site_tbl(l_site_tbl_counter).p_site_address4 := p_header_val_rec.ship_to_address4 ;
2900 p_site_tbl(l_site_tbl_counter).p_site_state := p_header_val_rec.ship_to_state ;
2901 p_site_tbl(l_site_tbl_counter).p_site_country := p_header_val_rec.ship_to_country ;
2902 p_site_tbl(l_site_tbl_counter).p_site_city := p_header_val_rec.ship_to_city ;
2903 p_site_tbl(l_site_tbl_counter).p_site_postal_code := p_header_val_rec.ship_to_zip ;
2904
2905 l_site_tbl_counter := l_site_tbl_counter + 1;
2906 END IF;
2907
2908 /* check header deliver_to party info */
2909 IF ((nvl(p_header_rec.deliver_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
2910 (p_header_rec.deliver_to_party_id is not null or
2911 p_header_rec.deliver_to_party_number is not null or
2912 p_header_rec.deliver_to_party_site_id is not null or
2913 p_header_rec.deliver_to_party_site_use_id is not null or
2914 p_header_rec.deliver_to_org_contact_id is not null) or
2915 (nvl(p_header_val_Rec.deliver_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2916 nvl(p_header_val_Rec.deliver_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2917 nvl(p_header_val_Rec.deliver_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2918 nvl(p_header_val_Rec.deliver_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2919 nvl(p_header_val_Rec.deliver_to_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2920 nvl(p_header_val_Rec.deliver_to_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2921 nvl(p_header_val_Rec.deliver_to_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2922 nvl(p_header_val_Rec.deliver_to_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2923 nvl(p_header_val_Rec.deliver_to_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2924 nvl(p_header_val_Rec.deliver_to_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2925 nvl(p_header_val_Rec.deliver_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2926 nvl(p_header_val_Rec.deliver_to_zip,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR)))
2927
2928 THEN
2929 IF l_debug_level > 0 THEN
2930 oe_debug_pub.add('AAC: deliver_to sites creation needed');
2931 oe_debug_pub.add('AAC: deliver_to_org_id :'|| p_header_rec.deliver_to_org_id);
2932 oe_debug_pub.add('AAC: deliver_to_party_id :'|| p_header_rec.deliver_to_party_id);
2933 oe_debug_pub.add('AAC: deliver_to_party_number :'|| p_header_rec.deliver_to_party_number);
2934 oe_debug_pub.add('AAC: deliver_to_party_site_id :'|| p_header_rec.deliver_to_party_site_id);
2935 oe_debug_pub.add('AAC: deliver_to_party_site_use_id:'|| p_header_rec.deliver_to_party_site_use_id);
2936 oe_debug_pub.add('AAC: deliver_to_org_contact_id :'|| p_header_rec.deliver_to_org_contact_id);
2937 oe_debug_pub.add('AAC: deliver_to_org :'|| p_header_val_Rec.deliver_to_org);
2938 oe_debug_pub.add('AAC: deliver_to_customer_number :'|| p_header_val_Rec.deliver_to_customer_number_oi);
2939 oe_debug_pub.add('AAC: deliver_to_customer_name :'|| p_header_val_Rec.deliver_to_customer_number_oi);
2940 oe_debug_pub.add('AAC: deliver_to_contact :'|| p_header_val_Rec.deliver_to_contact);
2941 END IF;
2942
2943 l_create_account := TRUE;
2944 l_create_hdr_account := TRUE;
2945
2946 p_site_tbl(l_site_tbl_counter).p_party_id := p_header_rec.deliver_to_party_id;
2947 p_site_tbl(l_site_tbl_counter).p_party_site_id := p_header_rec.deliver_to_party_site_id;
2948
2949 if(p_header_rec.deliver_to_org_id = FND_API.G_MISS_NUM)
2950 then
2951 p_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
2952 else
2953 p_site_tbl(l_site_tbl_counter).p_site_use_id := p_header_rec.deliver_to_org_id;
2954 end if;
2955
2956 p_site_tbl(l_site_tbl_counter).p_cust_account_role_id := p_header_rec.deliver_to_contact_id;
2957 p_site_tbl(l_site_tbl_counter).p_org_contact_id := p_header_rec.deliver_to_org_contact_id;
2958 p_site_tbl(l_site_tbl_counter).p_contact_name := p_header_val_rec.deliver_to_contact;
2959
2960 p_site_tbl(l_site_tbl_counter).p_party_site_use_id := p_header_rec.deliver_to_party_site_use_id;
2961 p_site_tbl(l_site_tbl_counter).p_site_use_code := 'DELIVER_TO';
2962
2963 p_site_tbl(l_site_tbl_counter).p_party_name := p_header_val_Rec.deliver_to_customer_name_oi;
2964 p_site_tbl(l_site_tbl_counter).p_party_number := p_header_rec.deliver_to_party_number;
2965 p_site_tbl(l_site_tbl_counter).p_cust_account_number := p_header_val_Rec.deliver_to_customer_number_oi;
2966
2967 p_site_tbl(l_site_tbl_counter).p_site_address1 := p_header_val_rec.deliver_to_address1 ;
2968 p_site_tbl(l_site_tbl_counter).p_site_address2 := p_header_val_rec.deliver_to_address2 ;
2969 p_site_tbl(l_site_tbl_counter).p_site_address3 := p_header_val_rec.deliver_to_address3 ;
2970 p_site_tbl(l_site_tbl_counter).p_site_address4 := p_header_val_rec.deliver_to_address4 ;
2971 p_site_tbl(l_site_tbl_counter).p_site_state := p_header_val_rec.deliver_to_state ;
2972 p_site_tbl(l_site_tbl_counter).p_site_country := p_header_val_rec.deliver_to_country ;
2973 p_site_tbl(l_site_tbl_counter).p_site_city := p_header_val_rec.deliver_to_city ;
2974 p_site_tbl(l_site_tbl_counter).p_site_postal_code := p_header_val_rec.deliver_to_zip ;
2975
2976 l_site_tbl_counter := l_site_tbl_counter + 1;
2977 END IF;
2978
2979 /* check header invoice_to party info */
2980 IF (nvl(p_header_rec.invoice_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
2981 (p_header_rec.invoice_to_party_id is not null or
2982 p_header_rec.invoice_to_party_number is not null or
2983 p_header_rec.invoice_to_party_site_id is not null or
2984 p_header_rec.invoice_to_party_site_use_id is not null or
2985 p_header_rec.invoice_to_org_contact_id is not null) or
2986 (nvl(p_header_val_Rec.invoice_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2987 nvl(p_header_val_Rec.invoice_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2988 nvl(p_header_val_Rec.invoice_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2989 nvl(p_header_val_Rec.invoice_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2990 nvl(p_header_val_Rec.invoice_to_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2991 nvl(p_header_val_Rec.invoice_to_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2992 nvl(p_header_val_Rec.invoice_to_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2993 nvl(p_header_val_Rec.invoice_to_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2994 nvl(p_header_val_Rec.invoice_to_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2995 nvl(p_header_val_Rec.invoice_to_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2996 nvl(p_header_val_Rec.invoice_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
2997 nvl(p_header_val_Rec.invoice_to_zip,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
2998
2999 THEN
3000 IF l_debug_level > 0 THEN
3001 oe_debug_pub.add('AAC: invoice_to sites creation needed');
3002 oe_debug_pub.add('AAC: invoice_to_party_id :'|| p_header_rec.invoice_to_party_id);
3003 oe_debug_pub.add('AAC: invoice_to_party_number :'|| p_header_rec.invoice_to_party_number);
3004 oe_debug_pub.add('AAC: invoice_to_party_site_id :'|| p_header_rec.invoice_to_party_site_id);
3005 oe_debug_pub.add('AAC: invoice_to_party_site_use_id:'|| p_header_rec.invoice_to_party_site_use_id);
3006 oe_debug_pub.add('AAC: invoice_to_org_contact_id :'|| p_header_rec.invoice_to_org_contact_id);
3007 oe_debug_pub.add('AAC: invoice_to_org :'|| p_header_val_Rec.invoice_to_org);
3008 oe_debug_pub.add('AAC: invoice_to_customer_number :'|| p_header_val_Rec.invoice_to_customer_number_oi);
3009 oe_debug_pub.add('AAC: invoice_to_customer_name :'|| p_header_val_Rec.invoice_to_customer_name_oi);
3010 oe_debug_pub.add('AAC: invoice_to_contact :'|| p_header_val_Rec.invoice_to_contact);
3011 END IF;
3012
3013 l_create_account := TRUE;
3014 l_create_hdr_account := TRUE;
3015
3016 p_site_tbl(l_site_tbl_counter).p_party_id := p_header_rec.invoice_to_party_id;
3017 p_site_tbl(l_site_tbl_counter).p_party_site_id := p_header_rec.invoice_to_party_site_id;
3018 if(p_header_rec.invoice_to_org_id = FND_API.G_MISS_NUM)
3019 then
3020 p_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
3021 else
3022 p_site_tbl(l_site_tbl_counter).p_site_use_id := p_header_rec.invoice_to_org_id;
3023 end if;
3024 p_site_tbl(l_site_tbl_counter).p_cust_account_role_id := p_header_rec.invoice_to_contact_id;
3025 p_site_tbl(l_site_tbl_counter).p_org_contact_id := p_header_rec.invoice_to_org_contact_id;
3026 p_site_tbl(l_site_tbl_counter).p_contact_name := p_header_val_rec.invoice_to_contact;
3027
3028 p_site_tbl(l_site_tbl_counter).p_party_site_use_id := p_header_rec.invoice_to_party_site_use_id;
3029 p_site_tbl(l_site_tbl_counter).p_site_use_code := 'BILL_TO';
3030
3031 p_site_tbl(l_site_tbl_counter).p_party_name := p_header_val_Rec.invoice_to_customer_name_oi;
3032 p_site_tbl(l_site_tbl_counter).p_party_number := p_header_rec.invoice_to_party_number;
3033 p_site_tbl(l_site_tbl_counter).p_cust_account_number := p_header_val_Rec.invoice_to_customer_number_oi;
3034
3035 p_site_tbl(l_site_tbl_counter).p_site_address1 := p_header_val_rec.invoice_to_address1 ;
3036 p_site_tbl(l_site_tbl_counter).p_site_address2 := p_header_val_rec.invoice_to_address2 ;
3037 p_site_tbl(l_site_tbl_counter).p_site_address3 := p_header_val_rec.invoice_to_address3 ;
3038 p_site_tbl(l_site_tbl_counter).p_site_address4 := p_header_val_rec.invoice_to_address4 ;
3039 p_site_tbl(l_site_tbl_counter).p_site_state := p_header_val_rec.invoice_to_state ;
3040 p_site_tbl(l_site_tbl_counter).p_site_country := p_header_val_rec.invoice_to_country ;
3041 p_site_tbl(l_site_tbl_counter).p_site_city := p_header_val_rec.invoice_to_city ;
3042 p_site_tbl(l_site_tbl_counter).p_site_postal_code := p_header_val_rec.invoice_to_zip ;
3043
3044 l_site_tbl_counter := l_site_tbl_counter + 1;
3045 END IF;
3046
3047 -- added for bug 4240715
3048 -- to check for end customer information
3049 IF (nvl(p_header_rec.end_customer_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
3050 (p_header_rec.end_customer_party_id is not null or
3051 p_header_rec.end_customer_party_number is not null or
3052 nvl(p_header_val_Rec.end_customer_name,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3053 nvl(p_header_val_Rec.end_customer_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR)) then
3054
3055 l_create_account := TRUE;
3056 l_create_hdr_account := TRUE;
3057 l_header_end_cust_exists :='Y';
3058 p_site_tbl(l_site_tbl_counter).p_party_id := p_header_rec.end_customer_party_id;
3059 p_site_tbl(l_site_tbl_counter).p_party_name := p_header_val_Rec.end_customer_name;
3060 p_site_tbl(l_site_tbl_counter).p_party_number := p_header_rec.end_customer_party_number;
3061 p_site_tbl(l_site_tbl_counter).p_cust_account_number := p_header_val_Rec.end_customer_number;
3062 p_site_tbl(l_site_tbl_counter).p_site_use_code := 'END_CUST';
3063 IF l_debug_level > 0 THEN
3064 oe_debug_pub.add('AAC: VALUE OF l_create_account: TRUE'); --remem
3065 oe_debug_pub.add('AAC: end customer account creation needed');
3066 oe_debug_pub.add('AAC: end_customer_party_id :'|| p_header_rec.end_customer_party_id);
3067 oe_debug_pub.add('AAC: end_customer_party_number :'|| p_header_rec.end_customer_party_number);
3068 oe_debug_pub.add('AAC: end_customer :'|| p_header_val_Rec.end_customer_name);
3069 oe_debug_pub.add('AAC: end_customer_number :'|| p_header_val_Rec.end_customer_number);
3070 END IF;
3071
3072
3073 IF p_header_rec.end_customer_party_site_id is not null or
3074 p_header_rec.end_customer_party_site_use_id is not null or
3075 p_header_rec.end_customer_org_contact_id is not null or
3076 nvl(p_header_val_Rec.end_customer_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3077 nvl(p_header_val_Rec.end_customer_site_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3078 nvl(p_header_val_Rec.end_customer_site_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3079 nvl(p_header_val_Rec.end_customer_site_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3080 nvl(p_header_val_Rec.end_customer_site_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3081 nvl(p_header_val_Rec.end_customer_site_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3082 nvl(p_header_val_Rec.end_customer_site_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3083 nvl(p_header_val_Rec.end_customer_site_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3084 nvl(p_header_val_Rec.end_customer_site_postal_code,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR then
3085
3086 IF l_debug_level > 0 THEN
3087 oe_debug_pub.add('AAC: end customer sites creation needed');
3088 oe_debug_pub.add('AAC: end_customer_party_site_id :'|| p_header_rec.end_customer_party_site_id);
3089 oe_debug_pub.add('AAC: end_customer_party_site_use_id:'|| p_header_rec.end_customer_party_site_use_id);
3090 oe_debug_pub.add('AAC: end_customer_org_contact_id :'|| p_header_rec.end_customer_org_contact_id);
3091 oe_debug_pub.add('AAC: end_customer_contact :'|| p_header_val_Rec.end_customer_contact);
3092 END IF;
3093
3094
3095 if(p_header_rec.end_customer_site_use_id = FND_API.G_MISS_NUM)
3096 then
3097 p_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
3098 else
3099 p_site_tbl(l_site_tbl_counter).p_site_use_id := p_header_rec.end_customer_site_use_id;
3100 end if;
3101 p_site_tbl(l_site_tbl_counter).p_cust_account_role_id := p_header_rec.end_customer_contact_id;
3102 p_site_tbl(l_site_tbl_counter).p_org_contact_id := p_header_rec.end_customer_org_contact_id;
3103 p_site_tbl(l_site_tbl_counter).p_contact_name := p_header_val_rec.end_customer_contact;
3104 p_site_tbl(l_site_tbl_counter).p_party_site_id :=p_header_rec.end_customer_party_site_id; --4240715(new)
3105
3106 p_site_tbl(l_site_tbl_counter).p_party_site_use_id := p_header_rec.end_customer_party_site_use_id;
3107 -- p_site_tbl(l_site_tbl_counter).p_site_use_code := 'END_CUST';
3108 p_site_tbl(l_site_tbl_counter).p_site_address1 := p_header_val_rec.end_customer_site_address1 ;
3109 p_site_tbl(l_site_tbl_counter).p_site_address2 := p_header_val_rec.end_customer_site_address2 ;
3110 p_site_tbl(l_site_tbl_counter).p_site_address3 := p_header_val_rec.end_customer_site_address3 ;
3111 p_site_tbl(l_site_tbl_counter).p_site_address4 := p_header_val_rec.end_customer_site_address4 ;
3112 p_site_tbl(l_site_tbl_counter).p_site_state := p_header_val_rec.end_customer_site_state ;
3113 p_site_tbl(l_site_tbl_counter).p_site_country := p_header_val_rec.end_customer_site_country ;
3114 p_site_tbl(l_site_tbl_counter).p_site_city := p_header_val_rec.end_customer_site_city ;
3115 p_site_tbl(l_site_tbl_counter).p_site_postal_code := p_header_val_rec.end_customer_site_postal_code ;
3116
3117 END IF; -- for end customer site creation
3118 l_site_tbl_counter := l_site_tbl_counter + 1;
3119 END IF; -- for end customer account creation (bug 4240715)
3120
3121 /* done checking for header level account creation} */
3122
3123 /* if no header level account creation needed, check all lines{ */
3124 IF (l_create_account = FALSE )
3125 THEN
3126 oe_debug_pub.add('AAC: no header level account creation needed, checking all lines');
3127 if x_line_tbl.COUNT > 0 then
3128
3129 IF l_debug_level > 0 THEN
3130 oe_debug_pub.add('X1');
3131 END IF;
3132 for i in x_line_tbl.FIRST..x_line_tbl.LAST loop
3133 IF l_debug_level > 0 THEN
3134 oe_debug_pub.add('X2');
3135 END IF;
3136 /* l_create_account might change in this loop, so keep checking */
3137 IF ( l_create_Account = FALSE
3138 and
3139 ((nvl(x_line_tbl(i).ship_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
3140 (x_line_tbl(i).ship_to_party_id is not null or
3141 x_line_tbl(i).ship_to_party_number is not null or
3142 x_line_tbl(i).ship_to_party_site_id is not null or
3143 x_line_tbl(i).ship_to_party_site_use_id is not null))
3144 or
3145 (nvl(x_line_tbl(i).deliver_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
3146 (x_line_tbl(i).deliver_to_party_id is not null or
3147 x_line_tbl(i).deliver_to_party_number is not null or
3148 x_line_tbl(i).deliver_to_party_site_id is not null or
3149 x_line_tbl(i).deliver_to_party_site_use_id is not null))
3150 or
3151 (nvl(x_line_tbl(i).invoice_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and
3152 (x_line_tbl(i).invoice_to_party_id is not null or
3153 x_line_tbl(i).invoice_to_party_number is not null or
3154 x_line_tbl(i).invoice_to_party_site_id is not null or
3155 x_line_tbl(i).invoice_to_party_site_use_id is not null))
3156 or
3157 (nvl(x_line_tbl(i).end_customer_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM and /* added to check for end customer (bug 4240715)*/
3158 (x_line_tbl(i).end_customer_party_id is not null or
3159 x_line_tbl(i).end_customer_party_number is not null or
3160 x_line_tbl(i).end_customer_party_site_id is not null or
3161 x_line_tbl(i).end_customer_party_site_use_id is not null))
3162 ))
3163 THEN
3164 IF l_debug_level > 0 THEN
3165 oe_debug_pub.add('AAC: line level account creation needed');
3166 END IF;
3167 l_create_account := TRUE;
3168 END IF; /* ok, we need account creation */
3169
3170 END loop;
3171 END IF;
3172 END IF;
3173
3174 IF p_line_val_tbl.COUNT > 0 then
3175 for i in p_line_val_tbl.FIRST..p_line_val_tbl.LAST loop
3176
3177 IF (nvl(x_line_tbl(i).ship_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3178 and
3179 (nvl(p_line_val_tbl(i).ship_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3180 nvl(x_line_tbl(i).ship_to_party_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3181 nvl(x_line_tbl(i).ship_to_party_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3182 nvl(p_line_val_tbl(i).ship_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3183 nvl(p_line_val_tbl(i).ship_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3184 nvl(p_line_val_tbl(i).ship_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3185 then
3186 IF l_debug_level > 0 THEN
3187 oe_debug_pub.add('ship to value present line#'||i);
3188 END IF;
3189 l_create_account := TRUE;
3190 end if;
3191
3192 IF (x_line_tbl(i).ship_to_org_contact_id is not null or nvl(p_line_val_tbl(i).ship_to_contact,FND_API.G_MISS_CHAR) = FND_API.G_MISS_CHAR) then
3193 l_create_account := TRUE;
3194 END IF;
3195
3196 IF (nvl(x_line_tbl(i).deliver_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3197 and
3198 (nvl(p_line_val_tbl(i).deliver_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3199 nvl(x_line_tbl(i).deliver_to_party_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3200 nvl(x_line_tbl(i).deliver_to_party_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3201 nvl(p_line_val_tbl(i).deliver_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3202 nvl(p_line_val_tbl(i).deliver_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3203 nvl(p_line_val_tbl(i).deliver_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3204 then
3205 IF l_debug_level > 0 THEN
3206 oe_debug_pub.add('deliver to value present line#'||i);
3207 END IF;
3208 l_create_account := TRUE;
3209 end if;
3210
3211 IF (x_line_tbl(i).deliver_to_org_contact_id is not null or
3212 nvl(p_line_val_tbl(i).deliver_to_contact,FND_API.G_MISS_CHAR) = FND_API.G_MISS_CHAR)
3213 then
3214 l_create_account := TRUE;
3215 END IF;
3216
3217 IF (nvl(x_line_tbl(i).invoice_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3218 and
3219 (nvl(p_line_val_tbl(i).invoice_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3220 nvl(x_line_tbl(i).invoice_to_party_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3221 nvl(x_line_tbl(i).invoice_to_party_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3222 nvl(p_line_val_tbl(i).invoice_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3223 nvl(p_line_val_tbl(i).invoice_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3224 nvl(p_line_val_tbl(i).invoice_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3225 then
3226 l_create_account := TRUE;
3227 end if;
3228
3229 IF (x_line_tbl(i).invoice_to_org_contact_id is not null or
3230 nvl(p_line_val_tbl(i).invoice_to_contact,FND_API.G_MISS_CHAR) = FND_API.G_MISS_CHAR)
3231 then
3232 IF l_debug_level > 0 THEN
3233 oe_debug_pub.add('invoice to value present line#'||i);
3234 END IF;
3235 l_create_account := TRUE;
3236 End If;
3237
3238 --{ added for 4240715
3239 IF nvl(x_line_tbl(i).end_customer_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3240 and
3241 (nvl(p_line_val_tbl(i).end_customer_name,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3242 nvl(x_line_tbl(i).end_customer_party_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3243 nvl(x_line_tbl(i).end_customer_party_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3244 nvl(p_line_val_tbl(i).end_customer_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3245 nvl(p_line_val_tbl(i).end_customer_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR)
3246 then
3247 oe_debug_pub.add('once');
3248 l_create_account := TRUE;
3249 end if;
3250
3251 oe_debug_pub.add('checking before org contactid');
3252
3253 IF (x_line_tbl(i).end_customer_org_contact_id is not null or
3254 nvl(p_line_val_tbl(i).end_customer_contact,FND_API.G_MISS_CHAR) = FND_API.G_MISS_CHAR)
3255 then
3256 IF l_debug_level > 0 THEN
3257 oe_debug_pub.add('end customer value present line#'||i);
3258 END IF;
3259 l_create_account := TRUE;
3260 --bug 4240715}
3261 END IF;
3262 end loop;
3263 end if;
3264
3265 /* done checking lines} */
3266 oe_debug_pub.add('AAC: done checking...');
3267 IF (l_create_account = FALSE)
3268 THEN
3269 /* we don't actually need account creation. return */
3270 x_return_status := 'S';
3271 IF l_debug_level > 0 THEN
3272 oe_debug_pub.add('AAC: no account creation needed. returning...');
3273 END IF;
3274 return;
3275 END IF;
3276
3277 -- API Operation control flags.
3278 p_control_rec.p_allow_account_creation := 'CHECK';
3279 p_control_rec.p_init_msg_list := FALSE;
3280 p_control_rec.p_commit := FALSE;
3281 p_control_rec.p_multiple_account_is_error := TRUE;
3282 p_control_rec.p_multiple_contact_is_error := TRUE;
3283 p_control_rec.p_created_by_module := 'ONT_PROCESS_ORDER_API';
3284 p_control_rec.p_continue_processing_on_error := FALSE;
3285 p_control_rec.p_return_if_only_party := FALSE;
3286
3287
3288 -- Customer Information
3289 p_party_customer_rec.p_party_id := p_header_rec.sold_to_party_id;
3290 p_party_customer_rec.p_party_number := p_header_rec.sold_to_party_number;
3291 p_party_customer_rec.p_party_name := p_header_val_rec.sold_to_org;
3292
3293 IF nvl(p_header_rec.sold_to_org_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM AND
3294 l_sold_to_org_id is NULL then
3295 p_party_customer_rec.p_cust_account_id := NULL;
3296 ELSE
3297 IF nvl(p_header_rec.sold_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM then
3298 p_party_customer_rec.p_cust_account_id := l_sold_to_org_id;
3299 ELSE
3300 p_party_customer_rec.p_cust_account_id := p_header_rec.sold_to_org_id;
3301 END IF;
3302 END IF;
3303
3304 --p_party_customer_rec.p_cust_account_number := p_header_val_rec.customer_number;
3305
3306 -- Contact Information:
3307 if nvl(p_header_rec.sold_to_org_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM then
3308 p_party_customer_rec.p_org_contact_id := NULL;
3309 else
3310 p_party_customer_rec.p_org_contact_id := p_header_rec.sold_to_org_contact_id;
3311 end if;
3312 if nvl(p_header_rec.sold_to_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM then
3313 p_party_customer_rec.p_cust_account_role_id := NULL;
3314 else
3315 p_party_customer_rec.p_cust_account_role_id := p_header_rec.sold_to_contact_id;
3316 end if;
3317 if nvl(p_header_val_rec.sold_to_contact,FND_API.G_MISS_CHAR) = FND_API.G_MISS_CHAR then
3318 p_party_customer_rec.p_contact_name := NULL;
3319 else
3320 p_party_customer_rec.p_contact_name := p_header_val_rec.sold_to_contact;
3321 end if;
3322
3323 /* header needs to have account creation */
3324 if (l_create_hdr_account = TRUE)
3325 then
3326
3327 IF l_debug_level > 0 THEN
3328 oe_debug_pub.add('AAC: before calling Create_Account_layer for header level site creation{ ');
3329 END IF;
3330
3331 oe_create_account_info.Create_Account_Layer(
3332 p_control_rec =>p_control_rec
3333 ,x_return_status =>x_return_status
3334 ,x_msg_count =>x_msg_count
3335 ,x_msg_data =>x_Msg_data
3336 ,p_party_customer_rec =>p_party_customer_rec
3337 ,p_site_tbl =>p_site_tbl
3338 ,p_account_tbl =>p_account_tbl
3339 ,p_contact_tbl =>p_contact_tbl
3340 );
3341 IF l_debug_level > 0 THEN
3342 oe_debug_pub.add('AAC: after calling Create_Account_layer for header level site creation} ');
3343 END IF;
3344
3345 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3346 l_count :=oe_msg_pub.count_msg;
3347
3348 IF l_debug_level > 0 THEN
3349 oe_debug_pub.add('AAC: Main Status is not success'||
3350 ' msg='||x_msg_data||
3351 ' count='||x_msg_count
3352 );
3353 END IF;
3354 RAISE FND_API.G_EXC_ERROR;
3355
3356 ELSE
3357 oe_debug_pub.add('AAC: Status is success');
3358
3359
3360 -- Error out IF only party and no site information
3361 IF p_account_tbl.COUNT = 0 AND p_party_customer_rec.p_party_id IS NOT NULL
3362 THEN
3363 IF l_debug_level > 0 THEN
3364 oe_debug_pub.add('AAC: Only party, no site. error out'||
3365 ' msg='||x_msg_data||
3366 ' count='||x_msg_count);
3367 END IF;
3368 RAISE FND_API.G_EXC_ERROR;
3369
3370 END IF;
3371
3372 END IF;
3373
3374 IF p_account_tbl.COUNT <> 1
3375 THEN
3376 --error
3377 IF l_debug_level > 0 and l_header_end_cust_exists = 'N' THEN --modified for bug 4240715
3378 oe_debug_pub.add(' More than one party site/account record'||
3379 ' msg='||x_msg_data||
3380 ' count='||x_msg_count
3381 );
3382 END IF;
3383 RAISE FND_API.G_EXC_ERROR;
3384 /*TODO: more exception handling? */
3385 END IF;
3386
3387 if p_account_tbl.count >= 1 then -- added if condition for end customer(bug 4240715)
3388 x_header_rec.sold_to_org_id := p_account_tbl(1);
3389 end if;
3390 if p_contact_tbl.COUNT=1 then
3391 x_header_rec.sold_to_contact_id := p_contact_tbl(1);
3392 end if;
3393
3394
3395 IF l_debug_level > 0 THEN
3396 oe_debug_pub.add('AAC: sold_to_org_id :'||x_header_rec.sold_to_org_id);
3397 oe_debug_pub.add('AAC: sold_to_contact_id :'||x_header_rec.sold_to_contact_id);
3398 oe_debug_pub.add('AAC: p_site_tbl has '||p_site_tbl.COUNT||' rows');
3399 END IF;
3400
3401 /* get the relevant ship/deliver/invoice to fields */
3402 IF p_site_tbl.COUNT > 0 then
3403
3404 FOR i in p_site_tbl.FIRST..p_site_tbl.LAST LOOP
3405
3406 IF (p_site_tbl(i).p_site_use_code = 'SHIP_TO')
3407 THEN
3408
3409 IF l_debug_level > 0 THEN
3410 oe_debug_pub.add('AAC: header SHIP_TO org_id:'|| p_site_tbl(i).p_site_use_id);
3411 oe_debug_pub.add('AAC: header SHIP_TO cust_account_id:'|| p_site_tbl(i).p_cust_account_id);
3412 END IF;
3413 x_header_rec.ship_to_org_id := p_site_tbl(i).p_site_use_id;
3414 x_header_rec.ship_to_customer_id := p_site_tbl(i).p_cust_account_id;
3415 x_header_rec.ship_to_contact_id := p_site_tbl(i).p_cust_account_role_id;
3416
3417 ELSIF (p_site_tbl(i).p_site_use_code = 'DELIVER_TO')
3418 THEN
3419 IF l_debug_level > 0 THEN
3420 oe_debug_pub.add('AAC: header DELIVER_TO org_id:'|| p_site_tbl(i).p_site_use_id);
3421 oe_debug_pub.add('AAC: header DELIVER_TO cust_account_id:'|| p_site_tbl(i).p_cust_account_id);
3422 END IF;
3423 x_header_rec.deliver_to_org_id := p_site_tbl(i).p_site_use_id;
3424 x_header_rec.deliver_to_customer_id := p_site_tbl(i).p_cust_account_id;
3425 x_header_rec.deliver_to_contact_id := p_site_tbl(i).p_cust_account_role_id;
3426
3427 ELSIF (p_site_tbl(i).p_site_use_code = 'BILL_TO')
3428 THEN
3429
3430 IF l_debug_level > 0 THEN
3431 oe_debug_pub.add('AAC: header INVOICE_TO org_id:'|| p_site_tbl(i).p_site_use_id);
3432 oe_debug_pub.add('AAC: header INVOICE_TO cust_account_id:'|| p_site_tbl(i).p_cust_account_id);
3433 END IF;
3434 x_header_rec.invoice_to_org_id := p_site_tbl(i).p_site_use_id;
3435 x_header_rec.invoice_to_customer_id := p_site_tbl(i).p_cust_account_id;
3436 x_header_rec.invoice_to_contact_id := p_site_tbl(i).p_cust_account_role_id;
3437 ELSIF (p_site_tbl(i).p_site_use_code = 'END_CUST') /* end customer changes -bug 4240715 */
3438 THEN
3439
3440 IF l_debug_level > 0 THEN
3441 oe_debug_pub.add('AAC: header End Customer :'|| p_site_tbl(i).p_site_use_id);
3442 oe_debug_pub.add('AAC: header End Customer cust_account_id:'|| p_site_tbl(i).p_cust_account_id);
3443 END IF;
3444 x_header_rec.end_customer_site_use_id := p_site_tbl(i).p_site_use_id;
3445 x_header_rec.end_customer_id := p_site_tbl(i).p_cust_account_id;
3446 x_header_rec.end_customer_contact_id := p_site_tbl(i).p_cust_account_role_id;
3447 oe_debug_pub.add('here the end custoemr id'||x_header_rec.end_customer_contact_id);
3448 END IF;
3449
3450 END LOOP;
3451 end if;
3452 end if; --end header level account creation
3453
3454 IF l_debug_level > 0 THEN
3455 oe_debug_pub.add('AAC: cache: start header level cache lookup... ');
3456 END IF;
3457
3458 /* loop through all the lines, looking for lines with party
3459 information similar to header level info, replace if
3460 found (thus implementing caching)
3461 Also pre-store the info if each line needs account creation in l_line_acct_needed,
3462 so we don't have to re-compute it later on.
3463 We want to call this even if no header accounts were created, since we
3464 pre-compute the info for each line.
3465 */
3466
3467 IF x_line_tbl.COUNT > 0 then
3468 FOR i IN x_line_tbl.FIRST..x_line_tbl.LAST loop
3469 IF l_debug_level > 0 THEN
3470 oe_debug_pub.add('AAC: checking if account creation needed for line.'||i);
3471 END IF;
3472 IF ((nvl(x_line_tbl(i).ship_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3473 and
3474 (x_line_tbl(i).ship_to_party_id is not null or
3475 x_line_tbl(i).ship_to_party_number is not null or
3476 x_line_tbl(i).ship_to_party_site_id is not null or
3477 x_line_tbl(i).ship_to_party_site_use_id is not null))
3478 OR
3479 (nvl(x_line_tbl(i).ship_to_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3480 and x_line_tbl(i).ship_to_org_contact_id is not null ))
3481 then
3482 IF l_debug_level > 0 THEN
3483 oe_debug_pub.add('AAC: ship party info not null line#'||i);
3484 END IF;
3485
3486 /* look for similar ship_to_party_id s */
3487 IF (nvl(x_line_tbl(i).ship_to_party_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.ship_to_party_id,FND_API.G_MISS_NUM) and
3488 nvl(x_line_tbl(i).ship_to_party_number,FND_API.G_MISS_CHAR)=nvl(p_header_rec.ship_to_party_number,FND_API.G_MISS_CHAR) and
3489 nvl(x_line_tbl(i).ship_to_party_site_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.ship_to_party_site_id,FND_API.G_MISS_NUM) and
3490 nvl(x_line_tbl(i).ship_to_party_site_use_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.ship_to_party_site_use_id,FND_API.G_MISS_NUM))
3491 THEN
3492 IF l_debug_level > 0 THEN
3493 oe_debug_pub.add('AAC: cache: >> matching header ship_to_org_id:'||x_header_rec.ship_to_org_id||' found');
3494 END IF;
3495 x_line_tbl(i).ship_to_org_id := x_header_rec.ship_to_org_id;
3496 x_line_tbl(i).ship_to_party_id := x_header_rec.ship_to_party_id;
3497 else
3498
3499 IF l_debug_level > 0 THEN
3500 oe_debug_pub.add('AAC: need ship account creation for line#'||i);
3501 END IF;
3502 l_line_acct_needed(i).ship := TRUE;
3503 END IF;
3504 end if;
3505
3506 if ((nvl(x_line_tbl(i).deliver_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3507 and
3508 (x_line_tbl(i).deliver_to_party_id is not null or
3509 x_line_tbl(i).deliver_to_party_number is not null or
3510 x_line_tbl(i).deliver_to_party_site_id is not null or
3511 x_line_tbl(i).deliver_to_party_site_use_id is not null))
3512 OR
3513 (nvl(x_line_tbl(i).deliver_to_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3514 and x_line_tbl(i).deliver_to_org_contact_id is not null))
3515 then
3516
3517 IF l_debug_level > 0 THEN
3518 oe_debug_pub.add('AAC: deliver party info not null line#'||i);
3519 END IF;
3520
3521 /* look for similar deliver_to_party_id s */
3522 IF (nvl(x_line_tbl(i).deliver_to_party_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.deliver_to_party_id,FND_API.G_MISS_NUM) and
3523 nvl(x_line_tbl(i).deliver_to_party_number,FND_API.G_MISS_CHAR)=nvl(p_header_rec.deliver_to_party_number,FND_API.G_MISS_CHAR) and
3524 nvl(x_line_tbl(i).deliver_to_party_site_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.deliver_to_party_site_id,FND_API.G_MISS_NUM) and
3525 nvl(x_line_tbl(i).deliver_to_party_site_use_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.deliver_to_party_site_use_id,FND_API.G_MISS_NUM))
3526 THEN
3527 IF l_debug_level > 0 THEN
3528 oe_debug_pub.add('AAC: cache: >> matching header deliver_to_org_id:'||x_header_rec.deliver_to_org_id||' found');
3529 END IF;
3530 x_line_tbl(i).deliver_to_org_id := x_header_rec.deliver_to_org_id;
3531 x_line_tbl(i).deliver_to_party_id := x_header_rec.deliver_to_party_id;
3532 else
3533 IF l_debug_level > 0 THEN
3534 oe_debug_pub.add('AAC: need deliver account creation for line#'||i);
3535 END IF;
3536 l_line_acct_needed(i).deliver := TRUE;
3537 END IF;
3538
3539 end if;
3540
3541
3542 if ((nvl(x_line_tbl(i).invoice_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3543 and
3544 (x_line_tbl(i).invoice_to_party_id is not null or
3545 x_line_tbl(i).invoice_to_party_number is not null or
3546 x_line_tbl(i).invoice_to_party_site_id is not null or
3547 x_line_tbl(i).invoice_to_party_site_use_id is not null))
3548 OR
3549 (nvl(x_line_tbl(i).invoice_to_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3550 and x_line_tbl(i).invoice_to_org_contact_id is not null))
3551 THEN
3552 IF l_debug_level > 0 THEN
3553 oe_debug_pub.add('AAC: invoice party info not null line#'||i);
3554 END IF;
3555 /* look for similar invoice_to_party_id s */
3556 IF (nvl(x_line_tbl(i).invoice_to_party_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.invoice_to_party_id,FND_API.G_MISS_NUM) and
3557 nvl(x_line_tbl(i).invoice_to_party_number,FND_API.G_MISS_CHAR)=nvl(p_header_rec.invoice_to_party_number,FND_API.G_MISS_CHAR) and
3558 nvl(x_line_tbl(i).invoice_to_party_site_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.invoice_to_party_site_id,FND_API.G_MISS_NUM) and
3559 nvl(x_line_tbl(i).invoice_to_party_site_use_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.invoice_to_party_site_use_id,FND_API.G_MISS_NUM))
3560 THEN
3561 IF l_debug_level > 0 THEN
3562 oe_debug_pub.add('AAC: cache: >> matching header invoice_to_org_id:'||x_header_rec.invoice_to_org_id||' found');
3563 END IF;
3564 x_line_tbl(i).invoice_to_org_id := x_header_rec.invoice_to_org_id;
3565 x_line_tbl(i).invoice_to_party_id := x_header_rec.invoice_to_party_id;
3566 else
3567 IF l_debug_level > 0 THEN
3568 oe_debug_pub.add('AAC: need invoice account creation for line#'||i);
3569 END IF;
3570 l_line_acct_needed(i).invoice := TRUE;
3571 END IF;
3572 end if;
3573
3574 --added for bug 4240715 - end customer project
3575 if ((nvl(x_line_tbl(i).end_customer_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3576 and
3577 (x_line_tbl(i).end_customer_party_id is not null or
3578 x_line_tbl(i).end_customer_party_number is not null or
3579 x_line_tbl(i).end_customer_party_site_id is not null or
3580 x_line_tbl(i).end_customer_party_site_use_id is not null))
3581 OR
3582 (nvl(x_line_tbl(i).end_customer_contact_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3583 and x_line_tbl(i).end_customer_org_contact_id is not null))
3584 THEN
3585 IF l_debug_level > 0 THEN
3586 oe_debug_pub.add('AAC: end customer party info not null line#'||i);
3587 END IF;
3588 IF (nvl(x_line_tbl(i).end_customer_party_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.end_customer_party_id,FND_API.G_MISS_NUM) and
3589 nvl(x_line_tbl(i).end_customer_party_number,FND_API.G_MISS_CHAR)=nvl(p_header_rec.end_customer_party_number,FND_API.G_MISS_CHAR) and
3590 nvl(x_line_tbl(i).end_customer_party_site_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.end_customer_party_site_id,FND_API.G_MISS_NUM) and
3591 nvl(x_line_tbl(i).end_customer_party_site_use_id,FND_API.G_MISS_NUM)=nvl(p_header_rec.invoice_to_party_site_use_id,FND_API.G_MISS_NUM))
3592 THEN
3593 IF l_debug_level > 0 THEN
3594 oe_debug_pub.add('AAC: cache: >> matching header end customer id:'||x_header_rec.end_customer_id||' found');
3595 END IF;
3596 x_line_tbl(i).end_customer_id := x_header_rec.end_customer_id;
3597 x_line_tbl(i).end_customer_party_id := x_header_rec.end_customer_party_id;
3598 else
3599 IF l_debug_level > 0 THEN
3600 oe_debug_pub.add('AAC: need end customer account creation for line#'||i);
3601 END IF;
3602 l_line_acct_needed(i).end_customer := TRUE;
3603 END IF;
3604 end if;
3605 -- bug 4240715
3606
3607 END loop;
3608 end if;
3609
3610 IF l_debug_level > 0 THEN
3611 oe_debug_pub.add('AAC: cache: done header level cache lookup ');
3612 END IF;
3613
3614 IF p_line_val_tbl.COUNT > 0 then
3615 for i in p_line_val_tbl.FIRST..p_line_val_tbl.LAST loop
3616
3617 IF (x_line_tbl.EXISTS(i) and nvl(x_line_tbl(i).ship_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3618 and
3619 (nvl(p_line_val_tbl(i).ship_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3620 nvl(p_line_val_tbl(i).ship_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3621 nvl(p_line_val_tbl(i).ship_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3622 nvl(p_line_val_tbl(i).ship_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3623 nvl(p_line_val_tbl(i).ship_to_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3624 nvl(p_line_val_tbl(i).ship_to_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3625 nvl(p_line_val_tbl(i).ship_to_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3626 nvl(p_line_val_tbl(i).ship_to_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3627 nvl(p_line_val_tbl(i).ship_to_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3628 nvl(p_line_val_tbl(i).ship_to_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3629 nvl(p_line_val_tbl(i).ship_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3630 nvl(p_line_val_tbl(i).ship_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR) )
3631 then
3632 IF l_debug_level > 0 THEN
3633 oe_debug_pub.add('ship to present:ship_to_org:'||p_line_val_tbl(i).ship_to_org|| 'ship_to_customer_number:'||p_line_val_tbl(i).ship_to_customer_number_oi||' ship_to_contact:'||p_line_val_tbl(i).ship_to_contact);
3634 END IF;
3635 l_line_acct_needed(i).ship := TRUE;
3636 l_line_acct_needed(i).ship_value := TRUE;
3637 end if;
3638
3639 IF (x_line_tbl.EXISTS(i) and (nvl(x_line_tbl(i).ship_to_org_contact_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3640 nvl(p_line_val_tbl(i).ship_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR)) then
3641
3642 IF l_debug_level > 0 THEN
3643 oe_debug_pub.add('ship to contact present');
3644 END IF;
3645 l_line_acct_needed(i).ship := TRUE;
3646 l_line_acct_needed(i).ship_value := TRUE;
3647 END IF;
3648
3649 IF (x_line_tbl.EXISTS(i) and nvl(x_line_tbl(i).deliver_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3650 and
3651 (nvl(p_line_val_tbl(i).deliver_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3652 nvl(p_line_val_tbl(i).deliver_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3653 nvl(p_line_val_tbl(i).deliver_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3654 nvl(p_line_val_tbl(i).deliver_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3655 nvl(p_line_val_tbl(i).deliver_to_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3656 nvl(p_line_val_tbl(i).deliver_to_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3657 nvl(p_line_val_tbl(i).deliver_to_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3658 nvl(p_line_val_tbl(i).deliver_to_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3659 nvl(p_line_val_tbl(i).deliver_to_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3660 nvl(p_line_val_tbl(i).deliver_to_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3661 nvl(p_line_val_tbl(i).deliver_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3662 nvl(p_line_val_tbl(i).deliver_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3663 then
3664 IF l_debug_level > 0 THEN
3665 oe_debug_pub.add('deliver to present:deliver_to_org:'||p_line_val_tbl(i).deliver_to_org|| 'deliver_to_customer_number:'||p_line_val_tbl(i).deliver_to_customer_number_oi||' deliver_to_contact:'||p_line_val_tbl(i).deliver_to_contact);
3666 END IF;
3667 l_line_acct_needed(i).deliver := TRUE;
3668 l_line_acct_needed(i).deliver_value := TRUE;
3669 end if;
3670
3671 IF (x_line_tbl.EXISTS(i) and (nvl(x_line_tbl(i).deliver_to_org_contact_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3672 nvl(p_line_val_tbl(i).deliver_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3673 then
3674 IF l_debug_level > 0 THEN
3675 oe_debug_pub.add('deliver to contact present');
3676 END IF;
3677 l_line_acct_needed(i).deliver := TRUE;
3678 l_line_acct_needed(i).deliver_value := TRUE;
3679 END IF;
3680
3681 IF (x_line_tbl.EXISTS(i) and nvl(x_line_tbl(i).invoice_to_org_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3682 and
3683 (nvl(p_line_val_tbl(i).invoice_to_org,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3684 nvl(p_line_val_tbl(i).invoice_to_customer_number_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3685 nvl(p_line_val_tbl(i).invoice_to_customer_name_oi,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3686 nvl(p_line_val_tbl(i).invoice_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3687 nvl(p_line_val_tbl(i).invoice_to_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3688 nvl(p_line_val_tbl(i).invoice_to_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3689 nvl(p_line_val_tbl(i).invoice_to_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3690 nvl(p_line_val_tbl(i).invoice_to_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3691 nvl(p_line_val_tbl(i).invoice_to_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3692 nvl(p_line_val_tbl(i).invoice_to_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3693 nvl(p_line_val_tbl(i).invoice_to_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3694 nvl(p_line_val_tbl(i).invoice_to_zip,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3695 then
3696 IF l_debug_level > 0 THEN
3697 oe_debug_pub.add('invoice to present:invoice_to_org:'||p_line_val_tbl(i).invoice_to_org|| 'invoice_to_customer_number:'||p_line_val_tbl(i).invoice_to_customer_number_oi||' invoice_to_contact:'||p_line_val_tbl(i).invoice_to_contact);
3698 END IF;
3699 l_line_acct_needed(i).invoice := TRUE;
3700 l_line_acct_needed(i).invoice_value := TRUE;
3701 end if;
3702
3703 IF (x_line_tbl.EXISTS(i) and (nvl(x_line_tbl(i).invoice_to_org_contact_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3704 nvl(p_line_val_tbl(i).invoice_to_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3705 then
3706 IF l_debug_level > 0 THEN
3707 oe_debug_pub.add('invoice to contact present');
3708 END IF;
3709 l_line_acct_needed(i).invoice := TRUE;
3710 l_line_acct_needed(i).invoice_value := TRUE;
3711 END IF;
3712
3713 --added for bug 4240715
3714 -- end customer changes
3715
3716 IF (x_line_tbl.EXISTS(i) and nvl(x_line_tbl(i).end_customer_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
3717 and
3718 (nvl(p_line_val_tbl(i).end_customer_name,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3719 nvl(p_line_val_tbl(i).end_customer_number,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3720 nvl(p_line_val_tbl(i).end_customer_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3721 nvl(p_line_val_tbl(i).end_customer_site_address1,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3722 nvl(p_line_val_tbl(i).end_customer_site_address2,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3723 nvl(p_line_val_tbl(i).end_customer_site_address3,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3724 nvl(p_line_val_tbl(i).end_customer_site_address4,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3725 nvl(p_line_val_tbl(i).end_customer_site_state,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3726 nvl(p_line_val_tbl(i).end_customer_site_country,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3727 nvl(p_line_val_tbl(i).end_customer_site_city,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR or
3728 nvl(p_line_val_tbl(i).end_customer_site_postal_code,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3729 then
3730 IF l_debug_level > 0 THEN
3731 oe_debug_pub.add('end customer present:end customer name:'||p_line_val_tbl(i).end_customer_name|| 'end_customer_number:'||p_line_val_tbl(i).end_customer_number||' invoice_to_contact:'||p_line_val_tbl(i).end_customer_contact);
3732 END IF;
3733 l_line_acct_needed(i).end_customer := TRUE;
3734 l_line_acct_needed(i).end_customer_value := TRUE;
3735 end if;
3736
3737 IF (x_line_tbl.EXISTS(i) and (nvl(x_line_tbl(i).end_customer_org_contact_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM or
3738 nvl(p_line_val_tbl(i).end_customer_contact,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR))
3739 then
3740 IF l_debug_level > 0 THEN
3741 oe_debug_pub.add('end_customer contact present');
3742 END IF;
3743 l_line_acct_needed(i).end_customer := TRUE;
3744 l_line_acct_needed(i).end_customer_value := TRUE;
3745 END IF;
3746 -- bug 4240715
3747 end loop;
3748 end if;
3749
3750 IF l_debug_level > 0 THEN
3751 oe_debug_pub.add('AAC: cache: start line level account creation and cache lookups...');
3752 END IF;
3753
3754 /* Loop through all the line records:
3755 1. decide if we want to create an account, (check in l_line_acct_needed(i) )
3756 2. if so, try to lookup similar account in previous lines
3757 and copy that (thus implementing caching)
3758 3. if no match found, call account creation
3759 */
3760
3761 IF x_line_tbl.COUNT > 0 then
3762 for i in x_line_tbl.FIRST..x_line_tbl.LAST loop
3763
3764 IF l_debug_level > 0 THEN
3765 oe_debug_pub.add(' AAC: processing line_id:'||x_line_tbl(i).line_id);
3766 oe_debug_pub.add(' AAC: line#'||i);
3767 END IF;
3768
3769 /* check if we need to create account for this line{ */
3770 IF (l_line_acct_needed.EXISTS(i)
3771 and
3772 (l_line_acct_needed(i).ship = TRUE
3773 or
3774 l_line_acct_needed(i).deliver = TRUE
3775 or
3776 l_line_acct_needed(i).invoice = TRUE
3777 or
3778 l_line_acct_needed(i).end_customer = TRUE --bug 4240715
3779 ))
3780 THEN
3781 /* Ok, account needs to be created */
3782
3783 /* keep track of how many accounts matched,
3784 reset to zero on each i iteration */
3785 l_line_acct_matched := 0;
3786
3787 /* Look for similar account in previously visited lines = Caching */
3788 for j in x_line_tbl.FIRST..i LOOP
3789 if x_line_tbl.EXISTS(j) and i <> j then
3790 IF (nvl(x_line_tbl(i).ship_to_party_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).ship_to_party_id,FND_API.G_MISS_NUM) and
3791 nvl(x_line_tbl(i).ship_to_party_number,FND_API.G_MISS_CHAR) = nvl(x_line_tbl(j).ship_to_party_number,FND_API.G_MISS_CHAR) and
3792 nvl(x_line_tbl(i).ship_to_party_site_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).ship_to_party_site_id,FND_API.G_MISS_NUM) and
3793 nvl(x_line_tbl(i).ship_to_party_site_use_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).ship_to_party_site_use_id,FND_API.G_MISS_NUM))
3794 THEN
3795 /* this ship_to line matches, copy record */
3796 IF l_debug_level > 0 THEN
3797 oe_debug_pub.add('AAC: cache: >> matching line ship_to_org_id:'||x_line_tbl(j).ship_to_org_id||' found ');
3798 END IF;
3799 x_line_tbl(i).ship_to_org_id := x_line_tbl(j).ship_to_org_id;
3800 x_line_tbl(i).ship_to_customer_id:= x_line_tbl(j).ship_to_customer_id;
3801 l_line_acct_matched := l_line_acct_matched+1;
3802 END IF;
3803 IF l_debug_level > 0 THEN
3804 oe_debug_pub.add(' AAC: X_ship#'||i||'.'||j);
3805 END IF;
3806 IF(nvl(x_line_tbl(i).deliver_to_party_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).deliver_to_party_id,FND_API.G_MISS_NUM) and
3807 nvl(x_line_tbl(i).deliver_to_party_number,FND_API.G_MISS_CHAR) = nvl(x_line_tbl(j).deliver_to_party_number,FND_API.G_MISS_CHAR) and
3808 nvl(x_line_tbl(i).deliver_to_party_site_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).deliver_to_party_site_id,FND_API.G_MISS_NUM) and
3809 nvl(x_line_tbl(i).deliver_to_party_site_use_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).deliver_to_party_site_use_id,FND_API.G_MISS_NUM))
3810 THEN
3811 /* this deliver_to line matches, copy record */
3812 IF l_debug_level > 0 THEN
3813 oe_debug_pub.add('AAC: cache: >> matching line deliver_to_org_id:'||x_line_tbl(j).deliver_to_org_id||' found ');
3814 END IF;
3815 x_line_tbl(i).deliver_to_org_id := x_line_tbl(j).deliver_to_org_id;
3816 x_line_tbl(i).deliver_to_customer_id:= x_line_tbl(j).deliver_to_customer_id;
3817 l_line_acct_matched := l_line_acct_matched+1;
3818 END IF;
3819 IF l_debug_level > 0 THEN
3820 oe_debug_pub.add(' AAC: X_deliver#'||i||'.'||j);
3821 END IF;
3822 IF(nvl(x_line_tbl(i).invoice_to_party_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).invoice_to_party_id,FND_API.G_MISS_NUM) and
3823 nvl(x_line_tbl(i).invoice_to_party_number,FND_API.G_MISS_CHAR) = nvl(x_line_tbl(j).invoice_to_party_number,FND_API.G_MISS_CHAR) and
3824 nvl(x_line_tbl(i).invoice_to_party_site_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).invoice_to_party_site_id,FND_API.G_MISS_NUM) and
3825 nvl(x_line_tbl(i).invoice_to_party_site_use_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).invoice_to_party_site_use_id,FND_API.G_MISS_NUM))
3826 THEN
3827 /* this invoice_to line matches, copy record */
3828 IF l_debug_level > 0 THEN
3829 oe_debug_pub.add('AAC: cache: >> matching line invoice_to_org_id:'||x_line_tbl(j).invoice_to_org_id||' found ');
3830 END IF;
3831 x_line_tbl(i).invoice_to_org_id := x_line_tbl(j).invoice_to_org_id;
3832 x_line_tbl(i).invoice_to_customer_id:= x_line_tbl(j).invoice_to_customer_id;
3833 l_line_acct_matched := l_line_acct_matched+1;
3834 END IF;
3835 IF l_debug_level > 0 THEN
3836 oe_debug_pub.add(' AAC: X_invoice#'||i||'.'||j);
3837 END IF;
3838
3839 --{added for bug 4240715
3840 IF (nvl(x_line_tbl(i).end_customer_party_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).end_customer_party_id,FND_API.G_MISS_NUM) and
3841 nvl(x_line_tbl(i).end_customer_party_number,FND_API.G_MISS_CHAR) = nvl(x_line_tbl(j).end_customer_party_number,FND_API.G_MISS_CHAR) and
3842 nvl(x_line_tbl(i).end_customer_party_site_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).end_customer_party_site_id,FND_API.G_MISS_NUM) and
3843 nvl(x_line_tbl(i).end_customer_party_site_use_id,FND_API.G_MISS_NUM) = nvl(x_line_tbl(j).end_customer_party_site_use_id,FND_API.G_MISS_NUM))
3844 THEN
3845 /* this end_customer line matches, copy record */
3846 IF l_debug_level > 0 THEN
3847 oe_debug_pub.add('AAC: cache: >> matching line end customer:'||x_line_tbl(j).end_customer_id||' found ');
3848 END IF;
3849 x_line_tbl(i).end_customer_site_use_id := x_line_tbl(j).end_customer_site_use_id;
3850 x_line_tbl(i).end_customer_id:= x_line_tbl(j).end_customer_id;
3851 l_line_acct_matched := l_line_acct_matched+1;
3852 END IF;
3853
3854 IF l_debug_level > 0 THEN
3855 oe_debug_pub.add(' AAC: X_End Customer#'||i||'.'||j);
3856 END IF;
3857 --bug 4240715
3858 oe_debug_pub.add('tested all four for line'||j);
3859
3860 END IF;
3861 /* Done looking for similar accounts in prev lines */
3862 END loop;
3863
3864 IF l_debug_level > 0 THEN
3865 oe_debug_pub.add('AAC: Cache: done cache lookup for line: '||l_line_acct_matched||' matches found');
3866 END IF;
3867
3868 /* conservative search */
3869 IF (l_line_acct_matched <> 3 ) THEN
3870 /* we have to create a new site{ */
3871 IF l_debug_level > 0 THEN
3872 oe_debug_pub.add('AAC: line: creating new account sites for line');
3873 END IF;
3874
3875 l_site_tbl_counter := 1;
3876
3877 IF (l_line_acct_needed(i).ship = TRUE)
3878 then
3879 IF l_debug_level > 0 THEN
3880 oe_debug_pub.add('AAC: line: creating new ship to account site for line');
3881 END IF;
3882 p_line_site_tbl(l_site_tbl_counter).p_party_site_id := x_line_tbl(i).ship_to_party_site_id;
3883 p_line_site_tbl(l_site_tbl_counter).p_party_site_use_id := x_line_tbl(i).ship_to_party_site_use_id;
3884
3885 if (nvl(x_line_tbl(i).ship_to_org_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM) then
3886 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
3887 else
3888 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := x_line_tbl(i).ship_to_org_id;
3889 end if;
3890
3891 IF (l_line_acct_needed(i).ship_value = TRUE)
3892 then
3893 p_line_site_tbl(l_site_tbl_counter).p_party_name := p_line_val_tbl(i).ship_to_customer_name_oi;
3894 p_line_site_tbl(l_site_tbl_counter).p_party_number := null;
3895 p_line_site_tbl(l_site_tbl_counter).p_cust_account_number := p_line_val_tbl(i).ship_to_customer_number_oi;
3896
3897 p_line_site_tbl(l_site_tbl_counter).p_contact_name := p_line_val_tbl(i).ship_to_contact;
3898
3899 p_line_site_tbl(l_site_tbl_counter).p_site_address1 := p_line_val_tbl(i).ship_to_address1 ;
3900 p_line_site_tbl(l_site_tbl_counter).p_site_address2 := p_line_val_tbl(i).ship_to_address2 ;
3901 p_line_site_tbl(l_site_tbl_counter).p_site_address3 := p_line_val_tbl(i).ship_to_address3 ;
3902 p_line_site_tbl(l_site_tbl_counter).p_site_address4 := p_line_val_tbl(i).ship_to_address4 ;
3903 p_line_site_tbl(l_site_tbl_counter).p_site_state := p_line_val_tbl(i).ship_to_state ;
3904 p_line_site_tbl(l_site_tbl_counter).p_site_country := p_line_val_tbl(i).ship_to_country ;
3905 p_line_site_tbl(l_site_tbl_counter).p_site_city := p_line_val_tbl(i).ship_to_city ;
3906 p_line_site_tbl(l_site_tbl_counter).p_site_postal_code := p_line_val_tbl(i).ship_to_zip ;
3907 end if;
3908
3909 p_line_site_tbl(l_site_tbl_counter).p_party_id := x_line_tbl(i).ship_to_party_id;
3910 p_line_site_tbl(l_site_tbl_counter).p_party_number := x_line_tbl(i).ship_to_party_number;
3911 p_line_site_tbl(l_site_tbl_counter).p_site_use_code := 'SHIP_TO';
3912 p_line_site_tbl(l_site_tbl_counter).p_cust_account_id := x_line_tbl(i).ship_to_customer_id;
3913 p_line_site_tbl(l_site_tbl_counter).p_cust_account_role_id := x_line_tbl(i).ship_to_contact_id;
3914 p_line_site_tbl(l_site_tbl_counter).p_org_contact_id := x_line_tbl(i).ship_to_org_contact_id;
3915
3916 l_site_tbl_counter := l_site_tbl_counter + 1;
3917 end if;
3918
3919 IF (l_line_acct_needed(i).deliver = TRUE)
3920 then
3921 IF l_debug_level > 0 THEN
3922 oe_debug_pub.add('AAC: line: creating new deliver to account site for line');
3923 END IF;
3924 p_line_site_tbl(l_site_tbl_counter).p_party_site_id := x_line_tbl(i).deliver_to_party_site_id;
3925 p_line_site_tbl(l_site_tbl_counter).p_party_site_use_id := x_line_tbl(i).deliver_to_party_site_use_id;
3926
3927 if (nvl(x_line_tbl(i).deliver_to_org_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM) then
3928 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
3929 else
3930 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := x_line_tbl(i).deliver_to_org_id;
3931 end if;
3932
3933 IF (l_line_acct_needed(i).deliver_value = TRUE)
3934 then
3935 p_line_site_tbl(l_site_tbl_counter).p_party_name := p_line_val_tbl(i).deliver_to_customer_name_oi;
3936 p_line_site_tbl(l_site_tbl_counter).p_party_number := null;
3937 p_line_site_tbl(l_site_tbl_counter).p_cust_account_number := p_line_val_tbl(i).deliver_to_customer_number_oi;
3938
3939 p_line_site_tbl(l_site_tbl_counter).p_contact_name := p_line_val_tbl(i).deliver_to_contact;
3940
3941 p_line_site_tbl(l_site_tbl_counter).p_site_address1 := p_line_val_tbl(i).deliver_to_address1 ;
3942 p_line_site_tbl(l_site_tbl_counter).p_site_address2 := p_line_val_tbl(i).deliver_to_address2 ;
3943 p_line_site_tbl(l_site_tbl_counter).p_site_address3 := p_line_val_tbl(i).deliver_to_address3 ;
3944 p_line_site_tbl(l_site_tbl_counter).p_site_address4 := p_line_val_tbl(i).deliver_to_address4 ;
3945 p_line_site_tbl(l_site_tbl_counter).p_site_state := p_line_val_tbl(i).deliver_to_state ;
3946 p_line_site_tbl(l_site_tbl_counter).p_site_country := p_line_val_tbl(i).deliver_to_country ;
3947 p_line_site_tbl(l_site_tbl_counter).p_site_city := p_line_val_tbl(i).deliver_to_city ;
3948 p_line_site_tbl(l_site_tbl_counter).p_site_postal_code := p_line_val_tbl(i).deliver_to_zip ;
3949 end if;
3950
3951 p_line_site_tbl(l_site_tbl_counter).p_party_id := x_line_tbl(i).deliver_to_party_id;
3952 p_line_site_tbl(l_site_tbl_counter).p_party_number := x_line_tbl(i).deliver_to_party_number;
3953 p_line_site_tbl(l_site_tbl_counter).p_site_use_code := 'DELIVER_TO';
3954 p_line_site_tbl(l_site_tbl_counter).p_cust_account_id := x_line_tbl(i).deliver_to_customer_id;
3955 p_line_site_tbl(l_site_tbl_counter).p_cust_account_role_id := x_line_tbl(i).deliver_to_contact_id;
3956 p_line_site_tbl(l_site_tbl_counter).p_org_contact_id := x_line_tbl(i).deliver_to_org_contact_id;
3957
3958 l_site_tbl_counter := l_site_tbl_counter + 1;
3959 end if;
3960
3961 IF (l_line_acct_needed(i).invoice = TRUE)
3962 then
3963 IF l_debug_level > 0 THEN
3964 oe_debug_pub.add('AAC: line: creating new invoice to account site for line');
3965 END IF;
3966 p_line_site_tbl(l_site_tbl_counter).p_party_site_id := x_line_tbl(i).invoice_to_party_site_id;
3967 p_line_site_tbl(l_site_tbl_counter).p_party_site_use_id := x_line_tbl(i).invoice_to_party_site_use_id;
3968
3969 if (nvl(x_line_tbl(i).invoice_to_org_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM) then
3970 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
3971 else
3972 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := x_line_tbl(i).invoice_to_org_id;
3973 end if;
3974
3975 IF (l_line_acct_needed(i).invoice_value = TRUE)
3976 then
3977 p_line_site_tbl(l_site_tbl_counter).p_party_name := p_line_val_tbl(i).invoice_to_customer_name_oi;
3978 p_line_site_tbl(l_site_tbl_counter).p_party_number := null;
3979 p_line_site_tbl(l_site_tbl_counter).p_cust_account_number := p_line_val_tbl(i).invoice_to_customer_number_oi;
3980
3981 p_line_site_tbl(l_site_tbl_counter).p_contact_name := p_line_val_tbl(i).invoice_to_contact;
3982
3983 p_line_site_tbl(l_site_tbl_counter).p_site_address1 := p_line_val_tbl(i).invoice_to_address1 ;
3984 p_line_site_tbl(l_site_tbl_counter).p_site_address2 := p_line_val_tbl(i).invoice_to_address2 ;
3985 p_line_site_tbl(l_site_tbl_counter).p_site_address3 := p_line_val_tbl(i).invoice_to_address3 ;
3986 p_line_site_tbl(l_site_tbl_counter).p_site_address4 := p_line_val_tbl(i).invoice_to_address4 ;
3987 p_line_site_tbl(l_site_tbl_counter).p_site_state := p_line_val_tbl(i).invoice_to_state ;
3988 p_line_site_tbl(l_site_tbl_counter).p_site_country := p_line_val_tbl(i).invoice_to_country ;
3989 p_line_site_tbl(l_site_tbl_counter).p_site_city := p_line_val_tbl(i).invoice_to_city ;
3990 p_line_site_tbl(l_site_tbl_counter).p_site_postal_code := p_line_val_tbl(i).invoice_to_zip ;
3991 end if;
3992
3993 p_line_site_tbl(l_site_tbl_counter).p_party_id := x_line_tbl(i).invoice_to_party_id;
3994 p_line_site_tbl(l_site_tbl_counter).p_party_number := x_line_tbl(i).invoice_to_party_number;
3995 p_line_site_tbl(l_site_tbl_counter).p_site_use_code := 'BILL_TO';
3996 p_line_site_tbl(l_site_tbl_counter).p_cust_account_id := x_line_tbl(i).invoice_to_customer_id;
3997 p_line_site_tbl(l_site_tbl_counter).p_cust_account_role_id := x_line_tbl(i).invoice_to_contact_id;
3998 p_line_site_tbl(l_site_tbl_counter).p_org_contact_id := x_line_tbl(i).invoice_to_org_contact_id;
3999
4000 l_site_tbl_counter := l_site_tbl_counter + 1;
4001 end if;
4002
4003 -- { added for bug 4240715
4004 -- End customer changes
4005
4006 IF (l_line_acct_needed(i).end_customer = TRUE)
4007 then
4008 IF l_debug_level > 0 THEN
4009 oe_debug_pub.add('AAC: line: creating new end customer account site for line');
4010 END IF;
4011 p_line_site_tbl(l_site_tbl_counter).p_party_site_id := x_line_tbl(i).end_customer_party_site_id;
4012 p_line_site_tbl(l_site_tbl_counter).p_party_site_use_id := x_line_tbl(i).end_customer_party_site_use_id;
4013
4014 if (nvl(x_line_tbl(i).end_customer_site_use_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM) then
4015 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := NULL;
4016 else
4017 p_line_site_tbl(l_site_tbl_counter).p_site_use_id := x_line_tbl(i).end_customer_site_use_id;
4018 end if;
4019
4020 IF (l_line_acct_needed(i).end_customer_value = TRUE)
4021 then
4022 p_line_site_tbl(l_site_tbl_counter).p_party_name := p_line_val_tbl(i).end_customer_name;
4023 p_line_site_tbl(l_site_tbl_counter).p_party_number := null;
4024 p_line_site_tbl(l_site_tbl_counter).p_cust_account_number := p_line_val_tbl(i).end_customer_number;
4025
4026 p_line_site_tbl(l_site_tbl_counter).p_contact_name := p_line_val_tbl(i).end_customer_contact;
4027
4028 p_line_site_tbl(l_site_tbl_counter).p_site_address1 := p_line_val_tbl(i).end_customer_site_address1 ;
4029 p_line_site_tbl(l_site_tbl_counter).p_site_address2 := p_line_val_tbl(i).end_customer_site_address2 ;
4030 p_line_site_tbl(l_site_tbl_counter).p_site_address3 := p_line_val_tbl(i).end_customer_site_address3 ;
4031 p_line_site_tbl(l_site_tbl_counter).p_site_address4 := p_line_val_tbl(i).end_customer_site_address4 ;
4032 p_line_site_tbl(l_site_tbl_counter).p_site_state := p_line_val_tbl(i).end_customer_site_state ;
4033 p_line_site_tbl(l_site_tbl_counter).p_site_country := p_line_val_tbl(i).end_customer_site_country ;
4034 p_line_site_tbl(l_site_tbl_counter).p_site_city := p_line_val_tbl(i).end_customer_site_city ;
4035 p_line_site_tbl(l_site_tbl_counter).p_site_postal_code := p_line_val_tbl(i).end_customer_site_postal_code ;
4036 end if;
4037
4038 p_line_site_tbl(l_site_tbl_counter).p_party_id := x_line_tbl(i).end_customer_party_id;
4039 p_line_site_tbl(l_site_tbl_counter).p_party_number := x_line_tbl(i).end_customer_party_number;
4040 p_line_site_tbl(l_site_tbl_counter).p_site_use_code := 'END_CUST';
4041 p_line_site_tbl(l_site_tbl_counter).p_cust_account_role_id := x_line_tbl(i).end_customer_contact_id;
4042 p_line_site_tbl(l_site_tbl_counter).p_org_contact_id := x_line_tbl(i).end_customer_org_contact_id;
4043
4044 if (nvl(x_line_tbl(i).end_customer_id,FND_API.G_MISS_NUM)=FND_API.G_MISS_NUM) then
4045 p_line_site_tbl(l_site_tbl_counter).p_cust_account_id := NULL;
4046 else
4047 p_line_site_tbl(l_site_tbl_counter).p_cust_account_id := x_line_tbl(i).end_customer_id;
4048 end if;
4049
4050
4051 oe_debug_pub.add('end customer party_id'||x_line_tbl(i).end_customer_party_id ||'p_custacc'||p_line_site_tbl(l_site_tbl_counter).p_cust_account_id||'counter is'||l_site_tbl_counter);
4052
4053 l_site_tbl_counter := l_site_tbl_counter + 1;
4054
4055 end if;
4056 -- bug 4240715}
4057
4058 IF l_debug_level > 0 THEN
4059 oe_debug_pub.add('AAC: line: calling Create_Account_Layer...');
4060 END IF;
4061 oe_create_account_info.Create_Account_Layer(
4062 p_control_rec =>p_control_rec
4063 ,x_return_status =>x_return_status
4064 ,x_msg_count =>x_msg_count
4065 ,x_msg_data =>x_Msg_data
4066 ,p_party_customer_rec =>p_party_customer_rec
4067 ,p_site_tbl =>p_line_site_tbl
4068 ,p_account_tbl =>p_account_tbl
4069 ,p_contact_tbl =>p_contact_tbl
4070 );
4071
4072
4073 IF l_debug_level > 0 THEN
4074 oe_debug_pub.add('AAC: line: after calling create_account_layer');
4075 END IF;
4076
4077 /* check for errors{ */
4078 IF x_return_status <> fnd_api.G_RET_STS_SUCCESS THEN
4079 l_count :=oe_msg_pub.count_msg;
4080
4081 IF l_debug_level > 0 THEN
4082 oe_debug_pub.add('AAC: line: Main Status is not success'||
4083 ' msg='||x_msg_data||
4084 ' count='||x_msg_count
4085 );
4086 END IF;
4087 RAISE FND_API.G_EXC_ERROR;
4088 ELSE
4089 IF l_debug_level > 0 THEN
4090 oe_debug_pub.add('AAC: line: Status is success');
4091 END IF;
4092
4093 END IF; /* END checking for errors} */
4094
4095 IF p_line_site_tbl.COUNT > 0 then
4096
4097 FOR j in p_line_site_tbl.FIRST..p_line_site_tbl.LAST LOOP
4098
4099 IF (p_line_site_tbl(j).p_site_use_code = 'SHIP_TO')
4100 THEN
4101 IF l_debug_level > 0 THEN
4102 oe_debug_pub.add('AAC: line SHIP_TO org_id:'|| p_line_site_tbl(j).p_site_use_id);
4103 oe_debug_pub.add('AAC: line SHIP_TO cust_account_id:'|| p_line_site_tbl(j).p_cust_account_id);
4104 END IF;
4105
4106 x_line_tbl(i).ship_to_org_id := p_line_site_tbl(j).p_site_use_id;
4107 x_line_tbl(i).ship_to_customer_id := p_line_site_tbl(j).p_cust_account_id;
4108 x_line_tbl(i).ship_to_contact_id := p_line_site_tbl(j).p_cust_account_role_id;
4109 x_line_tbl(i).ship_to_party_id := p_line_site_tbl(j).p_party_id;
4110 ELSIF (p_line_site_tbl(j).p_site_use_code = 'DELIVER_TO')
4111 THEN
4112
4113 IF l_debug_level > 0 THEN
4114 oe_debug_pub.add('AAC: line DELIVER_TO org_id:'|| p_line_site_tbl(j).p_site_use_id);
4115 oe_debug_pub.add('AAC: line DELIVER_TO cust_account_id:'|| p_line_site_tbl(j).p_cust_account_id);
4116 END IF;
4117 x_line_tbl(i).deliver_to_org_id := p_line_site_tbl(j).p_site_use_id;
4118 x_line_tbl(i).deliver_to_customer_id := p_line_site_tbl(j).p_cust_account_id;
4119 x_line_tbl(i).deliver_to_contact_id := p_line_site_tbl(j).p_cust_account_role_id;
4120 x_line_tbl(i).deliver_to_party_id := p_line_site_tbl(j).p_party_id;
4121 ELSIF (p_line_site_tbl(j).p_site_use_code = 'BILL_TO')
4122 THEN
4123 IF l_debug_level > 0 THEN
4124 oe_debug_pub.add('AAC: line INVOICE_TO org_id:'|| p_line_site_tbl(j).p_site_use_id);
4125 oe_debug_pub.add('AAC: line INVOICE_TO cust_account_id:'|| p_line_site_tbl(j).p_cust_account_id);
4126 END IF;
4127 x_line_tbl(i).invoice_to_org_id := p_line_site_tbl(j).p_site_use_id;
4128 x_line_tbl(i).invoice_to_customer_id := p_line_site_tbl(j).p_cust_account_id;
4129 x_line_tbl(i).invoice_to_contact_id := p_line_site_tbl(j).p_cust_account_role_id;
4130 x_line_tbl(i).invoice_to_party_id := p_line_site_tbl(j).p_party_id;
4131
4132 --{ added for bug 4240715
4133 ELSIF (p_line_site_tbl(j).p_site_use_code = 'END_CUST') -- end customer changes
4134 THEN
4135 IF l_debug_level > 0 THEN
4136 oe_debug_pub.add('AAC: line End customer site use id:'|| p_line_site_tbl(j).p_site_use_id);
4137 oe_debug_pub.add('AAC: line End customer cust_account_id:'|| p_line_site_tbl(j).p_cust_account_id);
4138 END IF;
4139 x_line_tbl(i).end_customer_site_use_id := p_line_site_tbl(j).p_site_use_id;
4140 x_line_tbl(i).end_customer_id := p_line_site_tbl(j).p_cust_account_id;
4141 x_line_tbl(i).end_customer_contact_id := p_line_site_tbl(j).p_cust_account_role_id;
4142 x_line_tbl(i).end_customer_party_id := p_line_site_tbl(j).p_party_id;
4143 -- bug 4240715}
4144
4145 END IF;
4146
4147 END LOOP;
4148 end if;
4149
4150 END IF; /* END creating a new site} */
4151
4152 END IF; /* END checking account creation for line} */
4153
4154 END loop;
4155 end if;
4156
4157 IF l_debug_level > 0 THEN
4158 oe_debug_pub.add('AAC: Exiting Process Order Automatic Account Creation}');
4159 END IF;
4160
4161 EXCEPTION
4162
4163 WHEN OTHERS THEN
4164
4165 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4166 THEN
4167 OE_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,'Automatic_Account_Creation');
4168 END IF;
4169
4170 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4171
4172 END AUTOMATIC_ACCOUNT_CREATION;
4173
4174
4175 /* Introduced this API for OKC workbench to chekc security on contract terms.
4176 the API will work for both sales orders and blanket sales agreements
4177 */
4178
4179 PROCEDURE Check_Header_Security
4180 ( p_document_type IN VARCHAR2
4181 , p_column IN VARCHAR2 := NULL
4182 , p_header_id IN NUMBER
4183 , p_operation IN VARCHAR2
4184 , x_msg_count OUT NOCOPY NUMBER
4185 , x_msg_data OUT NOCOPY VARCHAR2
4186 , x_return_status OUT NOCOPY VARCHAR2
4187 , x_result OUT NOCOPY NUMBER
4188 )
4189 IS
4190 l_blanket_header_rec OE_BLANKET_PUB.Header_Rec_Type;
4191 l_blanket_rowtype_rec oe_ak_blanket_headers_v%rowtype;
4192 l_header_rec OE_ORDER_PUB.Header_Rec_Type;
4193 l_header_rowtype_rec oe_ak_order_headers_v%rowtype;
4194 l_action NUMBER;
4195
4196 BEGIN
4197
4198
4199 OE_MSG_PUB.initialize;
4200 x_return_status := FND_API.G_RET_STS_SUCCESS;
4201
4202 IF(p_operation IS NULL or p_operation = '' ) THEN
4203 --raise an error for null operation
4204 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
4205 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Operation');
4206 OE_MSG_PUB.Add;
4207 RAISE FND_API.G_EXC_ERROR;
4208 END IF;
4209
4210 IF(p_header_id IS NULL) THEN
4211 --raise an error for null header_id
4212 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
4213 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header_id');
4214 OE_MSG_PUB.Add;
4215 RAISE FND_API.G_EXC_ERROR;
4216 ELSE
4217 -- (1)query header_rec by header_id
4218 -- (2) convert to RowType Rec
4219 -- (3) call Entity_Security.Is_OP_Constrained to see if
4220 -- there are entity level constrains and attribute level constrains
4221
4222 IF(p_document_type IS NULL OR p_document_type ='') THEN
4223 -- raise an error for null document_type
4224 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
4225 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','document_type');
4226 OE_MSG_PUB.Add;
4227 RAISE FND_API.G_EXC_ERROR;
4228 ELSIF p_document_type= 'O' THEN
4229 -- the caller is from Sales Order
4230 OE_HEADER_UTIL.QUERY_ROW(p_header_id=>p_header_id
4231 ,x_header_rec=>l_header_rec);
4232 OE_HEADER_UTIL.API_Rec_To_Rowtype_Rec(l_header_rec
4233 ,l_header_rowtype_rec);
4234
4235 x_result := OE_Header_Security.Is_OP_Constrained
4236 (p_operation => p_operation
4237 ,p_column_name => p_column
4238 ,p_record => l_header_rowtype_rec
4239 ,x_on_operation_action => l_action
4240 );
4241
4242
4243 ELSIF p_document_type= 'B' THEN
4244 -- the caller is from Blanket Order
4245 OE_Blanket_Util.Query_Header
4246 (p_header_id => p_header_id,
4247 x_header_rec => l_blanket_header_rec,
4248 x_return_status => x_return_status);
4249 OE_BLANKET_UTIL.API_Rec_To_Rowtype_Rec(l_blanket_header_rec
4250 ,l_blanket_rowtype_rec);
4251
4252 x_result := OE_Blanket_Header_Security.Is_OP_Constrained
4253 (p_operation => p_operation
4254 ,p_column_name => p_column
4255 ,p_record => l_blanket_rowtype_rec
4256 ,x_on_operation_action => l_action
4257 );
4258 END IF;
4259 END IF;
4260
4261 EXCEPTION
4262
4263 WHEN FND_API.G_EXC_ERROR THEN
4264
4265 x_return_status := FND_API.G_RET_STS_ERROR;
4266
4267 -- Get message count and data
4268
4269 OE_MSG_PUB.Count_And_Get
4270 ( p_count => x_msg_count
4271 , p_data => x_msg_data
4272 );
4273
4274 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4275
4276 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4277
4278 -- Get message count and data
4279
4280 OE_MSG_PUB.Count_And_Get
4281 ( p_count => x_msg_count
4282 , p_data => x_msg_data
4283 );
4284
4285 WHEN OTHERS THEN
4286 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4287
4288 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4289 THEN
4290 OE_MSG_PUB.Add_Exc_Msg
4291 ( G_PKG_NAME
4292 , 'Check_Header_Security'
4293 );
4294 END IF;
4295 -- Get message count and data
4296
4297 OE_MSG_PUB.Count_And_Get
4298 ( p_count => x_msg_count
4299 , p_data => x_msg_data
4300 );
4301
4302
4303 END Check_Header_Security;
4304
4305
4306 END OE_Order_GRP;