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