[Home] [Help]
PACKAGE BODY: APPS.PON_NEGOTIATION_COPY_GRP
Source
1 PACKAGE BODY PON_NEGOTIATION_COPY_GRP AS
2 --$Header: PONGCPYB.pls 120.76.12010000.2 2008/10/21 07:18:47 amundhra ship $
3
4 g_pkg_name CONSTANT VARCHAR2(25):='PON_NEGOTIATION_COPY_GRP';
5
6 g_err_loc VARCHAR2(400);
7
8 -- Global variable for status which will be set in different sub-procedures
9 g_return_status VARCHAR2(50);
10
11 -- Inform the middle tier in case of super large auction
12 g_ret_conc_req_submitted VARCHAR2(30) := 'CONC_REQ_SUBMITTED';
13
14 -- Indicate if the debug mode is on
15 g_debug_mode VARCHAR2(10) := 'Y';
16
17 -- module name for logging message
18 g_module_prefix CONSTANT VARCHAR2(40) := 'pon.plsql.pon_negotiation_copy_grp.';
19
20 --
21 -- Few variables redifened as done in SourcingCommonUtil and ContractCommonUtil
22 --
23 g_buyer_auction CONSTANT VARCHAR2(25):='BUYER_AUCTION';
24 g_contract_auction CONSTANT VARCHAR2(25):='AUCTION';
25
26 g_rfq CONSTANT VARCHAR2(25):='REQUEST_FOR_QUOTE';
27 g_contract_rfq CONSTANT VARCHAR2(25):='RFQ';
28
29 g_rfi CONSTANT VARCHAR2(25):='REQUEST_FOR_INFORMATION';
30 g_contract_rfi CONSTANT VARCHAR2(25):='RFI';
31
32 -- Global variable to hold the doctype_id for RFI
33 g_rfi_doctype_id NUMBER;
34 g_rfq_doctype_id NUMBER;
35 g_auction_doctype_id NUMBER;
36 --
37 -- Flag to know if the Source Negotiation had any line containg
38 -- some Price Elements that has been inactivated currently
39 --
40 g_has_inactive_pe_flag VARCHAR2(1);
41
42 -- Global variable to hold the Document Number variable
43 g_neg_doc_number PON_AUCTION_HEADERS_ALL.DOCUMENT_NUMBER%TYPE;
44
45 -- Global variable for message sufix
46 g_message_suffix PON_AUC_DOCTYPES.MESSAGE_SUFFIX%TYPE;
47
48 -- Global variable for auction_origination_code
49 g_auc_origination_code PON_AUCTION_HEADERS_ALL.AUCTION_ORIGINATION_CODE%TYPE;
50
51 -- Global variable for Rate Based Temp Labor line type
52 g_temp_labor CONSTANT VARCHAR2(10) := 'TEMP LABOR';
53
54 -- Global variable for inactive attribute message flag
55 g_added_inactv_attr_grp_msg VARCHAR2(1);
56
57 g_source_doc_id NUMBER;
58 g_source_doc_num VARCHAR2(30);
59 g_source_doc_int_name VARCHAR2(50);
60
61 -- flag to know if lot/lot line/group/group line is deleted (due to style)
62 g_line_deleted VARCHAR2(1);
63
64 PROCEDURE COPY_HEADER_BASIC (p_source_auction_header_id IN NUMBER,
65 p_auction_header_id IN NUMBER,
66 p_tp_id IN NUMBER,
67 p_tp_contact_id IN NUMBER,
68 p_tp_name IN VARCHAR2,
69 p_tpc_name IN VARCHAR2,
70 p_user_id IN NUMBER,
71 p_source_doctype_id IN NUMBER,
72 p_doctype_id IN NUMBER,
73 p_copy_type IN VARCHAR2,
74 p_is_award_approval_reqd IN VARCHAR2,
75 p_retain_attachments IN VARCHAR2,
76 p_retain_clause IN VARCHAR2,
77 p_source_orig_round_id IN NUMBER,
78 p_source_prev_round_id IN NUMBER,
79 p_round_number IN NUMBER,
80 p_last_amendment_number IN NUMBER,
81 p_source_orig_amend_id IN NUMBER,
82 p_source_doctype_grp_name IN VARCHAR2,
83 p_source_auc_orig_code IN VARCHAR2,
84 x_contracts_doctype OUT NOCOPY VARCHAR2,
85 x_contract_type OUT NOCOPY VARCHAR2,
86 x_document_number OUT NOCOPY VARCHAR2);
87
88 PROCEDURE COPY_HEADER (p_source_auction_header_id IN NUMBER,
89 p_auction_header_id IN NUMBER,
90 p_tp_id IN NUMBER,
91 p_tp_contact_id IN NUMBER,
92 p_tp_name IN VARCHAR2,
93 p_tpc_name IN VARCHAR2,
94 p_user_id IN NUMBER,
95 p_source_doctype_id IN NUMBER,
96 p_doctype_id IN NUMBER,
97 p_copy_type IN VARCHAR2,
98 p_org_id IN NUMBER,
99 p_is_award_approval_reqd IN VARCHAR2,
100 p_retain_clause IN VARCHAR2,
101 p_update_clause IN VARCHAR2,
102 p_retain_attachments IN VARCHAR2,
103 p_source_orig_round_id IN NUMBER,
104 p_source_prev_round_id IN NUMBER,
105 p_round_number IN NUMBER,
106 p_last_amendment_number IN NUMBER,
107 p_source_orig_amend_id IN NUMBER,
108 p_source_doctype_grp_name IN VARCHAR2,
109 p_source_auc_orig_code IN VARCHAR2,
110 x_document_number OUT NOCOPY VARCHAR2);
111
112 PROCEDURE COPY_CONTRACTS_ATTACHMENTS (
113 p_source_auction_header_id IN NUMBER,
114 p_auction_header_id IN NUMBER,
115 p_tp_id IN NUMBER,
116 p_tp_contact_id IN NUMBER,
117 p_tp_name IN VARCHAR2,
118 p_tpc_name IN VARCHAR2,
119 p_user_id IN NUMBER,
120 p_source_doctype_id IN NUMBER,
121 p_doctype_id IN NUMBER,
122 p_copy_type IN VARCHAR2,
123 p_org_id IN NUMBER,
124 p_is_award_approval_reqd IN VARCHAR2,
125 p_retain_clause IN VARCHAR2,
126 p_update_clause IN VARCHAR2,
127 p_retain_attachments IN VARCHAR2,
128 p_contracts_doctype IN VARCHAR2,
129 p_contract_type IN VARCHAR2,
130 p_document_number IN VARCHAR2);
131
132 PROCEDURE COPY_LINES ( p_source_auction_header_id IN NUMBER,
133 p_auction_header_id IN NUMBER,
134 p_tp_id IN NUMBER,
135 p_tp_contact_id IN NUMBER,
136 p_tp_name IN VARCHAR2,
137 p_tpc_name IN VARCHAR2,
138 p_user_id IN NUMBER,
139 p_source_doctype_id IN NUMBER,
140 p_doctype_id IN NUMBER,
141 p_copy_type IN VARCHAR2,
142 p_round_number IN NUMBER,
143 p_last_amendment_number IN NUMBER,
144 p_retain_attachments IN VARCHAR2,
145 p_staggered_closing_interval IN NUMBER,
146 p_from_line_number IN NUMBER,
147 p_to_line_number IN NUMBER );
148
149 PROCEDURE COPY_SECTION ( p_source_auction_header_id IN NUMBER,
150 p_auction_header_id IN NUMBER,
151 p_tp_id IN NUMBER,
152 p_tp_contact_id IN NUMBER,
153 p_tp_name IN VARCHAR2,
154 p_tpc_name IN VARCHAR2,
155 p_user_id IN NUMBER,
156 p_source_doctype_id IN NUMBER,
157 p_doctype_id IN NUMBER,
158 p_copy_type IN VARCHAR2);
159
160
161 PROCEDURE COPY_HEADER_ATTRIBUTE ( p_source_auction_header_id IN NUMBER,
162 p_auction_header_id IN NUMBER,
163 p_tp_id IN NUMBER,
164 p_tp_contact_id IN NUMBER,
165 p_tp_name IN VARCHAR2,
166 p_tpc_name IN VARCHAR2,
167 p_user_id IN NUMBER,
168 p_source_doctype_id IN NUMBER,
169 p_doctype_id IN NUMBER,
170 p_copy_type IN VARCHAR2
171 );
172
173 PROCEDURE COPY_HEADER_ATTRIBUTE_SCORE (p_source_auction_header_id IN NUMBER,
174 p_auction_header_id IN NUMBER,
175 p_tp_id IN NUMBER,
176 p_tp_contact_id IN NUMBER,
177 p_tp_name IN VARCHAR2,
178 p_tpc_name IN VARCHAR2,
179 p_user_id IN NUMBER,
180 p_source_doctype_id IN NUMBER,
181 p_doctype_id IN NUMBER,
182 p_copy_type IN VARCHAR2
183 );
184
185 PROCEDURE COPY_LINE_ATTRIBUTE ( p_source_auction_header_id IN NUMBER,
186 p_auction_header_id IN NUMBER,
187 p_tp_id IN NUMBER,
188 p_tp_contact_id IN NUMBER,
189 p_tp_name IN VARCHAR2,
190 p_tpc_name IN VARCHAR2,
191 p_user_id IN NUMBER,
192 p_source_doctype_id IN NUMBER,
193 p_doctype_id IN NUMBER,
194 p_copy_type IN VARCHAR2,
195 p_from_line_number IN NUMBER,
196 p_to_line_number IN NUMBER );
197
198 PROCEDURE COPY_LINE_ATTRIBUTE_SCORE (p_source_auction_header_id IN NUMBER,
199 p_auction_header_id IN NUMBER,
200 p_tp_id IN NUMBER,
201 p_tp_contact_id IN NUMBER,
202 p_tp_name IN VARCHAR2,
203 p_tpc_name IN VARCHAR2,
204 p_user_id IN NUMBER,
205 p_source_doctype_id IN NUMBER,
206 p_doctype_id IN NUMBER,
207 p_copy_type IN VARCHAR2,
208 p_from_line_number IN NUMBER,
209 p_to_line_number IN NUMBER );
210
211 PROCEDURE COPY_PRICE_DIFF ( p_source_auction_header_id IN NUMBER,
212 p_auction_header_id IN NUMBER,
213 p_tp_id IN NUMBER,
214 p_tp_contact_id IN NUMBER,
215 p_tp_name IN VARCHAR2,
216 p_tpc_name IN VARCHAR2,
217 p_user_id IN NUMBER,
218 p_doctype_id IN NUMBER,
219 p_copy_type IN VARCHAR2,
220 p_from_line_number IN NUMBER,
221 p_to_line_number IN NUMBER );
222
223 PROCEDURE COPY_SHIPMENTS ( p_source_auction_header_id IN NUMBER,
224 p_auction_header_id IN NUMBER,
225 p_tp_id IN NUMBER,
226 p_tp_contact_id IN NUMBER,
227 p_tp_name IN VARCHAR2,
228 p_tpc_name IN VARCHAR2,
229 p_user_id IN NUMBER,
230 p_doctype_id IN NUMBER,
231 p_source_doctype_id IN NUMBER,
232 p_copy_type IN VARCHAR2,
233 p_from_line_number IN NUMBER,
234 p_to_line_number IN NUMBER );
235
236 PROCEDURE COPY_PRICE_ELEMENTS ( p_source_auction_header_id IN NUMBER,
237 p_auction_header_id IN NUMBER,
238 p_tp_id IN NUMBER,
239 p_tp_contact_id IN NUMBER,
240 p_tp_name IN VARCHAR2,
241 p_tpc_name IN VARCHAR2,
242 p_user_id IN NUMBER,
243 p_source_doctype_id IN NUMBER,
244 p_doctype_id IN NUMBER,
245 p_copy_type IN VARCHAR2,
246 p_source_doc_num IN VARCHAR2,
247 p_from_line_number IN NUMBER,
248 p_to_line_number IN NUMBER );
249
250 PROCEDURE COPY_CURRENCIES ( p_source_auction_header_id IN NUMBER,
251 p_auction_header_id IN NUMBER,
252 p_tp_id IN NUMBER,
253 p_tp_contact_id IN NUMBER,
254 p_tp_name IN VARCHAR2,
255 p_tpc_name IN VARCHAR2,
256 p_user_id IN NUMBER,
257 p_doctype_id IN NUMBER,
258 p_copy_type IN VARCHAR2);
259
260 PROCEDURE COPY_INVITEES ( p_source_auction_header_id IN NUMBER,
261 p_auction_header_id IN NUMBER,
262 p_tp_id IN NUMBER,
263 p_tp_contact_id IN NUMBER,
264 p_tp_name IN VARCHAR2,
265 p_tpc_name IN VARCHAR2,
266 p_user_id IN NUMBER,
267 p_doctype_id IN NUMBER,
268 p_copy_type IN VARCHAR2,
269 p_org_id IN NUMBER,
270 p_round_number IN NUMBER);
271
272
273 PROCEDURE COPY_NEG_TEAM (p_source_auction_header_id IN NUMBER,
274 p_auction_header_id IN NUMBER,
275 p_tp_id IN NUMBER,
276 p_tp_contact_id IN NUMBER,
277 p_tp_name IN VARCHAR2,
278 p_tpc_name IN VARCHAR2,
279 p_user_id IN NUMBER,
280 p_doctype_id IN NUMBER,
281 p_copy_type IN VARCHAR2,
282 p_user_name IN VARCHAR2,
283 p_mgr_id IN NUMBER);
284
285 PROCEDURE COPY_PARTY_LINE_EXCLUSIONS (
286 p_source_auction_header_id IN NUMBER,
287 p_auction_header_id IN NUMBER,
288 p_user_id IN NUMBER,
289 p_doctype_id IN NUMBER,
290 p_copy_type IN VARCHAR2,
291 p_from_line_number IN NUMBER,
292 p_to_line_number IN NUMBER );
293
294 PROCEDURE COPY_PF_SUPPLIER_VALUES (
295 p_source_auction_header_id IN NUMBER,
296 p_auction_header_id IN NUMBER,
297 p_user_id IN NUMBER,
298 p_doctype_id IN NUMBER,
299 p_copy_type IN VARCHAR2,
300 p_from_line_number IN NUMBER,
301 p_to_line_number IN NUMBER );
302
303 PROCEDURE COPY_FORM_DATA (
304 p_source_auction_header_id IN NUMBER,
305 p_auction_header_id IN NUMBER,
306 p_user_id IN NUMBER,
307 p_doctype_id IN NUMBER,
308 p_source_doctype_id IN NUMBER,
309 p_copy_type IN VARCHAR2);
310
311 PROCEDURE COPY_FORM_CHILDREN (
312 p_source_auction_header_id IN NUMBER,
313 p_auction_header_id IN NUMBER,
314 p_user_id IN NUMBER,
315 p_doctype_id IN NUMBER,
316 p_source_doctype_id IN NUMBER,
317 p_copy_type IN VARCHAR2);
318
319 PROCEDURE COPY_FORM_FIELD_CHILDREN (
320 p_orig_parent_fld_values_fk IN NUMBER,
321 p_new_parent_field_values_fk IN NUMBER,
322 p_user_id IN NUMBER,
323 p_new_entity_pk1 IN VARCHAR2,
324 p_form_id IN NUMBER,
325 p_old_entity_pk1 IN VARCHAR2);
326
327
328
329
330 PROCEDURE COPY_LINES_AND_CHILDREN(
331 p_api_version IN NUMBER,
332 p_init_msg_list IN VARCHAR2,
333 p_source_auction_header_id IN NUMBER,
334 p_destination_auction_hdr_id IN NUMBER,
335 p_trading_partner_id IN NUMBER ,
336 p_trading_partner_contact_id IN NUMBER ,
337 p_language IN VARCHAR2,
338 p_user_id IN NUMBER,
339 p_doctype_id IN NUMBER,
340 p_copy_type IN VARCHAR2,
341 p_is_award_approval_reqd IN VARCHAR2,
342 p_user_name IN VARCHAR2,
343 p_mgr_id IN NUMBER,
344 p_retain_clause IN VARCHAR2,
345 p_update_clause IN VARCHAR2,
346 p_retain_attachments IN VARCHAR2,
347 p_tpc_name IN VARCHAR2,
348 p_tp_name IN VARCHAR2,
349 p_source_doctype_id IN NUMBER,
350 p_org_id IN NUMBER,
351 p_round_number IN NUMBER,
352 p_last_amendment_number IN NUMBER,
353 p_source_doc_num IN VARCHAR2,
354 p_style_id IN NUMBER,
355 x_return_status OUT NOCOPY VARCHAR2,
356 x_msg_count OUT NOCOPY NUMBER,
357 x_msg_data OUT NOCOPY VARCHAR2
358 );
359
360 PROCEDURE PON_LRG_DRAFT_TO_LRG_PF_COPY (
361 p_source_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
362 p_destination_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
363 p_user_id IN number);
364
365 PROCEDURE PON_ORD_DRAFT_TO_LRG_PF_COPY (
366 p_source_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
367 p_destination_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
368 p_user_id IN number);
369
370 procedure renumber_lines(p_auction_header_id IN NUMBER);
371
372 TYPE AUC_HDR_TYPE_BASE_DATA IS RECORD (
373
374 BID_VISIBILITY_CODE PON_AUCTION_HEADERS_ALL.BID_VISIBILITY_CODE%TYPE,
375 BID_SCOPE_CODE PON_AUCTION_HEADERS_ALL.BID_SCOPE_CODE%TYPE,
376 CONTRACT_TYPE PON_AUCTION_HEADERS_ALL.CONTRACT_TYPE%TYPE,
377 PO_START_DATE PON_AUCTION_HEADERS_ALL.PO_START_DATE%TYPE,
378 PO_END_DATE PON_AUCTION_HEADERS_ALL.PO_END_DATE%TYPE,
379 PO_AGREED_AMOUNT PON_AUCTION_HEADERS_ALL.PO_AGREED_AMOUNT%TYPE,
380 MANUAL_CLOSE_FLAG PON_AUCTION_HEADERS_ALL.MANUAL_CLOSE_FLAG%TYPE,
381 MANUAL_EXTEND_FLAG PON_AUCTION_HEADERS_ALL.MANUAL_EXTEND_FLAG%TYPE,
382 SHOW_BIDDER_NOTES PON_AUCTION_HEADERS_ALL.SHOW_BIDDER_NOTES%TYPE,
383 MULTIPLE_ROUNDS_FLAG PON_AUCTION_HEADERS_ALL.MULTIPLE_ROUNDS_FLAG%TYPE,
384 AUTO_EXTEND_FLAG PON_AUCTION_HEADERS_ALL.AUTO_EXTEND_FLAG%TYPE,
385 AUTO_EXTEND_ALL_LINES_FLAG PON_AUCTION_HEADERS_ALL.AUTO_EXTEND_ALL_LINES_FLAG%TYPE,
386 AUTO_EXTEND_MIN_TRIGGER_RANK PON_AUCTION_HEADERS_ALL.AUTO_EXTEND_MIN_TRIGGER_RANK%TYPE,
387 AUTO_EXTEND_DURATION PON_AUCTION_HEADERS_ALL.AUTO_EXTEND_DURATION%TYPE,
388 AUTO_EXTEND_TYPE_FLAG PON_AUCTION_HEADERS_ALL.AUTO_EXTEND_TYPE_FLAG%TYPE,
389 GLOBAL_AGREEMENT_FLAG PON_AUCTION_HEADERS_ALL.GLOBAL_AGREEMENT_FLAG%TYPE,
390 PO_MIN_REL_AMOUNT PON_AUCTION_HEADERS_ALL.PO_MIN_REL_AMOUNT%TYPE,
391 EVENT_ID PON_AUCTION_HEADERS_ALL.EVENT_ID%TYPE,
392 EVENT_TITLE PON_AUCTION_HEADERS_ALL.EVENT_TITLE%TYPE,
393 BID_RANKING PON_AUCTION_HEADERS_ALL.BID_RANKING%TYPE,
394 BILL_TO_LOCATION_ID PON_AUCTION_HEADERS_ALL.BILL_TO_LOCATION_ID%TYPE,
395 SHIP_TO_LOCATION_ID PON_AUCTION_HEADERS_ALL.SHIP_TO_LOCATION_ID%TYPE,
396 CARRIER_CODE PON_AUCTION_HEADERS_ALL.CARRIER_CODE%TYPE,
397 FREIGHT_TERMS_CODE PON_AUCTION_HEADERS_ALL.FREIGHT_TERMS_CODE%TYPE,
398 FOB_CODE PON_AUCTION_HEADERS_ALL.FOB_CODE%TYPE,
399 BID_LIST_TYPE PON_AUCTION_HEADERS_ALL.BID_LIST_TYPE%TYPE,
400 BID_FREQUENCY_CODE PON_AUCTION_HEADERS_ALL.BID_FREQUENCY_CODE%TYPE,
401 FULL_QUANTITY_BID_CODE PON_AUCTION_HEADERS_ALL.FULL_QUANTITY_BID_CODE%TYPE,
402 RANK_INDICATOR PON_AUCTION_HEADERS_ALL.RANK_INDICATOR%TYPE,
403 SHOW_BIDDER_SCORES PON_AUCTION_HEADERS_ALL.SHOW_BIDDER_SCORES%TYPE,
404
405 PF_TYPE_ALLOWED PON_AUCTION_HEADERS_ALL.PF_TYPE_ALLOWED%TYPE,
406
407 PRICE_DRIVEN_AUCTION_FLAG PON_AUCTION_HEADERS_ALL.PRICE_DRIVEN_AUCTION_FLAG%TYPE,
408 MIN_BID_CHANGE_TYPE PON_AUCTION_HEADERS_ALL.MIN_BID_CHANGE_TYPE%TYPE,
409 PAYMENT_TERMS_ID PON_AUCTION_HEADERS_ALL.PAYMENT_TERMS_ID%TYPE,
410 ALLOW_PRICE_ELEMENT VARCHAR2(1),
411 NO_PRICE_QTY_ITEMS_POSSIBLE VARCHAR2(1),
412 START_PRICE VARCHAR2(1),
413 RESERVE_PRICE VARCHAR2(1),
414 TARGET_PRICE VARCHAR2(1),
415 CURRENT_PRICE VARCHAR2(1),
416 BEST_PRICE VARCHAR2(1),
417 PRICE_BREAK VARCHAR2(1),
418 ALLOW_PRICE_DIFFERENTIAL VARCHAR2(1),
419 NUMBER_OF_BIDS NUMBER,
420 AWARD_TYPE_RULE_FIXED_VALUE VARCHAR2(20),
421 CURRENCY_CODE PON_AUCTION_HEADERS_ALL.CURRENCY_CODE%TYPE,
422 RATE_TYPE PON_AUCTION_HEADERS_ALL.RATE_TYPE%TYPE,
423 FIRST_LINE_CLOSE_DATE PON_AUCTION_HEADERS_ALL.FIRST_LINE_CLOSE_DATE%TYPE,
424 STAGGERED_CLOSING_INTERVAL PON_AUCTION_HEADERS_ALL.STAGGERED_CLOSING_INTERVAL%TYPE,
425 PRICE_TIERS_INDICATOR PON_AUCTION_HEADERS_ALL.PRICE_TIERS_INDICATOR%TYPE,
426 QTY_PRICE_TIERS_ENABLED_FLAG PON_AUCTION_HEADERS_ALL.QTY_PRICE_TIERS_ENABLED_FLAG%TYPE
427 );
428
429 --
430 -- This variable will be used access the doctype based bizrule data accross different procedure.
431 -- This will be initialized in the COPY_HEADER_BASIC procedure. Hence, it should be used only after a
432 -- call to that procedure.
433 --
434 g_auc_doctype_rule_data AUC_HDR_TYPE_BASE_DATA;
435
436
437 TYPE NEG_STYLE_DATA IS RECORD (
438
439 style_id pon_auction_headers_all.style_id%type,
440 line_attribute_enabled_flag pon_auction_headers_all.line_attribute_enabled_flag%type,
441 line_mas_enabled_flag pon_auction_headers_all.line_mas_enabled_flag%type,
442 price_element_enabled_flag pon_auction_headers_all.price_element_enabled_flag%type,
443 rfi_line_enabled_flag pon_auction_headers_all.rfi_line_enabled_flag%type,
444 lot_enabled_flag pon_auction_headers_all.lot_enabled_flag%type,
445 group_enabled_flag pon_auction_headers_all.group_enabled_flag%type,
446 large_neg_enabled_flag pon_auction_headers_all.large_neg_enabled_flag%type,
447 hdr_attribute_enabled_flag pon_auction_headers_all.hdr_attribute_enabled_flag%type,
448 neg_team_enabled_flag pon_auction_headers_all.neg_team_enabled_flag%type,
449 proxy_bidding_enabled_flag pon_auction_headers_all.proxy_bidding_enabled_flag%type,
450 power_bidding_enabled_flag pon_auction_headers_all.power_bidding_enabled_flag%type,
451 auto_extend_enabled_flag pon_auction_headers_all.auto_extend_enabled_flag%type,
452 team_scoring_enabled_flag pon_auction_headers_all.team_scoring_enabled_flag%type,
453 qty_price_tiers_enabled_flag pon_auction_headers_all.qty_price_tiers_enabled_flag%type
454
455 );
456
457 -- this variable stores raw style settings (data from style table)
458 g_neg_style_raw NEG_STYLE_DATA;
459
460 -- this variable stores reconciled style settings, it's used to control copy routines
461 g_neg_style_control NEG_STYLE_DATA;
462
463
464 g_price_break_response pon_auction_headers_all.price_break_response%type;
465
466 FUNCTION GET_HDR_CROSS_COPY_DATA ( p_source_auction_header_id IN NUMBER,
467 p_auction_header_id IN NUMBER,
468 p_doctype_id IN NUMBER,
469 p_copy_type IN VARCHAR2,
470 p_source_doctype_id IN NUMBER,
471 p_tp_id IN NUMBER) RETURN AUC_HDR_TYPE_BASE_DATA;
472
473 PROCEDURE LOG_MESSAGE( p_module IN VARCHAR2, p_message IN VARCHAR2) ;
474
475
476 PROCEDURE SET_NEG_STYLE ( p_source_auction_header_id IN NUMBER,
477 p_tp_id IN NUMBER,
478 p_doctype_id IN NUMBER,
479 p_copy_type IN VARCHAR2,
480 p_style_id IN NUMBER);
481
482
483 PROCEDURE REMOVE_LOT_AND_GROUP (p_auction_header_id IN NUMBER,
484 p_lot_enabled IN VARCHAR2,
485 p_group_enabled IN VARCHAR2,
486 p_from_line_number IN NUMBER,
487 p_to_line_number IN NUMBER );
488
489
490 -- Start of comments
491 -- API name : COPY_NEGOTIATION
492 --
493 -- Type : Group
494 --
495 -- Pre-reqs : Negotiation with the given auction_header_id
496 -- (p_source_auction_header_id) must exists in the database
497 --
498 -- Function : Creates a negotiation from copying the negotiation
499 -- with given auction_header_id (p_source_auction_header_id)
500 --
501 -- Parameters:
502 -- IN : p_api_version NUMBER Required
503 -- IN : p_init_msg_list VARCHAR2 DEFAULT FND_API.G_TRUE Optional
504 -- IN : p_is_conc_call VARCHAR2 Required This indicates if the
505 -- procedure is called online or via a concurrent program
506 -- IN : p_source_auction_header_id NUMBER Required, auction_header_id
507 -- of the source negotiation
508 -- IN : p_trading_partner_id NUMBER Required, trading_partner_id of user
509 -- for which the reultant negotiation will be created
510 -- IN : p_trading_partner_contact_id NUMBER Required,
511 -- trading_partner_contact_id of user for which the
512 -- reultant negotiation will be created
513 -- IN : p_language VARCHAR2 Required, language of the resultant negotiation
514 -- IN : p_user_id NUMBER Required, user_id (FND) of the calling user;
515 -- It will used for WHO informations also
516 -- IN : p_doctype_id NUMBER Required, doctype_id of the output negotiation
517 -- IN : p_copy_type VARCHAR2 Required, Type of Copy action;
518 -- It should be one of the following -
519 -- g_new_rnd_copy (NEW_ROUND)
520 -- g_active_neg_copy (COPY_ACTIVE)
521 -- g_draft_neg_copy (COPY_DRAFT)
522 -- g_amend_copy (AMENDMENT)
523 -- g_rfi_to_other_copy (COPY_TO_DOC)
524 -- IN : p_is_award_approval_reqd VARCHAR2 Required, flag to decide if
525 -- award approval is required;
526 -- Permissible values are Y or N
527 --
528 -- IN : p_user_name VARCHAR2 Required, user name of the caller in
529 -- the PON_NEG_TEAM_MEMBERS.USER_NAME format
530 --
531 -- IN : p_mgr_id NUMBER Required, manager id of the caller in
532 -- the PON_NEG_TEAM_MEMBERS.USER_ID format
533 --
534 -- IN : p_retain_clause VARCHAR2 Required, flag to carry forward the
535 -- Contracts related information;
536 -- Permissible values are Y or N
537 -- IN : p_update_clause VARCHAR2 Required, flag to ue/updatedate the Contracts
538 -- related information from library;
539 -- Permissible values are Y or N
540 -- IN : p_retain_attachments VARCHAR2 Required, flag to carry forward the
541 -- attachments related to negotiation;
542 -- Permissible values are Y or N
543 -- IN : p_large_auction_header_id NUMBER Optional, In the case of the
544 -- source auction being a super large one,
545 -- non null value of this parameter
546 -- corresponds to the header id of the new
547 -- auction whose header has been created.
548 -- Non null values of this parameter
549 -- indicate that this procedure is called from
550 -- a concurrent procedure
551 -- IN : p_style_id NUMBER Optional This parameter gives the
552 -- style id of the
553 -- destination auction
554 -- OUT : x_auction_header_id NUMBER, auction_header_id of the
555 -- generated negotiation;
556 --
557 -- OUT : x_document_number NUMBER, document number of the
558 -- generated negotiation;
559 --
560 -- OUT : x_request_id NUMBER, id of the concurrent
561 -- request generated;
562 --
563 -- OUT : x_return_status VARCHAR2, flag to indicate if the copy procedure
564 -- was successful or not; It can have
565 -- following values -
566 -- FND_API.G_RET_STS_SUCCESS (Success)
567 -- FND_API.G_RET_STS_ERROR (Success with warning)
568 -- FND_API.G_RET_STS_UNEXP_ERROR (Failed due to error)
569 -- g_ret_conc_req_submitted (if a concurrent request is submitted)
570 --
571 -- OUT : x_msg_count NUMBER, the number of warning of error messages due
572 -- to this procedure call. It will have following
573 -- values -
574 -- 0 (for Success without warning)
575 -- 1 (for failure with error, check the
576 -- x_return_status if it is error or waring)
577 -- 1 or more (for Success with warning, check the x_return_status)
578 --
579 -- OUT : x_msg_data VARCHAR2, the standard message data output parameter
580 -- used to return the first message of the stack
581 --
582 -- Version : Current version 1.0
583 -- Previous version 1.0
584 -- Initial version 1.0
585 --
586 -- End of comments
587
588
589 PROCEDURE COPY_NEGOTIATION(
590 p_api_version IN NUMBER,
591 p_init_msg_list IN VARCHAR2,
592 p_is_conc_call IN VARCHAR2,
593 p_source_auction_header_id IN NUMBER,
594 p_trading_partner_id IN NUMBER ,
595 p_trading_partner_contact_id IN NUMBER ,
596 p_language IN VARCHAR2,
597 p_user_id IN NUMBER,
598 p_doctype_id IN NUMBER,
599 p_copy_type IN VARCHAR2,
600 p_is_award_approval_reqd IN VARCHAR2,
601 p_user_name IN VARCHAR2,
602 p_mgr_id IN NUMBER,
603 p_retain_clause IN VARCHAR2,
604 p_update_clause IN VARCHAR2,
605 p_retain_attachments IN VARCHAR2,
606 p_large_auction_header_id IN NUMBER,
607 p_style_id IN NUMBER,
608 x_auction_header_id OUT NOCOPY NUMBER,
609 x_document_number OUT NOCOPY VARCHAR2,
610 x_request_id OUT NOCOPY NUMBER,
611 x_return_status OUT NOCOPY VARCHAR2,
612 x_msg_count OUT NOCOPY NUMBER,
613 x_msg_data OUT NOCOPY VARCHAR2
614 )
615 IS
616
617 --
618 -- Remember to change the l_api_version for change in the API
619 --
620 l_api_version CONSTANT NUMBER := 1.0;
621
622
623 --
624 -- define local variables
625 --
626 l_api_name CONSTANT VARCHAR2(30) := 'PON_NEGOTIATION_COPY_GRP';
627 l_procedure_name CONSTANT VARCHAR2(20) := 'COPY_NEGOTIATION';
628
629
630 l_auction_header_id NUMBER := NULL;
631 l_user_id NUMBER;
632 l_tp_id NUMBER;
633 l_tp_contact_id NUMBER;
634
635 l_tp_name HZ_PARTIES.PARTY_NAME%TYPE := NULL;
636 l_tpc_name HZ_PARTIES.PARTY_NAME%TYPE := NULL;
637
638 l_source_doctype_id NUMBER := NULL;
639 l_source_orig_round_id NUMBER := NULL;
640 l_source_prev_round_id NUMBER := NULL;
641 l_source_orig_amend_id NUMBER := NULL;
642
643
644 l_is_award_approval_reqd VARCHAR2(1);
645 l_retain_attachments VARCHAR2(1);
646 l_last_amendment_number NUMBER := 0;
647 l_org_id NUMBER := 0;
648 l_round_number NUMBER := 0;
649 l_source_doctype_grp_name PON_AUC_DOCTYPES.DOCTYPE_GROUP_NAME%TYPE;
650 l_source_auc_orig_code PON_AUCTION_HEADERS_ALL.AUCTION_ORIGINATION_CODE%TYPE;
651 l_source_doc_num PON_AUCTION_HEADERS_ALL.DOCUMENT_NUMBER%TYPE;
652
653 --This variable is used to store the document number of the new auction
654 --that is created by the COPY_HEADER procedure
655 l_new_doc_number PON_AUCTION_HEADERS_ALL.DOCUMENT_NUMBER%TYPE;
656 l_is_amendment VARCHAR2(20);
657 l_error_code_update VARCHAR2(2000);
658 l_error_msg_update VARCHAR2(2000);
659
660 --This variable is a flag that indicates if the source auction is a
661 --super large one or not. It is initialized using a procedure
662 l_is_super_large_auction VARCHAR2(1);
663
664 --This variable is used to store the id of the concurrent request that is
665 --submitted for copying super large auctions. This is initialised to the
666 --return value of FND_REQUEST.submit_request.
667 l_request_id NUMBER := -1;
668
669 --This variable is initialised to the destination auction header id,
670 --p_large_auction_header_id, for valid value of it.
671 --This variable will take a valid value when the COPY_NEGOTIATION procedure
672 --is called by the concurrent procedure
673 l_large_auction_header_id NUMBER := NULL;
674
675 --This variable is used to store the style_id of the source auction.
676 --This is set to the value obtained from the database using an
677 --SQL query
678 l_style_id NUMBER := NULL;
679 --Bug # 5591755
680 l_newround_amendment_count NUMBER;
681 l_locked_auction_header_id NUMBER;
682
683
684 BEGIN
685 -- { Beginning of COPY_NEGOTIATION
686
687 --
688 -- If it is a concurrent call, then make use of
689 -- p_large_auction_header_id. This is the header id of the
690 -- auction whose header has been created.
691 --
692 if p_is_conc_call = FND_API.G_TRUE
693 then
694 LOG_MESSAGE('copy_negotiation','This is a concurrent call...');
695 l_large_auction_header_id := p_large_auction_header_id;
696 end if;
697
698 l_user_id := p_user_id;
699 l_tp_id := p_trading_partner_id;
700 l_tp_contact_id := p_trading_partner_contact_id;
701 l_is_award_approval_reqd := 'Y';
702 l_retain_attachments := 'Y';
703 g_added_inactv_attr_grp_msg := 'N';
704
705 g_return_status := FND_API.G_RET_STS_SUCCESS;
706
707 --
708 --Check for StyleId here
709 --If it is -1, then the styleId of the source auction
710 --has to be retained
711 --
712 if nvl(p_style_id,-1) < 0 then
713 select style_id into l_style_id from pon_auction_headers_all
714 where auction_header_id = p_source_auction_header_id;
715 else
716 l_style_id := p_style_id;
717 end if;
718
719 BEGIN
720 g_debug_mode := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
721 EXCEPTION
722 WHEN OTHERS THEN
723 g_debug_mode := 'N';
724 END;
725
726 LOG_MESSAGE('copy_negotiation','Copy Negotiation is starting');
727 LOG_MESSAGE('copy_negotiation','Parameters: p_copy_type:'||p_copy_type);
728 LOG_MESSAGE('copy_negotiation','Parameters: p_doctype_id:'|| p_doctype_id);
729 LOG_MESSAGE('copy_negotiation','Parameters: p_init_msg_list:'|| p_init_msg_list);
730
731 --
732 -- This API can be called with or without commit option
733 -- Hence it should be able to rollback to the point of the
734 -- transaction where it was started.
735 -- Thus issuing a save point
736 --
737 SAVEPOINT PON_NEGOTIATION_COPY_GRP;
738
739 --
740 -- Standard call to check for call compatibility
741 --
742 IF NOT FND_API.COMPATIBLE_API_CALL ( l_api_version,
743 p_api_version,
744 l_api_name,
745 G_PKG_NAME )
746 THEN
747 RAISE FND_API.G_EXC_ERROR;
748 END IF;
749
750 --
751 -- Initialize message list if p_init_msg_list is set to TRUE
752 -- We initialize the list by default. User should pass proper
753 -- value to p_init_msg_list in case this initialization is not
754 -- wanted
755 --
756 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
757 LOG_MESSAGE('copy_negotiation','Initializing the FND_MSG_PUB stack');
758 FND_MSG_PUB.INITIALIZE;
759 LOG_MESSAGE('copy_negotiation','Clearing the FND_MESSAGE stack');
760 FND_MESSAGE.CLEAR;
761 END IF;
762
763 --
764 -- Initialize APIto return the status as success initially
765 -- Will be setting it to ERRORs in the exception block
766 -- whenever required
767 --
768 x_return_status := FND_API.G_RET_STS_SUCCESS;
769
770 --
771 --Check if the source auction is a
772 --super large one or not.
773 --call the pl/sql procedure IS_SUPER_LARGE_NEG and set
774 --l_is_super_large_auction accordingly
775 --
776 IF PON_LARGE_AUCTION_UTIL_PKG.IS_SUPER_LARGE_NEG(p_source_auction_header_id) THEN
777 l_is_super_large_auction := 'Y';
778 ELSE
779 l_is_super_large_auction := 'N';
780 END IF;
781
782
783 --
784 -- Get the user contact name for the given
785 -- trading_partner_contact_id
786 -- The user contact name will be used in the user name like
787 -- columns in all the tables
788 --
789 BEGIN
790 SELECT USER_NAME
791 INTO l_tpc_name
792 FROM FND_USER
793 WHERE USER_ID = l_user_id;
794 EXCEPTION
795 WHEN NO_DATA_FOUND THEN
796 -- The way I am adding this error may get changed in the future.
797 -- So, please be aware of that
798 FND_MESSAGE.SET_NAME('PON','PON_INVALID_TP_CONTACT_ID');
799 FND_MSG_PUB.ADD;
800 RAISE FND_API.G_EXC_ERROR;
801 END;
802 --
803 -- Get the company name for the given trading_partner_id
804 -- The resultant company name will be used in the trading partner
805 --name column of PON_AUCTION_HEADERS_ALL table
806 --
807 BEGIN
808 SELECT PARTY_NAME
809 INTO l_tp_name
810 FROM HZ_PARTIES
811 WHERE PARTY_ID = l_tp_id;
812 EXCEPTION
813 WHEN NO_DATA_FOUND THEN
814 -- The way I am adding this error may get changed in the future.
815 -- So, please be aware of that
816 FND_MESSAGE.SET_NAME('PON','PON_INVALID_TP_ID');
817 FND_MSG_PUB.ADD;
818 RAISE FND_API.G_EXC_ERROR;
819 END;
820
821 --
822 -- Check if the value of the p_is_award_approval_reqd parameter is
823 -- garbage or not. Set it to default otherwise
824 --
825 IF (p_is_award_approval_reqd <> 'Y') THEN
826 l_is_award_approval_reqd := 'N';
827 END IF;
828
829 --
830 -- Check if the value of the p_is_award_approval_reqd parameter is
831 -- garbage or not. Set it to default otherwise
832 --
833 IF (p_retain_attachments <> 'Y') THEN
834 l_retain_attachments := 'N';
835 END IF;
836
837 --
838 -- Check if the value of the p_copy_type parameter is
839 -- valid or not.
840 -- Raise an error with the PON_INV_COPY_OPTION message
841 -- to the caller in case of invalid p_copy_type parameter
842 --
843 IF (p_copy_type <> g_new_rnd_copy AND
844 p_copy_type <> g_active_neg_copy AND
845 p_copy_type <> g_draft_neg_copy AND
846 p_copy_type <> g_amend_copy AND
847 p_copy_type <> g_rfi_to_other_copy) THEN
848
849 -- The way I am adding this error may get changed in the
850 -- future.
851 -- So, please be aware of that
852 FND_MESSAGE.SET_NAME('PON','PON_INV_COPY_OPTION');
853 FND_MSG_PUB.ADD;
854 RAISE FND_API.G_EXC_ERROR;
855 END IF;
856
857 g_err_loc := '-1. Doing validation checks prior to copy';
858 --
859 -- Bug# 5591755
860 --If creating a header row,
861 --in case of new round or amendment take a DB lock here
862 --
863 IF
864 ((l_is_super_large_auction = 'Y' AND p_is_conc_call = FND_API.G_FALSE) or (l_is_super_large_auction = 'N'))
865 AND
866 (p_copy_type = g_new_rnd_copy OR p_copy_type = g_amend_copy)
867 THEN
868
869 LOG_MESSAGE('copy_negotiation','Locking the header');
870
871 SELECT auction_header_id
872 INTO l_locked_auction_header_id
873 FROM pon_auction_headers_all
874 WHERE auction_header_id = p_source_auction_header_id
875 FOR UPDATE;
876
877
878 -- Check if the there are already new rounds or
879 -- amendments created for this action
880 -- This is for checking the multiple clicks of buttons
881 -- when creating the new rounds or amendments
882 --
883
884 BEGIN
885
886 if p_copy_type = g_new_rnd_copy then
887
888 LOG_MESSAGE('copy_negotiation','Checking for multiple new rounds');
889
890 select count(auction_header_id)
891 into l_newround_amendment_count
892 from pon_auction_headers_all
893 where auction_header_id_prev_round = p_source_auction_header_id;
894 LOG_MESSAGE('copy_negotiation','l_newround_amendment_count : ' || l_newround_amendment_count);
895
896 if l_newround_amendment_count <> 0 then
897
898 LOG_MESSAGE('copy_negotiation','Adding error to the FND stack to indicate parallel new rounds creation error and raising FND_API.G_EXC_ERROR');
899 FND_MESSAGE.SET_NAME('PON','PON_MULTI_NEWRND_OR_AMND_ERR');
900 FND_MSG_PUB.ADD;
901 RAISE FND_API.G_EXC_ERROR;
902
903 end if;
904
905 elsif p_copy_type = g_amend_copy then
906
907 LOG_MESSAGE('copy_negotiation','Checking for multiple new rounds or amendments');
908
909 select count(auction_header_id)
910 into l_newround_amendment_count
911 from pon_auction_headers_all
912 where auction_header_id_prev_amend = p_source_auction_header_id;
913
914 LOG_MESSAGE('copy_negotiation','l_newround_amendment_count : ' || l_newround_amendment_count);
915
916 if l_newround_amendment_count <> 0 then
917
918 LOG_MESSAGE('copy_negotiation','Adding error to the FND stack to indicate parallel amendments creation error and raising FND_API.G_EXC_ERROR;');
919 FND_MESSAGE.SET_NAME('PON','PON_MULTI_NEWRND_OR_AMND_ERR');
920 FND_MSG_PUB.ADD;
921 RAISE FND_API.G_EXC_ERROR;
922
923 end if;
924
925 end if;
926
927 EXCEPTION
928 WHEN FND_API.G_EXC_ERROR THEN
929 ROLLBACK TO PON_NEGOTIATION_COPY_GRP;
930 x_return_status := FND_API.G_RET_STS_ERROR ;
931 FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
932 p_data => x_msg_data
933 );
934
935 LOG_MESSAGE('copy_negotiation','An error in the procedure. Error at:'||g_err_loc || ' :' || SQLCODE || ' :' || SQLERRM);
936 return;
937 END;
938
939 END IF;
940
941
942 --
943 -- Fetch few important attributes of the source negotiation to
944 --create parameters for subsequent procedure calls. The given
945 -- negotiation (p_source_auction_header_id)
946 -- document should exist in the database.
947 -- Raise an error with the PON_CONFIG_NEG_NUMB_INVALID message
948 -- to the caller in case of invalid p_source_auction_header_id
949 -- parameter
950 --
951 BEGIN
952 SELECT A.DOCTYPE_ID, A.AUCTION_HEADER_ID_ORIG_ROUND, A.AUCTION_HEADER_ID_PREV_ROUND,
953 nvl(A.AUCTION_ROUND_NUMBER,1), nvl( A.AMENDMENT_NUMBER,0), A.AUCTION_HEADER_ID_ORIG_AMEND,
954 A.ORG_ID, D.DOCTYPE_GROUP_NAME, D.MESSAGE_SUFFIX, A.AUCTION_ORIGINATION_CODE,A.DOCUMENT_NUMBER,
955 A.PRICE_BREAK_RESPONSE
956 INTO l_source_doctype_id, l_source_orig_round_id, l_source_prev_round_id, l_round_number,
957 l_last_amendment_number, l_source_orig_amend_id, l_org_id, l_source_doctype_grp_name,
958 g_message_suffix, l_source_auc_orig_code,l_source_doc_num, g_price_break_response
959 FROM PON_AUCTION_HEADERS_ALL A, PON_AUC_DOCTYPES D
960 WHERE auction_header_id = p_source_auction_header_id AND D.DOCTYPE_ID = A.DOCTYPE_ID ;
961 EXCEPTION
962 WHEN NO_DATA_FOUND THEN
963 -- The way I am adding this error may get changed in the future.
964 -- So, please be aware of that
965 FND_MESSAGE.SET_NAME('PON','PON_INVALID_NEG_NUM');
966 FND_MSG_PUB.ADD;
967 RAISE FND_API.G_EXC_ERROR;
968 END;
969
970 -- load data for negotiation style
971 SET_NEG_STYLE ( p_source_auction_header_id => p_source_auction_header_id,
972 p_tp_id => p_trading_partner_id,
973 p_doctype_id => p_doctype_id,
974 p_copy_type => p_copy_type,
975 p_style_id => p_style_id);
976
977
978 -- initialize flag
979 g_line_deleted := 'N';
980
981 g_err_loc := '0. Copy is going to be started';
982
983 --
984 --Copy the header here
985 --COPY_HEADER is called if
986 -- (1) It is a super large auction and the header is not yet
987 -- created for it.
988 -- This is the case when the call to COPY_NEGOTIATION is made
989 -- online for a super large auction
990 -- In this case just create a header and return SUCCESS to the
991 -- caller procedure
992 -- OR
993 -- (2) It is an ordinary auction. In this case the
994 -- default/current flow has to be maintained.
995 --
996
997
998
999
1000 if (l_is_super_large_auction = 'Y' AND p_is_conc_call = FND_API.G_FALSE) or (l_is_super_large_auction = 'N')
1001 then
1002 --
1003 -- Get the new auction_header_id for the new negotiation document
1004 -- from
1005 -- the PON_AUCTION_HEADERS_ALL_S sequence
1006 --
1007 SELECT PON_AUCTION_HEADERS_ALL_S.NEXTVAL
1008 INTO l_auction_header_id
1009 FROM DUAL;
1010 --
1011 --Initialise global variables here
1012 --
1013
1014 g_err_loc := '0.1 Going to get Cross Copy Data';
1015
1016 --
1017 -- Call the function to get the Cross Copy related doctype_id based
1018 -- bizrules data
1019 --
1020
1021 g_auc_doctype_rule_data := GET_HDR_CROSS_COPY_DATA (p_source_auction_header_id ,
1022 l_auction_header_id,
1023 p_doctype_id,
1024 p_copy_type,
1025 l_source_doctype_id,
1026 l_tp_id);
1027
1028 LOG_MESSAGE('copy_negotiation','g_auc_doctype_rule_data initialised to:'||
1029 'BID_VISIBILITY_CODE : '||g_auc_doctype_rule_data.BID_VISIBILITY_CODE ||
1030 'BID_SCOPE_CODE : '||g_auc_doctype_rule_data.BID_SCOPE_CODE ||
1031 'CONTRACT_TYPE : '||g_auc_doctype_rule_data.CONTRACT_TYPE||
1032 'PO_START_DATE : '||g_auc_doctype_rule_data.PO_START_DATE ||
1033 'PO_END_DATE : '||g_auc_doctype_rule_data.PO_END_DATE ||
1034 'PO_AGREED_AMOUNT : '||g_auc_doctype_rule_data.PO_AGREED_AMOUNT||
1035 'MANUAL_CLOSE_FLAG : '||g_auc_doctype_rule_data.MANUAL_CLOSE_FLAG ||
1036 'MANUAL_EXTEND_FLAG : '||g_auc_doctype_rule_data.MANUAL_EXTEND_FLAG ||
1037 'SHOW_BIDDER_NOTES : '||g_auc_doctype_rule_data.SHOW_BIDDER_NOTES ||
1038 'MULTIPLE_ROUNDS_FLAG : '||g_auc_doctype_rule_data.MULTIPLE_ROUNDS_FLAG ||
1039 'AUTO_EXTEND_FLAG : '||g_auc_doctype_rule_data.AUTO_EXTEND_FLAG||
1040 'AUTO_EXTEND_ALL_LINES_FLAG : '||g_auc_doctype_rule_data.AUTO_EXTEND_ALL_LINES_FLAG ||
1041 'AUTO_EXTEND_MIN_TRIGGER_RANK : '||g_auc_doctype_rule_data.AUTO_EXTEND_MIN_TRIGGER_RANK ||
1042 'AUTO_EXTEND_DURATION : '||g_auc_doctype_rule_data.AUTO_EXTEND_DURATION||
1043 'AUTO_EXTEND_TYPE_FLAG : '||g_auc_doctype_rule_data.AUTO_EXTEND_TYPE_FLAG ||
1044 'GLOBAL_AGREEMENT_FLAG : '||g_auc_doctype_rule_data.GLOBAL_AGREEMENT_FLAG ||
1045 'PO_MIN_REL_AMOUNT : '||g_auc_doctype_rule_data.PO_MIN_REL_AMOUNT ||
1046 'EVENT_ID : '||g_auc_doctype_rule_data.EVENT_ID||
1047 'EVENT_TITLE : '||g_auc_doctype_rule_data.EVENT_TITLE ||
1048 'BID_RANKING : '||g_auc_doctype_rule_data.BID_RANKING ||
1049 'BILL_TO_LOCATION_ID : '||g_auc_doctype_rule_data.BILL_TO_LOCATION_ID ||
1050 'SHIP_TO_LOCATION_ID : '||g_auc_doctype_rule_data.SHIP_TO_LOCATION_ID ||
1051 'CARRIER_CODE : '||g_auc_doctype_rule_data.CARRIER_CODE||
1052 'FREIGHT_TERMS_CODE : '||g_auc_doctype_rule_data.FREIGHT_TERMS_CODE ||
1053 'FOB_CODE : '||g_auc_doctype_rule_data.FOB_CODE||
1054 'BID_LIST_TYPE : '||g_auc_doctype_rule_data.BID_LIST_TYPE ||
1055 'BID_FREQUENCY_CODE : '||g_auc_doctype_rule_data.BID_FREQUENCY_CODE ||
1056 'FULL_QUANTITY_BID_CODE : '||g_auc_doctype_rule_data.FULL_QUANTITY_BID_CODE ||
1057 'RANK_INDICATOR : '||g_auc_doctype_rule_data.RANK_INDICATOR ||
1058 'SHOW_BIDDER_SCORES : '||g_auc_doctype_rule_data.SHOW_BIDDER_SCORES ||
1059 'PF_TYPE_ALLOWED : '||g_auc_doctype_rule_data.PF_TYPE_ALLOWED ||
1060 'PRICE_DRIVEN_AUCTION_FLAG : '||g_auc_doctype_rule_data.PRICE_DRIVEN_AUCTION_FLAG ||
1061 'MIN_BID_CHANGE_TYPE : '||g_auc_doctype_rule_data.MIN_BID_CHANGE_TYPE ||
1062 'PAYMENT_TERMS_ID : '||g_auc_doctype_rule_data.PAYMENT_TERMS_ID||
1063 'ALLOW_PRICE_ELEMENT : '||g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT ||
1064 'NO_PRICE_QTY_ITEMS_POSSIBLE : '||g_auc_doctype_rule_data.NO_PRICE_QTY_ITEMS_POSSIBLE ||
1065 'START_PRICE : '||g_auc_doctype_rule_data.START_PRICE ||
1066 'RESERVE_PRICE : '||g_auc_doctype_rule_data.RESERVE_PRICE ||
1067 'TARGET_PRICE : '||g_auc_doctype_rule_data.TARGET_PRICE||
1068 'CURRENT_PRICE : '||g_auc_doctype_rule_data.CURRENT_PRICE ||
1069 'PRICE_BREAK : '||g_auc_doctype_rule_data.PRICE_BREAK ||
1070 'ALLOW_PRICE_DIFFERENTIAL : '||g_auc_doctype_rule_data.ALLOW_PRICE_DIFFERENTIAL||
1071 'NUMBER_OF_BIDS : '||g_auc_doctype_rule_data.NUMBER_OF_BIDS ||
1072 'AWARD_TYPE_RULE_FIXED_VALUE : '||g_auc_doctype_rule_data.AWARD_TYPE_RULE_FIXED_VALUE ||
1073 'CURRENCY_CODE : '||g_auc_doctype_rule_data.CURRENCY_CODE ||
1074 'RATE_TYPE : '||g_auc_doctype_rule_data.RATE_TYPE );
1075
1076 g_err_loc := '0.2 Header Copy is going to be started';
1077 LOG_MESSAGE('copy_negotiation','Copy Header is starting');
1078
1079 COPY_HEADER (
1080 p_source_auction_header_id => p_source_auction_header_id,
1081 p_auction_header_id => l_auction_header_id,
1082 p_tp_id => l_tp_id,
1083 p_tp_contact_id => l_tp_contact_id,
1084 p_tp_name => l_tp_name,
1085 p_tpc_name => l_tpc_name,
1086 p_user_id => l_user_id,
1087 p_source_doctype_id => l_source_doctype_id,
1088 p_doctype_id => p_doctype_id,
1089 p_copy_type => p_copy_type,
1090 p_org_id => l_org_id,
1091 p_is_award_approval_reqd => l_is_award_approval_reqd,
1092 p_retain_clause => p_retain_clause,
1093 p_update_clause => p_update_clause,
1094 p_retain_attachments => l_retain_attachments,
1095 p_source_orig_round_id => l_source_orig_round_id,
1096 p_source_prev_round_id => l_source_prev_round_id,
1097 p_round_number => l_round_number,
1098 p_last_amendment_number => l_last_amendment_number,
1099 p_source_orig_amend_id => l_source_orig_amend_id,
1100 p_source_doctype_grp_name => l_source_doctype_grp_name,
1101 p_source_auc_orig_code => l_source_auc_orig_code,
1102 x_document_number => l_new_doc_number
1103 );
1104 x_document_number := l_new_doc_number;
1105 g_err_loc := '2. After Copying Header';
1106
1107 LOG_MESSAGE('copy_negotiation','Copied the header with document number : '||l_new_doc_number);
1108 --
1109 -- if it is a super large auction, then initiate a concurrent
1110 -- request, update the PON_AUCTION_HEADERS_ALL and return with a
1111 -- CONC_REQ_SUBMITTED status
1112 --
1113 if (l_is_super_large_auction = 'Y') then
1114
1115 LOG_MESSAGE('copy_negotiation','Trying to submit a concurrent request ');
1116
1117 l_request_id := FND_REQUEST.submit_request(
1118 application => 'PON',
1119 program => 'PON_COPY_NEGOTIATIONS',
1120 description => null,
1121 start_time => null,
1122 sub_request => FALSE,
1123 argument1 => to_char(p_api_version),
1124 argument2 => p_init_msg_list,
1125 argument3 => to_char(p_source_auction_header_id),
1126 argument4 => to_char(p_trading_partner_id),
1127 argument5 => to_char(p_trading_partner_contact_id),
1128 argument6 => p_language,
1129 argument7 => to_char(p_user_id),
1130 argument8 => to_char(p_doctype_id),
1131 argument9 => p_copy_type,
1132 argument10 => p_is_award_approval_reqd,
1133 argument11 => p_user_name,
1134 argument12 => to_char(p_mgr_id),
1135 argument13 => p_retain_clause,
1136 argument14 => p_update_clause,
1137 argument15 => p_retain_attachments,
1138 argument16 => to_char(l_auction_header_id),
1139 argument17 => to_char(l_style_id));
1140
1141 g_err_loc := '3. Before submitting the concurrent request';
1142 --update the pon_auction_headers_all table
1143 --
1144 update pon_auction_headers_all set
1145 request_id = l_request_id,
1146 requested_by = p_user_id,
1147 request_date = sysdate,
1148 last_update_date = sysdate,
1149 last_updated_by = p_user_id,
1150 complete_flag = 'N'
1151 where auction_header_id = l_auction_header_id;
1152 --
1153 --Inform the caller that the source auction is a
1154 --super large one
1155 --
1156 x_return_status := G_RET_CONC_REQ_SUBMITTED;
1157 x_request_id := l_request_id;
1158
1159 LOG_MESSAGE('copy_negotiation','Submitted a concurrent request with id : '||l_request_id);
1160
1161 end if;
1162
1163 x_auction_header_id := l_auction_header_id;
1164 --
1165 --Header is successfully created.
1166 --Return this new auction header id to the caller
1167 --
1168
1169 end if;
1170
1171
1172 if (l_is_super_large_auction = 'Y' AND p_is_conc_call = FND_API.G_TRUE) or l_is_super_large_auction = 'N' then
1173 -- control comes here if
1174 -- (1) It is a super large auction and the
1175 -- it is a call from concurrent procedure where we have the
1176 -- header for the new auction already created in
1177 -- which case we resume the task of copying
1178 -- the lines, etc. of the super large auction.
1179 -- OR
1180 -- (2) It is an ordinary auction. In this case the
1181 -- default/current flow has to be maintained.
1182 --
1183 if l_is_super_large_auction = 'Y' then
1184 --This block is entered in the case of a cocnurrent call
1185 l_auction_header_id := l_large_auction_header_id;
1186 x_auction_header_id := l_large_auction_header_id;
1187 --
1188 --Initialise global variables here
1189 --
1190
1191 g_err_loc := '1.1 Going to get Cross Copy Data';
1192
1193 --
1194 -- Call the function to get the Cross Copy related doctype_id based
1195 -- bizrules data
1196 --
1197 LOG_MESSAGE('copy_negotiation','Initialising g_auc_doctype_rule_data');
1198 g_auc_doctype_rule_data := GET_HDR_CROSS_COPY_DATA (p_source_auction_header_id ,
1199 l_auction_header_id,
1200 p_doctype_id,
1201 p_copy_type,
1202 l_source_doctype_id,
1203 l_tp_id);
1204 LOG_MESSAGE('copy_negotiation','g_auc_doctype_rule_data initialised to:'||
1205 'BID_VISIBILITY_CODE : '||g_auc_doctype_rule_data.BID_VISIBILITY_CODE ||
1206 'BID_SCOPE_CODE : '||g_auc_doctype_rule_data.BID_SCOPE_CODE ||
1207 'CONTRACT_TYPE : '||g_auc_doctype_rule_data.CONTRACT_TYPE||
1208 'PO_START_DATE : '||g_auc_doctype_rule_data.PO_START_DATE ||
1209 'PO_END_DATE : '||g_auc_doctype_rule_data.PO_END_DATE ||
1210 'PO_AGREED_AMOUNT : '||g_auc_doctype_rule_data.PO_AGREED_AMOUNT||
1211 'MANUAL_CLOSE_FLAG : '||g_auc_doctype_rule_data.MANUAL_CLOSE_FLAG ||
1212 'MANUAL_EXTEND_FLAG : '||g_auc_doctype_rule_data.MANUAL_EXTEND_FLAG ||
1213 'SHOW_BIDDER_NOTES : '||g_auc_doctype_rule_data.SHOW_BIDDER_NOTES ||
1214 'MULTIPLE_ROUNDS_FLAG : '||g_auc_doctype_rule_data.MULTIPLE_ROUNDS_FLAG ||
1215 'AUTO_EXTEND_FLAG : '||g_auc_doctype_rule_data.AUTO_EXTEND_FLAG||
1216 'AUTO_EXTEND_ALL_LINES_FLAG : '||g_auc_doctype_rule_data.AUTO_EXTEND_ALL_LINES_FLAG ||
1217 'AUTO_EXTEND_MIN_TRIGGER_RANK : '||g_auc_doctype_rule_data.AUTO_EXTEND_MIN_TRIGGER_RANK ||
1218 'AUTO_EXTEND_DURATION : '||g_auc_doctype_rule_data.AUTO_EXTEND_DURATION||
1219 'AUTO_EXTEND_TYPE_FLAG : '||g_auc_doctype_rule_data.AUTO_EXTEND_TYPE_FLAG ||
1220 'GLOBAL_AGREEMENT_FLAG : '||g_auc_doctype_rule_data.GLOBAL_AGREEMENT_FLAG ||
1221 'PO_MIN_REL_AMOUNT : '||g_auc_doctype_rule_data.PO_MIN_REL_AMOUNT ||
1222 'EVENT_ID : '||g_auc_doctype_rule_data.EVENT_ID||
1223 'EVENT_TITLE : '||g_auc_doctype_rule_data.EVENT_TITLE ||
1224 'BID_RANKING : '||g_auc_doctype_rule_data.BID_RANKING ||
1225 'BILL_TO_LOCATION_ID : '||g_auc_doctype_rule_data.BILL_TO_LOCATION_ID ||
1226 'SHIP_TO_LOCATION_ID : '||g_auc_doctype_rule_data.SHIP_TO_LOCATION_ID ||
1227 'CARRIER_CODE : '||g_auc_doctype_rule_data.CARRIER_CODE||
1228 'FREIGHT_TERMS_CODE : '||g_auc_doctype_rule_data.FREIGHT_TERMS_CODE ||
1229 'FOB_CODE : '||g_auc_doctype_rule_data.FOB_CODE||
1230 'BID_LIST_TYPE : '||g_auc_doctype_rule_data.BID_LIST_TYPE ||
1231 'BID_FREQUENCY_CODE : '||g_auc_doctype_rule_data.BID_FREQUENCY_CODE ||
1232 'FULL_QUANTITY_BID_CODE : '||g_auc_doctype_rule_data.FULL_QUANTITY_BID_CODE ||
1233 'RANK_INDICATOR : '||g_auc_doctype_rule_data.RANK_INDICATOR ||
1234 'SHOW_BIDDER_SCORES : '||g_auc_doctype_rule_data.SHOW_BIDDER_SCORES ||
1235 'PF_TYPE_ALLOWED : '||g_auc_doctype_rule_data.PF_TYPE_ALLOWED ||
1236 'PRICE_DRIVEN_AUCTION_FLAG : '||g_auc_doctype_rule_data.PRICE_DRIVEN_AUCTION_FLAG ||
1237 'MIN_BID_CHANGE_TYPE : '||g_auc_doctype_rule_data.MIN_BID_CHANGE_TYPE ||
1238 'PAYMENT_TERMS_ID : '||g_auc_doctype_rule_data.PAYMENT_TERMS_ID||
1239 'ALLOW_PRICE_ELEMENT : '||g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT ||
1240 'NO_PRICE_QTY_ITEMS_POSSIBLE : '||g_auc_doctype_rule_data.NO_PRICE_QTY_ITEMS_POSSIBLE ||
1241 'START_PRICE : '||g_auc_doctype_rule_data.START_PRICE ||
1242 'RESERVE_PRICE : '||g_auc_doctype_rule_data.RESERVE_PRICE ||
1243 'TARGET_PRICE : '||g_auc_doctype_rule_data.TARGET_PRICE||
1244 'CURRENT_PRICE : '||g_auc_doctype_rule_data.CURRENT_PRICE ||
1245 'PRICE_BREAK : '||g_auc_doctype_rule_data.PRICE_BREAK ||
1246 'ALLOW_PRICE_DIFFERENTIAL : '||g_auc_doctype_rule_data.ALLOW_PRICE_DIFFERENTIAL||
1247 'NUMBER_OF_BIDS : '||g_auc_doctype_rule_data.NUMBER_OF_BIDS ||
1248 'AWARD_TYPE_RULE_FIXED_VALUE : '||g_auc_doctype_rule_data.AWARD_TYPE_RULE_FIXED_VALUE ||
1249 'CURRENCY_CODE : '||g_auc_doctype_rule_data.CURRENCY_CODE ||
1250 'RATE_TYPE : '||g_auc_doctype_rule_data.RATE_TYPE );
1251
1252 end if;
1253
1254 LOG_MESSAGE('copy negotiation','Calling COPY_LINES_AND_CHILDREN for '||l_auction_header_id);
1255
1256 COPY_LINES_AND_CHILDREN(
1257 p_api_version => p_api_version,
1258 p_init_msg_list => p_init_msg_list,
1259 p_source_auction_header_id => p_source_auction_header_id,
1260 p_destination_auction_hdr_id => l_auction_header_id ,
1261 p_trading_partner_id => p_trading_partner_id,
1262 p_trading_partner_contact_id => p_trading_partner_contact_id,
1263 p_language => p_language,
1264 p_user_id => p_user_id,
1265 p_doctype_id => p_doctype_id,
1266 p_copy_type => p_copy_type,
1267 p_is_award_approval_reqd => p_is_award_approval_reqd,
1268 p_user_name => p_user_name,
1269 p_mgr_id => p_mgr_id,
1270 p_retain_clause => p_retain_clause,
1271 p_update_clause => p_update_clause,
1272 p_retain_attachments => p_retain_attachments,
1273 p_tpc_name => l_tpc_name,
1274 p_tp_name => l_tp_name,
1275 p_source_doctype_id => l_source_doctype_id,
1276 p_org_id => l_org_id,
1277 p_round_number => l_round_number,
1278 p_last_amendment_number => l_last_amendment_number,
1279 p_source_doc_num => l_source_doc_num,
1280 p_style_id => l_style_id,
1281 x_return_status => x_return_status,
1282 x_msg_count => x_msg_count,
1283 x_msg_data => x_msg_data
1284 );
1285 --
1286 -- Set the COMPLETE_FLAG for this acution in PON_AUCTION_HEADERS_ALL
1287 -- to 'Y' since the auction has been copied successfully
1288 --
1289 update pon_auction_headers_all set
1290 complete_flag = 'Y'
1291 where auction_header_id = l_auction_header_id;
1292
1293 end if;
1294
1295 --
1296 -- Commit the work
1297 --
1298 LOG_MESSAGE('copy negotiation','Committing the work from COPY_NEGOTIATION before returning...');
1299 COMMIT;
1300
1301
1302 --
1303 -- Bug# 5591755
1304 --This exception block is to release the lock put on the row
1305 --in pon_auction_headers_all for p_auction_header_id
1306 EXCEPTION
1307 WHEN OTHERS THEN
1308 ROLLBACK TO PON_NEGOTIATION_COPY_GRP;
1309 x_return_status := FND_API.G_RET_STS_ERROR;
1310 FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
1311 p_data => x_msg_data
1312 );
1313 LOG_MESSAGE('copy_negotiation','An error in the procedure. Error at:'||g_err_loc || ' :' || SQLCODE || ' :' || SQLERRM);
1314 return;
1315
1316 END;
1317 --} End of COPY_NEGOTIATION
1318
1319 PROCEDURE COPY_HEADER ( p_source_auction_header_id IN NUMBER,
1320 p_auction_header_id IN NUMBER,
1321 p_tp_id IN NUMBER,
1322 p_tp_contact_id IN NUMBER,
1323 p_tp_name IN VARCHAR2,
1324 p_tpc_name IN VARCHAR2,
1325 p_user_id IN NUMBER,
1326 p_source_doctype_id IN NUMBER,
1327 p_doctype_id IN NUMBER,
1328 p_copy_type IN VARCHAR2,
1329 p_org_id IN NUMBER,
1330 p_is_award_approval_reqd IN VARCHAR2,
1331 p_retain_clause IN VARCHAR2,
1332 p_update_clause IN VARCHAR2,
1333 p_retain_attachments IN VARCHAR2,
1334 p_source_orig_round_id IN NUMBER,
1335 p_source_prev_round_id IN NUMBER,
1336 p_round_number IN NUMBER,
1337 p_last_amendment_number IN NUMBER,
1338 p_source_orig_amend_id IN NUMBER,
1339
1340 p_source_doctype_grp_name IN VARCHAR2,
1341 p_source_auc_orig_code IN VARCHAR2,
1342 x_document_number OUT NOCOPY VARCHAR2
1343 )
1344 IS
1345 l_contracts_doctype VARCHAR2(50);
1346 l_contract_type PON_AUCTION_HEADERS_ALL.CONTRACT_TYPE%TYPE;
1347 l_document_number PON_AUCTION_HEADERS_ALL.DOCUMENT_NUMBER%TYPE;
1348 l_return_value NUMBER;
1349 BEGIN --{ Start of COPY_HEADER
1350
1351 --
1352 -- Create the negotiation header data first
1353 --
1354 g_err_loc := '1.0 Going to Start Copy Basic';
1355 COPY_HEADER_BASIC (p_source_auction_header_id ,
1356 p_auction_header_id,
1357 p_tp_id,
1358 p_tp_contact_id,
1359 p_tp_name,
1360 p_tpc_name,
1361 p_user_id,
1362 p_source_doctype_id,
1363 p_doctype_id,
1364 p_copy_type,
1365 p_is_award_approval_reqd,
1366 p_retain_attachments,
1367 p_retain_clause,
1368 p_source_orig_round_id,
1369 p_source_prev_round_id,
1370 p_round_number,
1371 p_last_amendment_number,
1372 p_source_orig_amend_id,
1373 p_source_doctype_grp_name,
1374 p_source_auc_orig_code,
1375 l_contracts_doctype,
1376 l_contract_type,
1377 l_document_number);
1378
1379 x_document_number := l_document_number;
1380
1381 g_err_loc := '1.11 Going to create discussions record';
1382 l_return_value := PON_THREAD_DISC_PKG.insert_pon_discussions(
1383 p_entity_name => 'PON_AUCTION_HEADERS_ALL',
1384 p_entity_pk1 => p_auction_header_id,
1385 p_entity_pk2 => '',
1386 p_entity_pk3 => '',
1387 p_entity_pk4 => '',
1388 p_entity_pk5 => '',
1389 p_subject => p_auction_header_id,
1390 p_language_code => userenv('LANG'),
1391 p_party_id => p_tp_contact_id,
1392 p_validation_class => 'oracle.apps.pon.auctions.discussions.NegDiscussionValidation'
1393 );
1394 g_err_loc := '1.12 Done create discussions record';
1395
1396 --
1397 -- Copy Section related information for Header Requirement
1398 -- only if the style allows
1399 --
1400 if g_neg_style_raw.HDR_ATTRIBUTE_ENABLED_FLAG = 'Y'
1401 then
1402 COPY_SECTION ( p_source_auction_header_id => p_source_auction_header_id,
1403 p_auction_header_id => p_auction_header_id,
1404 p_tp_id => p_tp_id,
1405 p_tp_contact_id => p_tp_contact_id,
1406 p_tp_name => p_tp_name,
1407 p_tpc_name => p_tpc_name,
1408 p_user_id => p_user_id,
1409 p_source_doctype_id => p_source_doctype_id,
1410 p_doctype_id => p_doctype_id,
1411 p_copy_type => p_copy_type
1412 );
1413 end if;
1414
1415 --
1416 -- Create the Contracts and Attachments data
1417 --
1418 g_err_loc := '1.13 Going to Start COPY_CONTRACTS_ATTACHMENTS';
1419 COPY_CONTRACTS_ATTACHMENTS (p_source_auction_header_id ,
1420 p_auction_header_id,
1421 p_tp_id,
1422 p_tp_contact_id,
1423 p_tp_name,
1424 p_tpc_name,
1425 p_user_id,
1426 p_source_doctype_id,
1427 p_doctype_id,
1428 p_copy_type,
1429 p_org_id,
1430 p_is_award_approval_reqd,
1431 p_retain_clause,
1432 p_update_clause,
1433 p_retain_attachments,
1434 l_contracts_doctype,
1435 l_contract_type,
1436 l_document_number);
1437
1438 END;--} End of COPY_HEADER
1439
1440 PROCEDURE COPY_HEADER_BASIC (p_source_auction_header_id IN NUMBER,
1441 p_auction_header_id IN NUMBER,
1442 p_tp_id IN NUMBER,
1443 p_tp_contact_id IN NUMBER,
1444
1445 p_tp_name IN VARCHAR2,
1446 p_tpc_name IN VARCHAR2,
1447 p_user_id IN NUMBER,
1448 p_source_doctype_id IN NUMBER,
1449 p_doctype_id IN NUMBER,
1450 p_copy_type IN VARCHAR2,
1451 p_is_award_approval_reqd IN VARCHAR2,
1452 p_retain_attachments IN VARCHAR2,
1453 p_retain_clause IN VARCHAR2,
1454 p_source_orig_round_id IN NUMBER,
1455 p_source_prev_round_id IN NUMBER,
1456 p_round_number IN NUMBER,
1457 p_last_amendment_number IN NUMBER,
1458 p_source_orig_amend_id IN NUMBER,
1459 p_source_doctype_grp_name IN VARCHAR2,
1460 p_source_auc_orig_code IN VARCHAR2,
1461 x_contracts_doctype OUT NOCOPY VARCHAR2,
1462 x_contract_type OUT NOCOPY VARCHAR2,
1463 x_document_number OUT NOCOPY VARCHAR2
1464 )
1465 IS
1466 l_is_succession CHAR(1);
1467 l_source_doc_number VARCHAR2(20) := NULL;
1468 l_source_doc_id NUMBER := NULL;
1469 l_source_doc_msg_app VARCHAR2(4) := NULL;
1470 l_source_doc_msg VARCHAR2(30) := NULL;
1471 l_source_doc_msg_suffix VARCHAR2(2) := NULL;
1472 l_source_doc_line_msg VARCHAR2(30) := NULL;
1473 l_source_doc_internal_name VARCHAR2(50) := NULL;
1474
1475 l_auction_header_id_orig_round NUMBER;
1476 l_auction_header_id_prev_round NUMBER;
1477 l_auction_round_number NUMBER;
1478 l_last_amendment_number NUMBER;
1479 l_copy_buyer_id VARCHAR2(1);
1480 l_document_number PON_AUCTION_HEADERS_ALL.DOCUMENT_NUMBER%TYPE;
1481 l_contract_terms_exisits VARCHAR2(2);
1482 l_contract_doctype VARCHAR2(50);
1483 l_is_award_approval_reqd VARCHAR2(2);
1484 l_destination_doctype_grp_name PON_AUC_DOCTYPES.DOCTYPE_GROUP_NAME%TYPE;
1485
1486 l_disp_best_price_blind VARCHAR2(1) := NULL;
1487 l_val2 VARCHAR2(300) := NULL;
1488 l_val3 VARCHAR2(300) := NULL;
1489 l_val4 VARCHAR2(300) := NULL;
1490
1491 t_record AUC_HDR_TYPE_BASE_DATA;
1492
1493 l_MinBidPriceVal1 VARCHAR2(1) := 'N';
1494 l_MinBidPriceVal2 VARCHAR2(240) := NULL;
1495 l_MinBidPriceVal3 VARCHAR2(1) := NULL;
1496 l_MinBidPriceVal4 VARCHAR2(240) := NULL;
1497
1498 BEGIN --{ Start of COPY_HEADER_BASIC
1499
1500 l_is_succession := 'N'; -- By default we assume that it is a copy
1501 l_copy_buyer_id := 'N';
1502
1503 --
1504 -- Decide if it is a succession case
1505 --
1506 IF ( p_copy_type = g_amend_copy OR
1507 (p_copy_type = g_new_rnd_copy AND p_source_doctype_id = p_doctype_id)
1508 )
1509 THEN
1510 l_is_succession := 'Y';
1511 END IF;
1512
1513 --
1514 -- Carry the buyer_id for Amendment, Same doctype New Round and
1515 -- Draft Copy. Draft copy should not carry it as it does not carry the Requisition data too
1516 --
1517 IF ( l_is_succession = 'Y' ) THEN
1518 l_copy_buyer_id := 'Y';
1519 END IF;
1520
1521 IF ( p_copy_type = g_rfi_to_other_copy) THEN
1522 SELECT INTERNAL_NAME, MESSAGE_SUFFIX , DOCUMENT_NUMBER
1523 INTO l_source_doc_internal_name, l_source_doc_msg_suffix,
1524 l_source_doc_number
1525 FROM PON_AUC_DOCTYPES P, PON_AUCTION_HEADERS_ALL A
1526 WHERE P.DOCTYPE_ID = A.DOCTYPE_ID
1527 AND AUCTION_HEADER_ID = p_source_auction_header_id;
1528
1529 LOG_MESSAGE('copy_negotiation','1.1.0.1 --- Starting Copy Header Basic. l_source_doc_msg_suffix:'||l_source_doc_msg_suffix);
1530
1531 l_source_doc_msg := 'PON_AUCTS_DOC_NUMBER_'||l_source_doc_msg_suffix;
1532 l_source_doc_id := p_source_auction_header_id;
1533 l_source_doc_line_msg := 'PON_AUCTS_LINE';
1534 l_source_doc_msg_app := 'PON';
1535
1536 END IF;
1537
1538 --
1539 -- Will keep all the SOURCE DOC related attribute for all cross copy documents
1540 -- driven from Start New Round option of Negotiation Summary page
1541 --
1542 IF ( p_copy_type = g_new_rnd_copy AND p_doctype_id <> p_source_doctype_id) THEN
1543 SELECT INTERNAL_NAME, MESSAGE_SUFFIX , DOCUMENT_NUMBER
1544 INTO l_source_doc_internal_name, l_source_doc_msg_suffix,
1545 l_source_doc_number
1546 FROM PON_AUC_DOCTYPES P, PON_AUCTION_HEADERS_ALL A
1547 WHERE P.DOCTYPE_ID = A.DOCTYPE_ID
1548 AND AUCTION_HEADER_ID = p_source_auction_header_id;
1549
1550 LOG_MESSAGE('copy_negotiation','1.1.0.2 --- Starting Copy Header Basic. l_source_doc_msg_suffix:'||l_source_doc_msg_suffix);
1551
1552 l_source_doc_msg := 'PON_AUCTS_DOC_NUMBER_'||l_source_doc_msg_suffix;
1553 l_source_doc_id := p_source_auction_header_id;
1554 l_source_doc_line_msg := 'PON_AUCTS_LINE';
1555 l_source_doc_msg_app := 'PON';
1556 END IF;
1557
1558 -- Populate the global variables to be used in the lines
1559 g_source_doc_id := l_source_doc_id;
1560 g_source_doc_num := l_source_doc_number;
1561 g_source_doc_int_name := l_source_doc_internal_name;
1562
1563 --
1564 -- Set the AUCTION_HEADER_ID_ORIG_ROUND
1565 -- Logic -
1566 -- IF <NEW ROUND CREATION> THEN
1567 -- IF <LAST ROUND HAS NO ORIG ROUND> THEN
1568 -- IF <LAST ROUND HAS AMENDMENT> THEN
1569 -- AUCTION_HEADER_ID_ORIG_ROUND =
1570 -- AUCTION_HEADER_ID_ORIG_AMEND
1571 -- ELSE
1572 -- AUCTION_HEADER_ID_ORIG_ROUND =
1573 -- SOURCE AUCTION_HEADER_ID
1574 -- END
1575 -- ELSE
1576 -- AUCTION_HEADER_ID_ORIG_ROUND =
1577 -- SOURCE AUCTION_HEADER_ID_ORIG_ROUND
1578 -- END
1579 -- ELSE IF <AMENDMENT CREATION> THEN
1580 -- AUCTION_HEADER_ID_ORIG_ROUND =
1581 -- SOURCE AUCTION_HEADER_ID_ORIG_ROUND
1582 -- ELSE
1583 -- AUCTION_HEADER_ID_ORIG_ROUND = NULL;
1584 -- END
1585 --
1586
1587 IF (p_copy_type = g_new_rnd_copy ) THEN
1588 LOG_MESSAGE('copy_negotiation','1.1.1 --- inside NEW_ROUND');
1589 IF (p_source_orig_round_id IS NULL) THEN
1590 --
1591 -- Check if first round negotiation has been amended
1592 --
1593 LOG_MESSAGE('copy_negotiation','1.1.1 --- inside NEW_ROUND.1');
1594
1595 IF (p_last_amendment_number > 0) THEN
1596 l_auction_header_id_orig_round := p_source_orig_amend_id;
1597 ELSE
1598 l_auction_header_id_orig_round := p_source_auction_header_id;
1599 END IF;
1600 LOG_MESSAGE('copy_negotiation','1.1.1.1 --- inside NEW_ROUND.2:'||to_char(l_auction_header_id_orig_round));
1601 ELSE
1602 l_auction_header_id_orig_round := p_source_orig_round_id;
1603 END IF;
1604
1605 --
1606 -- Set the prev_round to source auction header id
1607 --
1608 l_auction_header_id_prev_round := p_source_auction_header_id;
1609 --
1610 -- increase the round number
1611 --
1612 l_auction_round_number := p_round_number + 1;
1613
1614 -- default the amendment number
1615 l_last_amendment_number := 0;
1616
1617 ELSIF (p_copy_type = g_amend_copy) THEN
1618 l_auction_header_id_orig_round := p_source_orig_round_id;
1619 --
1620 -- For amendment keep the old prev round id
1621 --
1622 l_auction_header_id_prev_round := p_source_prev_round_id;
1623 --
1624 -- For amendment keep the old round number
1625 --
1626 l_auction_round_number := p_round_number;
1627
1628 -- increase the amendment number
1629 l_last_amendment_number := p_last_amendment_number +1;
1630 ELSE
1631 --
1632 -- Set it to NULL for all other process i.e. Draft Copy, Copy From RFI
1633 -- to Auction/RFQ, Active Negotiation Copy and Cross Copy
1634 --
1635 -- ER:5092239 :- the orig_round column will have same value as auction_header_id during copy
1636 l_auction_header_id_orig_round := p_auction_header_id;
1637 l_auction_header_id_prev_round := NULL;
1638 --
1639 -- For all other cases make it to 1
1640 --
1641 l_auction_round_number := 1;
1642
1643 -- default the amendment number
1644 l_last_amendment_number := 0;
1645
1646 END IF;
1647
1648 --
1649 -- Formulate the Document Number
1650 --
1651 LOG_MESSAGE('copy_negotiation','1.1.1 l_auction_round_number is:'||l_auction_round_number||' and p_copy_type:'||p_copy_type);
1652 LOG_MESSAGE('copy_negotiation','1.1.2 l_auction_header_id_orig_round is:'|| l_auction_header_id_orig_round ||' and l_last_amendment_number:'|| l_last_amendment_number);
1653
1654 -- If multiround document
1655 IF (l_auction_round_number IS NOT NULL AND l_auction_round_number > 1) THEN
1656 l_document_number := l_auction_header_id_orig_round||'-'||l_auction_round_number;
1657 LOG_MESSAGE('copy_negotiation','1.1.2 -- in 1, doc_number:'||l_document_number);
1658 IF ( p_copy_type = g_amend_copy ) THEN
1659 l_document_number := l_document_number||','||l_last_amendment_number;
1660 LOG_MESSAGE('copy_negotiation','1.1.2 -- in 2, doc_number:'||l_document_number);
1661 ELSE
1662 IF (l_last_amendment_number > 0) THEN
1663 l_document_number := l_document_number||','||l_last_amendment_number;
1664 END IF;
1665 END IF;
1666 ELSIF ( l_last_amendment_number > 0 ) THEN -- a first round negotiation that has been amended
1667 l_document_number := p_source_orig_amend_id||','|| l_last_amendment_number;
1668 LOG_MESSAGE('copy_negotiation','1.1.2 -- in 3, doc_number:'||l_document_number);
1669 ELSE
1670 l_document_number := p_auction_header_id;
1671 LOG_MESSAGE('copy_negotiation','1.1.2 -- in 4, doc_number:'||l_document_number);
1672 END IF;
1673
1674 LOG_MESSAGE('copy_negotiation','1.1.2 l_document_number is:'|| l_document_number);
1675
1676 --
1677 -- Set the output parameter x_document_number with the docuement number
1678 --
1679 x_document_number := l_document_number;
1680 g_neg_doc_number := l_document_number;
1681
1682 LOG_MESSAGE('copy_negotiation','1.1.3 going to check if contracts is installed');
1683
1684
1685 --
1686 -- CONTERMS_EXIST_FLAG setting check using the following logic -
1687 --
1688 -- IF ( User has decided to keep the contracts) THEN
1689 -- IF (Contract is installed) THEN
1690 -- IF (Source document has contracts) THEN
1691 -- CONTERMS_EXIST_FLAG = Y
1692 -- ELSE
1693 -- CONTERMS_EXIST_FLAG= N
1694 -- END IF;
1695 -- ELSE
1696 -- CONTERMS_EXIST_FLAG = N
1697 -- END IF;
1698 -- ELSE
1699 -- CONTERMS_EXIST_FLAG = N
1700 -- END IF;
1701 --
1702 -- This was the logic as implemented in AuctionHeadersAllEntityExpert.contractTermsExist method
1703 -- and ContractsServerUtil
1704 --
1705 IF (p_retain_clause = 'Y') THEN
1706 --
1707 -- Check if contracts is installed or not
1708 --
1709 l_contract_terms_exisits := PON_CONTERMS_UTL_GRP.IS_CONTRACTS_INSTALLED;
1710 IF (l_contract_terms_exisits = 'T') THEN
1711
1712 LOG_MESSAGE('copy_negotiation','1.1.3.1 contracts is installed');
1713
1714 --
1715 -- Find the appropriate CONTRACT doc type when not responding
1716 --
1717 IF (p_source_doctype_grp_name = g_buyer_auction) THEN
1718 l_contract_doctype := g_contract_auction;
1719 ELSIF (p_source_doctype_grp_name = g_rfq) THEN
1720 l_contract_doctype := g_contract_rfq;
1721 ELSIF (p_source_doctype_grp_name = g_rfi) THEN
1722 l_contract_doctype := g_contract_rfi;
1723 END IF;
1724
1725 l_contract_terms_exisits := PON_CONTERMS_UTL_PVT.CONTRACT_TERMS_EXIST(l_contract_doctype, p_source_auction_header_id);
1726 IF (l_contract_terms_exisits <> 'Y' ) THEN
1727 l_contract_terms_exisits := 'N';
1728 END IF;
1729
1730 --
1731 -- Note that this is the contract doctype for the source document
1732 --
1733 x_contracts_doctype := l_contract_doctype;
1734
1735 ELSE
1736 l_contract_terms_exisits := 'N';
1737 LOG_MESSAGE('copy_negotiation','1.1.3.2 contracts is not installed');
1738 END IF;
1739 ELSE
1740 l_contract_terms_exisits := 'N';
1741 END IF;
1742
1743
1744 t_record := g_auc_doctype_rule_data;
1745 -- Initialize the global variable for future use
1746 -- g_auc_doctype_rule_data := t_record;
1747
1748
1749 --
1750 -- To be used by the COPY_CONTRACTS_ATTACHMENTS procedure
1751 --
1752 x_contract_type := t_record.CONTRACT_TYPE;
1753
1754 --
1755 -- Update the AUCTION_ORIGINATION_CODE with the source document
1756 -- internal name if it is copy from RFI to Auction/RFQ. Set it to NULL
1757 -- for the active negotiation copy. Carry it in all other cases
1758 -- (AuctionHeaderaAllVOImpl logic)
1759 --
1760 IF (p_copy_type = g_rfi_to_other_copy) THEN
1761 g_auc_origination_code := l_source_doc_internal_name;
1762 ELSIF (p_copy_type = g_active_neg_copy) THEN
1763 g_auc_origination_code := NULL;
1764 ELSE
1765 g_auc_origination_code := p_source_auc_orig_code;
1766 END IF;
1767
1768 --
1769 -- Award Approval Flag is not applicable for RFI
1770 -- and it shouldn't be changed automatically for Amendment
1771 --
1772 l_is_award_approval_reqd := p_is_award_approval_reqd;
1773 IF (fnd_profile.value('PON_AWARD_APPROVAL_ENABLED') = 'Y' ) THEN
1774 IF (p_doctype_id = g_rfi_doctype_id) THEN
1775 l_is_award_approval_reqd := 'N';
1776 END IF;
1777 ELSE
1778 l_is_award_approval_reqd := 'N';
1779 END IF;
1780
1781 --
1782 -- Generate a warning message if it's going to be a new round for a negotiation with
1783 -- some responses in the last round (createNewRound method logic of
1784 -- AuctionHeadersAllVOImpl class)
1785 --
1786 IF (p_copy_type = g_new_rnd_copy AND
1787 'AWARD' = t_record.AWARD_TYPE_RULE_FIXED_VALUE AND
1788 t_record.NUMBER_OF_BIDS > 0) THEN
1789
1790 -- Now there will be a new generic message instead of the old doctype specific
1791 -- PON_AUC_NEXT_ROUND_WARNING variants
1792 FND_MESSAGE.SET_NAME('PON','PON_NEG_NEXT_ROUND_WARNING');
1793 -- The way I am adding this error may get changed in the future.
1794 -- So, please be aware of that
1795 FND_MSG_PUB.ADD;
1796 END IF;
1797
1798
1799 --
1800 -- Check for Staggered Closing Controls
1801 --
1802 BEGIN
1803 g_err_loc := '1.2 Checking the destination doctype group name';
1804 SELECT DOCTYPE_GROUP_NAME
1805 INTO l_destination_doctype_grp_name
1806 FROM PON_AUC_DOCTYPES
1807 WHERE DOCTYPE_ID = p_doctype_id;
1808 EXCEPTION
1809 WHEN OTHERS THEN
1810 FND_MESSAGE.SET_NAME('PON','PON_AUC_NO_DATA_EXISTS');
1811 FND_MSG_PUB.ADD;
1812 RAISE FND_API.G_EXC_ERROR;
1813 END;
1814
1815 --
1816 -- Staggered Closing is applicable only for AUCTION.
1817 --
1818 IF( l_destination_doctype_grp_name <> g_buyer_auction ) THEN
1819 t_record.STAGGERED_CLOSING_INTERVAL := NULL;
1820 t_record.FIRST_LINE_CLOSE_DATE := NULL;
1821 END IF;
1822
1823 --
1824 -- FIRST_LINE_CLOSE_DATE will be retained only for Amendment Creation and draftauction copy.
1825 --
1826 IF( p_copy_type = g_active_neg_copy OR p_copy_type = g_new_rnd_copy OR p_copy_type = g_draft_neg_copy) THEN
1827 t_record.FIRST_LINE_CLOSE_DATE := NULL;
1828 END IF;
1829
1830 --
1831 -- DISPLAY_BEST_PRICE_BLIND_FLAG default needs to be loaded here
1832 --
1833 PON_PROFILE_UTIL_PKG.RETRIEVE_PARTY_PREF_COVER
1834 (p_party_id => p_tp_id,
1835 p_app_short_name => 'PON',
1836 p_pref_name => 'BEST_PRICE_VISIBLE_BLIND',
1837 x_pref_value => l_disp_best_price_blind,
1838 x_pref_meaning => l_val2,
1839 x_status => l_val3,
1840 x_exception_msg => l_val4);
1841
1842
1843 --
1844 -- Bug 4924436 - Enforce min bid price across rounds
1845 -- If new round copy, also copy the new control
1846 -- to enforce min bid price across rounds
1847 --
1848 IF (p_copy_type = g_new_rnd_copy ) THEN
1849 --
1850 -- Get the default value for the Enforce Min Bid Price Across Rounds' control
1851 -- If not set on the admin config page, the value is 'N'
1852 --
1853 PON_PROFILE_UTIL_PKG.RETRIEVE_PARTY_PREF_COVER(
1854 p_party_id => p_tp_id,
1855 p_app_short_name => 'PON',
1856 p_pref_name => 'ENFORCE_MIN_BID_PRICE',
1857 x_pref_value => l_MinBidPriceVal1,
1858 x_pref_meaning => l_MinBidPriceVal2,
1859 x_status => l_MinBidPriceVal3,
1860 x_exception_msg => l_MinBidPriceVal4
1861 );
1862
1863 --
1864 -- Check possible error
1865 --
1866 IF (l_MinBidPriceVal3 <> FND_API.G_RET_STS_SUCCESS) THEN
1867 -- Log Error
1868 LOG_MESSAGE('copy_negotiation','Could not find the default value for enforce min bid price control. Please check the negotiation configuration.');
1869 l_MinBidPriceVal1 := 'N';
1870 END IF;
1871
1872
1873 -- if source document or current document is RFI
1874 -- set the flag explicitly to N
1875 IF ((p_source_doctype_id = g_rfi_doctype_id) OR
1876 (p_doctype_id = g_rfi_doctype_id)) THEN
1877 l_MinBidPriceVal1 := 'N';
1878 END IF;
1879
1880 LOG_MESSAGE('copy_negotiation','Default Enforce Min Bid Price Across Rounds:'||l_MinBidPriceVal1);
1881 END IF;
1882 -- end enforce bid price flag code.
1883
1884 g_err_loc := '1.3 Going to insert data into PON_AUCTION_HEADERS_ALL';
1885
1886 INSERT INTO PON_AUCTION_HEADERS_ALL
1887 ( AUCTION_HEADER_ID,
1888 AUCTION_TITLE,
1889 AUCTION_STATUS,
1890 AUCTION_STATUS_NAME,
1891 AWARD_STATUS,
1892 AWARD_STATUS_NAME,
1893 AUCTION_TYPE,
1894 CONTRACT_TYPE,
1895 TRADING_PARTNER_CONTACT_NAME,
1896 TRADING_PARTNER_CONTACT_ID,
1897 TRADING_PARTNER_NAME,
1898 TRADING_PARTNER_NAME_UPPER,
1899 TRADING_PARTNER_ID,
1900 SHIP_TO_LOCATION_ID,
1901 BILL_TO_LOCATION_ID,
1902 OPEN_BIDDING_DATE,
1903 CLOSE_BIDDING_DATE,
1904 ORIGINAL_CLOSE_BIDDING_DATE,
1905 VIEW_BY_DATE,
1906 AWARD_BY_DATE,
1907 PUBLISH_DATE,
1908 CLOSE_DATE,
1909 CANCEL_DATE,
1910 TIME_ZONE,
1911 BID_VISIBILITY_CODE,
1912 BID_LIST_TYPE,
1913 BID_FREQUENCY_CODE,
1914 BID_SCOPE_CODE,
1915 AUTO_EXTEND_FLAG,
1916 AUTO_EXTEND_NUMBER,
1917 NUMBER_OF_EXTENSIONS,
1918 NUMBER_OF_BIDS,
1919 MIN_BID_DECREMENT,
1920 PRICE_DRIVEN_AUCTION_FLAG,
1921 PAYMENT_TERMS_ID,
1922 FREIGHT_TERMS_CODE,
1923 FOB_CODE,
1924 CARRIER_CODE,
1925 CURRENCY_CODE,
1926 RATE_TYPE,
1927 RATE_DATE,
1928 RATE,
1929 NOTE_TO_BIDDERS,
1930 ATTACHMENT_FLAG,
1931 LANGUAGE_CODE,
1932 CREATION_DATE,
1933 CREATED_BY,
1934 LAST_UPDATE_DATE,
1935 LAST_UPDATED_BY,
1936 WF_ITEM_KEY,
1937 WF_ROLE_NAME,
1938 AUTO_EXTEND_ALL_LINES_FLAG,
1939 AUTO_EXTEND_MIN_TRIGGER_RANK,
1940 MIN_BID_INCREMENT,
1941 ALLOW_OTHER_BID_CURRENCY_FLAG,
1942 SHIPPING_TERMS_CODE,
1943 SHIPPING_TERMS,
1944 AUTO_EXTEND_DURATION,
1945 PROXY_BID_ALLOWED_FLAG,
1946 PUBLISH_RATES_TO_BIDDERS_FLAG,
1947 ATTRIBUTES_EXIST,
1948 ORDER_NUMBER,
1949 DOCUMENT_TRACKING_ID,
1950 PO_TXN_FLAG,
1951 EVENT_ID,
1952 EVENT_TITLE,
1953 SEALED_AUCTION_STATUS,
1954 SEALED_ACTUAL_UNLOCK_DATE,
1955 SEALED_ACTUAL_UNSEAL_DATE,
1956 SEALED_UNLOCK_TP_CONTACT_ID,
1957 SEALED_UNSEAL_TP_CONTACT_ID,
1958 MODE_OF_TRANSPORT,
1959 MODE_OF_TRANSPORT_CODE,
1960 PO_START_DATE,
1961 PO_END_DATE,
1962 PO_AGREED_AMOUNT,
1963 MIN_BID_CHANGE_TYPE,
1964 FULL_QUANTITY_BID_CODE,
1965 NUMBER_PRICE_DECIMALS,
1966 AUTO_EXTEND_TYPE_FLAG,
1967 AUCTION_ORIGINATION_CODE,
1968 MULTIPLE_ROUNDS_FLAG,
1969 AUCTION_HEADER_ID_ORIG_ROUND,
1970 AUCTION_HEADER_ID_PREV_ROUND,
1971 AUCTION_ROUND_NUMBER,
1972 MANUAL_CLOSE_FLAG,
1973 MANUAL_EXTEND_FLAG,
1974 AUTOEXTEND_CHANGED_FLAG,
1975 DOCTYPE_ID,
1976 OFFER_TYPE,
1977 MAX_RESPONSES,
1978 RESPONSE_ALLOWED_FLAG,
1979 FOB_NEG_FLAG,
1980 CARRIER_NEG_FLAG,
1981 FREIGHT_TERMS_NEG_FLAG,
1982 MAX_RESPONSE_ITERATIONS,
1983 PAYMENT_TERMS_NEG_FLAG,
1984 MODE_OF_TRANSPORT_NEG_FLAG,
1985 CONTRACT_ID,
1986 CONTRACT_VERSION_NUM,
1987 SHIPPING_TERMS_NEG_FLAG,
1988 SHIPPING_METHOD_NEG_FLAG,
1989 USE_REGIONAL_PRICING_FLAG,
1990 SHOW_BIDDER_NOTES,
1991 DERIVE_TYPE,
1992 PRE_DELETE_AUCTION_STATUS,
1993 DRAFT_LOCKED,
1994 DRAFT_LOCKED_BY,
1995 DRAFT_LOCKED_BY_CONTACT_ID,
1996 DRAFT_LOCKED_DATE,
1997 DRAFT_UNLOCKED_BY,
1998 DRAFT_UNLOCKED_BY_CONTACT_ID,
1999 DRAFT_UNLOCKED_DATE,
2000 MAX_LINE_NUMBER,
2001 BID_RANKING,
2002 RANK_INDICATOR,
2003 SHOW_BIDDER_SCORES,
2004 OPEN_AUCTION_NOW_FLAG,
2005 PUBLISH_AUCTION_NOW_FLAG,
2006 TEMPLATE_ID,
2007 REMINDER_DATE,
2008 ORG_ID,
2009 BUYER_ID,
2010 MANUAL_EDIT_FLAG,
2011 WF_PONCOMPL_ITEM_KEY,
2012 HAS_PE_FOR_ALL_ITEMS,
2013 HAS_PRICE_ELEMENTS,
2014 PO_MIN_REL_AMOUNT,
2015 GLOBAL_AGREEMENT_FLAG,
2016 OUTCOME_STATUS,
2017 SOURCE_REQS_FLAG,
2018 AWARD_COMPLETE_DATE,
2019 WF_PONCOMPL_CURRENT_ROUND,
2020 SECURITY_LEVEL_CODE,
2021 WF_APPROVAL_ITEM_KEY,
2022 APPROVAL_STATUS,
2023 SOURCE_DOC_ID,
2024 SOURCE_DOC_NUMBER,
2025 SOURCE_DOC_MSG,
2026 SOURCE_DOC_LINE_MSG,
2027 SOURCE_DOC_MSG_APP,
2028 SHARE_AWARD_DECISION,
2029 DESCRIPTION,
2030 TEMPLATE_SCOPE,
2031 TEMPLATE_STATUS,
2032 IS_TEMPLATE_FLAG,
2033 AWARD_APPROVAL_FLAG,
2034 AWARD_APPROVAL_STATUS,
2035 AWARD_APPR_AME_TRANS_ID,
2036 AWARD_APPR_AME_TRANS_PREV_ID,
2037 WF_AWARD_APPROVAL_ITEM_KEY,
2038 AMENDMENT_NUMBER,
2039 AMENDMENT_DESCRIPTION,
2040 AUCTION_HEADER_ID_ORIG_AMEND,
2041 AUCTION_HEADER_ID_PREV_AMEND,
2042 DOCUMENT_NUMBER,
2043 AWARD_APPR_AME_TXN_DATE,
2044 HDR_ATTR_ENABLE_WEIGHTS,
2045 -- HDR_ATTRIBUTE_DISPLAY_SCORE, I think somebody has dropped the column for new enhancement
2046 HDR_ATTR_MAXIMUM_SCORE,
2047 ATTRIBUTE_LINE_NUMBER,
2048 HDR_ATTR_DISPLAY_SCORE,
2049 CONTERMS_EXIST_FLAG,
2050 CONTERMS_ARTICLES_UPD_DATE,
2051 CONTERMS_DELIV_UPD_DATE,
2052 AWARD_MODE,
2053 HAS_HDR_ATTR_FLAG,
2054 AWARD_DATE,
2055 MAX_INTERNAL_LINE_NUM,
2056 IS_PAUSED,
2057 PAUSE_REMARKS,
2058 LAST_PAUSE_DATE,
2059 MAX_DOCUMENT_LINE_NUM,
2060 PF_TYPE_ALLOWED, -- For Transformation bidding project
2061 SUPPLIER_VIEW_TYPE, -- For Transformation bidding project
2062 ABSTRACT_DETAILS, -- Abstract/Forms project
2063 MAX_BID_COLOR_SEQUENCE_ID, -- CPA and Console related columns
2064 HAS_ITEMS_FLAG,
2065 SUPPLIER_ENTERABLE_PYMT_FLAG,
2066 PROGRESS_PAYMENT_TYPE,
2067 PROGRESS_PYMT_NEGOTIABLE_FLAG,
2068 ADVANCE_NEGOTIABLE_FLAG,
2069 RECOUPMENT_NEGOTIABLE_FLAG,
2070 MAX_RETAINAGE_NEGOTIABLE_FLAG,
2071 RETAINAGE_NEGOTIABLE_FLAG,
2072 PROJECT_ID,
2073 INT_ATTRIBUTE_CATEGORY ,
2074 INT_ATTRIBUTE1,
2075 INT_ATTRIBUTE2,
2076 INT_ATTRIBUTE3,
2077 INT_ATTRIBUTE4,
2078 INT_ATTRIBUTE5,
2079 INT_ATTRIBUTE6,
2080 INT_ATTRIBUTE7,
2081 INT_ATTRIBUTE8,
2082 INT_ATTRIBUTE9,
2083 INT_ATTRIBUTE10,
2084 INT_ATTRIBUTE11,
2085 INT_ATTRIBUTE12,
2086 INT_ATTRIBUTE13,
2087 INT_ATTRIBUTE14,
2088 INT_ATTRIBUTE15,
2089 EXT_ATTRIBUTE_CATEGORY,
2090 EXT_ATTRIBUTE1,
2091 EXT_ATTRIBUTE2,
2092 EXT_ATTRIBUTE3,
2093 EXT_ATTRIBUTE4,
2094 EXT_ATTRIBUTE5,
2095 EXT_ATTRIBUTE6,
2096 EXT_ATTRIBUTE7,
2097 EXT_ATTRIBUTE8,
2098 EXT_ATTRIBUTE9,
2099 EXT_ATTRIBUTE10,
2100 EXT_ATTRIBUTE11,
2101 EXT_ATTRIBUTE12,
2102 EXT_ATTRIBUTE13,
2103 EXT_ATTRIBUTE14,
2104 EXT_ATTRIBUTE15,
2105 STYLE_ID,
2106 LINE_ATTRIBUTE_ENABLED_FLAG,
2107 LINE_MAS_ENABLED_FLAG,
2108 PRICE_ELEMENT_ENABLED_FLAG,
2109 RFI_LINE_ENABLED_FLAG,
2110 LOT_ENABLED_FLAG,
2111 GROUP_ENABLED_FLAG,
2112 LARGE_NEG_ENABLED_FLAG,
2113 HDR_ATTRIBUTE_ENABLED_FLAG,
2114 NEG_TEAM_ENABLED_FLAG,
2115 PROXY_BIDDING_ENABLED_FLAG,
2116 POWER_BIDDING_ENABLED_FLAG,
2117 AUTO_EXTEND_ENABLED_FLAG,
2118 TEAM_SCORING_ENABLED_FLAG,
2119 HAS_SCORING_TEAMS_FLAG,
2120 PO_STYLE_ID,
2121 PRICE_BREAK_RESPONSE,
2122 NUMBER_OF_LINES,
2123 LAST_LINE_NUMBER,
2124 BID_DECREMENT_METHOD,
2125 STAGGERED_CLOSING_INTERVAL,
2126 FIRST_LINE_CLOSE_DATE,
2127 DISPLAY_BEST_PRICE_BLIND_FLAG,
2128 ENFORCE_PREVRND_BID_PRICE_FLAG,
2129 QTY_PRICE_TIERS_ENABLED_FLAG,
2130 PRICE_TIERS_INDICATOR,
2131 TWO_PART_FLAG)
2132
2133 SELECT
2134 p_auction_header_id,
2135 AUCTION_TITLE,
2136 'DRAFT', -- AUCTION_STATUS
2137 NULL, -- AUCTION_STATUS_NAME
2138 'NO', -- AWARD_STATUS
2139 NULL, -- AWARD_STATUS_NAME
2140 AUCTION_TYPE,
2141 t_record.CONTRACT_TYPE ,
2142 --
2143 -- During amendment we should retain the same
2144 -- trading_partner_contact_name
2145 --
2146 decode (p_copy_type,
2147 g_amend_copy, TRADING_PARTNER_CONTACT_NAME,
2148 p_tpc_name), -- TRADING_PARTNER_CONTACT_NAME
2149 --
2150 -- During amendment we should retain the same
2151 -- trading_partner_contact_id
2152 --
2153 decode (p_copy_type,
2154 g_amend_copy, TRADING_PARTNER_CONTACT_ID,
2155 p_tp_contact_id), -- TRADING_PARTNER_CONTACT_ID
2156 p_tp_name,
2157 UPPER(p_tp_name),
2158 p_tp_id,
2159 t_record.SHIP_TO_LOCATION_ID, -- SHIP_TO_LOCATION_ID
2160 t_record.BILL_TO_LOCATION_ID, -- BILL_TO_LOCATION_ID
2161 --
2162 -- OPEN_BIDDING_DATE should get copied for Amendment.
2163 -- It should be defaulted to NULL and then one hour after current date for
2164 -- all other cases. This is the current Copy Reset logic in
2165 -- AuctionHeadersAllVoImpl
2166 --
2167 decode(p_copy_type,
2168 g_amend_copy, OPEN_BIDDING_DATE,
2169 SYSDATE+1/24),
2170 decode(p_copy_type,
2171 g_amend_copy, CLOSE_BIDDING_DATE,
2172 NULL), -- CLOSE_BIDDING_DATE
2173 NULL, -- ORIGINAL_CLOSE_BIDDING_DATE
2174 decode(p_copy_type,
2175 g_amend_copy, VIEW_BY_DATE,
2176 NULL), -- VIEW_BY_DATE
2177 decode(p_copy_type,
2178 g_amend_copy, AWARD_BY_DATE,
2179 NULL), -- AWARD_BY_DATE
2180 NULL, -- PUBLISH_DATE
2181 NULL, -- CLOSE_DATE
2182 NULL, -- CANCEL_DATE
2183 NULL, -- TIME_ZONE, it seems to be always null
2184 t_record.BID_VISIBILITY_CODE, -- BID_VISIBILITY_CODE
2185 t_record.BID_LIST_TYPE, -- BID_LIST_TYPE
2186 t_record.BID_FREQUENCY_CODE, -- BID_FREQUENCY_CODE
2187 t_record.BID_SCOPE_CODE, -- BID_SCOPE_CODE
2188 t_record.AUTO_EXTEND_FLAG, -- AUTO_EXTEND_FLAG
2189 decode(nvl(t_record.AUTO_EXTEND_FLAG,'N'),
2190 'Y', AUTO_EXTEND_NUMBER,
2191 NULL), -- AUTO_EXTEND_NUMBER,
2192 NULL, -- NUMBER_OF_EXTENSIONS
2193 0, -- NUMBER_OF_BIDS
2194 decode(t_record.PRICE_DRIVEN_AUCTION_FLAG,
2195 'N', NULL,
2196 MIN_BID_DECREMENT), -- MIN_BID_DECREMENT
2197 t_record.PRICE_DRIVEN_AUCTION_FLAG, -- PRICE_DRIVEN_AUCTION_FLAG
2198 t_record.PAYMENT_TERMS_ID, -- PAYMENT_TERMS_ID
2199 t_record.FREIGHT_TERMS_CODE , -- FREIGHT_TERMS_CODE
2200 t_record.FOB_CODE, -- FOB_CODE
2201 t_record.CARRIER_CODE, -- CARRIER_CODE
2202 t_record.CURRENCY_CODE , -- CURRENCY_CODE
2203 t_record.RATE_TYPE, -- RATE_TYPE
2204 RATE_DATE,
2205 RATE,
2206 NOTE_TO_BIDDERS,
2207 decode (p_retain_attachments,
2208 'Y', ATTACHMENT_FLAG,
2209 'N'), -- ATTACHMENT_FLAG
2210 LANGUAGE_CODE,
2211 SYSDATE, -- CREATION_DATE
2212 p_user_id, -- CREATED_BY
2213 SYSDATE, -- LAST_UPDATE_DATE
2214 p_user_id, -- LAST_UPDATED_BY
2215 NULL, -- WF_ITEM_KEY
2216 NULL, -- WF_ROLE_NAME
2217 t_record.AUTO_EXTEND_ALL_LINES_FLAG, -- AUTO_EXTEND_ALL_LINES_FLAG
2218 t_record.AUTO_EXTEND_MIN_TRIGGER_RANK, -- AUTO_EXTEND_MIN_TRIGGER_RANK
2219 decode(t_record.PRICE_DRIVEN_AUCTION_FLAG,
2220 'N', NULL,
2221 MIN_BID_INCREMENT), -- MIN_BID_INCREMENT
2222 ALLOW_OTHER_BID_CURRENCY_FLAG,
2223 SHIPPING_TERMS_CODE, -- Always NULL
2224 SHIPPING_TERMS, -- Always NULL
2225 t_record.AUTO_EXTEND_DURATION, -- AUTO_EXTEND_DURATION
2226 PROXY_BID_ALLOWED_FLAG, -- Always NULL though bizrule is available
2227 PUBLISH_RATES_TO_BIDDERS_FLAG,
2228 ATTRIBUTES_EXIST,
2229 NULL, -- ORDER_NUMBER
2230 NULL, -- DOCUMENT_TRACKING_ID
2231 NULL, -- PO_TXN_FLAG
2232 --
2233 -- for the new round and amendment cases, we do keep event information
2234 -- (AuctionHeadersAllVOimpl logic)
2235 --
2236 decode(p_copy_type,
2237 g_new_rnd_copy, t_record.EVENT_ID,
2238 g_amend_copy, EVENT_ID,
2239 NULL), -- EVENT_ID
2240 --
2241 -- for the new round and amendment cases, we do keep event information
2242 -- (AuctionHeadersAllVOimpl logic)
2243 --
2244 decode(p_copy_type,
2245 g_new_rnd_copy, t_record.EVENT_TITLE,
2246 g_amend_copy, EVENT_TITLE,
2247 NULL), -- EVENT_TITLE
2248 --
2249 -- Set sealed_auction_status to Locked if bidVisibilityCode = 'SEALED_AUCTION'
2250 -- (AuctionHeadersAllVOimpl logic). But I will set it to NULL always and the publish
2251 -- logic will change it if required
2252 --
2253 NULL, -- SEALED_AUCTION_STATUS
2254 NULL, -- SEALED_ACTUAL_UNLOCK_DATE
2255 NULL, -- SEALED_ACTUAL_UNSEAL_DATE
2256 NULL, -- SEALED_UNLOCK_TP_CONTACT_ID
2257 NULL, -- SEALED_UNSEAL_TP_CONTACT_ID
2258 MODE_OF_TRANSPORT, -- Seems to be NULL always
2259 MODE_OF_TRANSPORT_CODE, -- Seems to be NULL always
2260 t_record.PO_START_DATE , -- PO_START_DATE
2261 t_record.PO_END_DATE, -- PO_END_DATE,
2262 t_record.PO_AGREED_AMOUNT , -- PO_AGREED_AMOUNT,
2263 t_record.MIN_BID_CHANGE_TYPE, -- MIN_BID_CHANGE_TYPE
2264 --
2265 -- For blankets cannot restrict user to bid on full quantity
2266 -- (AuctionHeadersALLEOImpl logic)
2267 -- The same logic applies for the newly introduced CPA also
2268 --
2269 decode(t_record.CONTRACT_TYPE,
2270 'BLANKET', 'PARTIAL_QTY_BIDS_ALLOWED',
2271 'CONTRACT', 'PARTIAL_QTY_BIDS_ALLOWED',
2272 t_record.FULL_QUANTITY_BID_CODE) , -- FULL_QUANTITY_BID_CODE
2273 --
2274 -- Even if the NUMBER_PRICE_DECIMALS is NULL (draft) we are not setting it to
2275 -- 1000 as that will be done in the AuctionHeadersALLEOImpl
2276 --
2277 NUMBER_PRICE_DECIMALS,
2278 t_record.AUTO_EXTEND_TYPE_FLAG, -- AUTO_EXTEND_TYPE_FLAG
2279 --
2280 -- Update the AUCTION_ORIGINATION_CODE with the source document
2281 -- internal name if it is copy from RFI to Auction/RFQ. Set it to NULL
2282 -- for the active negotiation copy. Carry it in all other cases
2283 -- (AuctionHeaderaAllVOImpl logic)
2284 --
2285 g_auc_origination_code, -- AUCTION_ORIGINATION_CODE
2286 t_record.MULTIPLE_ROUNDS_FLAG, -- MULTIPLE_ROUNDS_FLAG
2287 l_auction_header_id_orig_round, -- AUCTION_HEADER_ID_ORIG_ROUND
2288 l_auction_header_id_prev_round, -- AUCTION_HEADER_ID_PREV_ROUND
2289 l_auction_round_number, -- AUCTION_ROUND_NUMBER
2290 t_record.MANUAL_CLOSE_FLAG, -- MANUAL_CLOSE_FLAG
2291 t_record.MANUAL_EXTEND_FLAG, -- MANUAL_EXTEND_FLAG
2292 NULL, -- AUTOEXTEND_CHANGED_FLAG, Can not find any reason to carry it
2293 p_doctype_id, -- DOCTYPE_ID
2294 OFFER_TYPE,
2295 --
2296 -- Carry over the Sysadmin setting for Award Appr. flag except for copy
2297 -- for Amendment
2298 --
2299 NULL, -- MAX_RESPONSES
2300 --
2301 -- Still carrying it though it is genrally Y in the DB and there is a bizrule
2302 -- applicable for Offers (RESPONSE_ALLOWED_FLAG)
2303 --
2304 RESPONSE_ALLOWED_FLAG,
2305 --
2306 -- Still carrying it though it is genrally N in the DB
2307 -- (FOB_NEG_FLAG)
2308 --
2309 FOB_NEG_FLAG,
2310 CARRIER_NEG_FLAG, -- Still carrying it though it is genrally N in the DB
2311 FREIGHT_TERMS_NEG_FLAG, -- Still carrying it though it is genrally N in the DB
2312 NULL, -- MAX_RESPONSE_ITERATIONS
2313 PAYMENT_TERMS_NEG_FLAG, -- Still carrying it though it is genrally N in the DB
2314 MODE_OF_TRANSPORT_NEG_FLAG, -- Still carrying it though it is genrally N in the DB
2315 decode (p_retain_clause,
2316 'Y', CONTRACT_ID,
2317 NULL), -- CONTRACT_ID
2318 decode (p_retain_clause,
2319 'Y', CONTRACT_VERSION_NUM,
2320 NULL), -- CONTRACT_VERSION_NUM, will be updated later if reqd
2321 SHIPPING_TERMS_NEG_FLAG, -- Still carrying it though it is genrally N in the DB
2322 SHIPPING_METHOD_NEG_FLAG, -- Still carrying it though it is genrally N in the DB
2323 USE_REGIONAL_PRICING_FLAG, -- Still carrying it though it is genrally NULL in the DB
2324 --
2325 -- Set SHOW_BIDDER_NOTES to N if bidVisibilityCode = 'SEALED_AUCTION'
2326 -- (AuctionHeadersALLEOImpl logic)
2327 --
2328 decode(t_record.BID_VISIBILITY_CODE,
2329 'SEALED_BIDDING', 'N',
2330 t_record.SHOW_BIDDER_NOTES), -- SHOW_BIDDER_NOTES
2331 DERIVE_TYPE,
2332 NULL, -- PRE_DELETE_AUCTION_STATUS, it is always null in BOLC
2333 'Y', -- DRAFT_LOCKED
2334 p_tp_id, -- DRAFT_LOCKED_BY we populate it with trading_partner_id
2335 p_tp_contact_id, -- DRAFT_LOCKED_BY_CONTACT_ID, tp_contact_id
2336 SYSDATE, -- DRAFT_LOCKED_DATE
2337 NULL, -- DRAFT_UNLOCKED_BY
2338 NULL, -- DRAFT_UNLOCKED_BY_CONTACT_ID
2339 NULL, -- DRAFT_UNLOCKED_DATE
2340 NULL, -- MAX_LINE_NUMBER (unused)
2341 t_record.BID_RANKING, -- BID_RANKING
2342 t_record.RANK_INDICATOR, -- RANK_INDICATOR
2343 --
2344 -- SHOW_BIDDER_SCORES will be changed to NONE if the BID_RANKING is PRICE_ONLY.
2345 --
2346 decode(t_record.BID_RANKING,
2347 'PRICE_ONLY', 'NONE',
2348 t_record.SHOW_BIDDER_SCORES), -- SHOW_BIDDER_SCORES
2349 'N', -- OPEN_AUCTION_NOW_FLAG, always defaulted to N
2350 'N', -- PUBLISH_AUCTION_NOW_FLAG, always defaulted to N, Copy Reset logic
2351 NULL, -- TEMPLATE_ID
2352 NULL, -- REMINDER_DATE, Copy Reset logic
2353 ORG_ID,
2354 --
2355 -- Keep the buyer_id only for draft, amendment, same doctype new round
2356 --
2357 decode(l_copy_buyer_id,
2358 'Y', BUYER_ID,
2359 NULL), -- BUYER_ID
2360 'Y', -- MANUAL_EDIT_FLAG , setting it to Y otherwise user can not edit a draft with REQ/BPA
2361 NULL, -- WF_PONCOMPL_ITEM_KEY, to be set to NULL
2362 --
2363 -- It is set to N. Later on this will be set to Y or N while being published
2364 -- (setChildrenExistFlags method logic in AuctionHeadersALLEOImpl)
2365 --
2366 'N', -- HAS_PE_FOR_ALL_ITEMS
2367 --
2368 -- It is also set to N. Later on this will be set to Y or N while being published
2369 -- (setChildrenExistFlags method logic in AuctionHeadersALLEOImpl)
2370 --
2371 'N', -- HAS_PRICE_ELEMENTS
2372 t_record.PO_MIN_REL_AMOUNT, -- PO_MIN_REL_AMOUNT
2373 t_record.GLOBAL_AGREEMENT_FLAG, -- GLOBAL_AGREEMENT_FLAG
2374 NULL, -- OUTCOME_STATUS
2375 --
2376 -- SOURCE_REQS_FLAG to be set to null as per the copyReset method logic in
2377 -- AuctionHeadersAllVOImpl
2378 --
2379 NULL, -- SOURCE_REQS_FLAG
2380 NULL, -- AWARD_COMPLETE_DATE
2381 NULL, -- WF_PONCOMPL_CURRENT_ROUND, to be set to NULL
2382 --
2383 -- SECURITY_LEVEL_CODE can be set to PUBLIC if it is null
2384 -- if neg team is disabled by style and old value is PRIVATE
2385 -- reset to PUBLIC
2386 --
2387 decode(g_neg_style_control.neg_team_enabled_flag,
2388 'N', decode(SECURITY_LEVEL_CODE, 'PRIVATE', 'PUBLIC',
2389 nvl(SECURITY_LEVEL_CODE, 'PUBLIC')),
2390 nvl(SECURITY_LEVEL_CODE, 'PUBLIC')), -- SECURITY_LEVEL_CODE
2391 NULL, -- WF_APPROVAL_ITEM_KEY, to be set to NULL
2392 --
2393 -- If there are no value for APPROVAL_STATUS then set it to NOT_REQUIRED
2394 -- Otherwise set it to REQUIRED. We are not setting it to the actual status
2395 -- as setApprovalStatusValue method of AuctionHeadersALLEOImpl will
2396 -- set it while publising the negotiation or saving the negotiation as draft
2397 --
2398 decode(nvl(APPROVAL_STATUS, 'NOT_REQUIRED'),
2399 'NOT_REQUIRED', 'NOT_REQUIRED',
2400 'REQUIRED'), -- APPROVAL_STATUS
2401 --
2402 -- We are going to keep the SOURCE_DOC_XX fields for Copy To Auction,
2403 -- Copy To RFQ as well as any cross doctype copy. This is a new behavior
2404 --
2405 decode(l_is_succession,
2406 'Y', SOURCE_DOC_ID,
2407 l_source_doc_id), -- SOURCE_DOC_ID
2408 decode(l_is_succession,
2409 'Y', SOURCE_DOC_NUMBER,
2410 l_source_doc_number), -- SOURCE_DOC_NUMBER
2411 decode(l_is_succession,
2412 'Y', SOURCE_DOC_MSG,
2413 l_source_doc_msg), -- SOURCE_DOC_MSG
2414 decode(l_is_succession,
2415 'Y', SOURCE_DOC_LINE_MSG,
2416 l_source_doc_line_msg), -- SOURCE_DOC_LINE_MSG
2417 decode(l_is_succession,
2418 'Y', SOURCE_DOC_MSG_APP,
2419 l_source_doc_msg_app ), -- SOURCE_DOC_MSG_APP
2420 --
2421 -- Set SHARE_AWARD_DECISION to N, setCommonDefaults method logic
2422 -- in AuctionHeadersALLEOImpl
2423 --
2424 'N', -- SHARE_AWARD_DECISION
2425 NULL, -- DESCRIPTION, The DESCRIPTION field is only for templates
2426 NULL, -- TEMPLATE_SCOPE,
2427 NULL, -- TEMPLATE_STATUS,
2428 NULL, -- IS_TEMPLATE_FLAG,
2429 --
2430 -- Carry over the Sysadmin setting for Award Appr. flag except for copy
2431 -- for Amendment
2432 --
2433 decode(p_copy_type,
2434 g_amend_copy, AWARD_APPROVAL_FLAG,
2435 l_is_award_approval_reqd), -- AWARD_APPROVAL_FLAG
2436 decode(p_copy_type,
2437 g_amend_copy, AWARD_APPROVAL_STATUS,
2438 decode(l_is_award_approval_reqd,
2439 'Y', 'REQUIRED',
2440 'NOT_REQUIRED')), -- AWARD_APPROVAL_STATUS
2441 NULL, -- AWARD_APPR_AME_TRANS_ID
2442 NULL, -- AWARD_APPR_AME_TRANS_PREV_ID
2443 NULL, -- WF_AWARD_APPROVAL_ITEM_KEY
2444 decode(p_copy_type,
2445 g_amend_copy, nvl(AMENDMENT_NUMBER,0)+1,
2446 0), -- AMENDMENT_NUMBER
2447 NULL, -- AMENDMENT_DESCRIPTION
2448 decode(p_copy_type,
2449 g_amend_copy, AUCTION_HEADER_ID_ORIG_AMEND,
2450 p_auction_header_id), -- AUCTION_HEADER_ID_ORIG_AMEND
2451 decode(p_copy_type,
2452 'AMENDMENT', p_source_auction_header_id,
2453 NULL), -- AUCTION_HEADER_ID_PREV_AMEND
2454 l_document_number, -- DOCUMENT_NUMBER
2455 NULL, -- AWARD_APPR_AME_TXN_DATE
2456 --
2457 -- AuctionHeadersALLEOImpl.setAdminPrefScoreSettings may override this later on
2458 --
2459 HDR_ATTR_ENABLE_WEIGHTS,
2460 -- HDR_ATTRIBUTE_DISPLAY_SCORE, Some body has removed the column in prcdv10p
2461 HDR_ATTR_MAXIMUM_SCORE,
2462 ATTRIBUTE_LINE_NUMBER,
2463 HDR_ATTR_DISPLAY_SCORE,
2464 l_contract_terms_exisits, -- CONTERMS_EXIST_FLAG
2465 --
2466 -- No existing logic, hence keeping the CONTERMS_ARTICLES_UPD_DATE and
2467 -- CONTERMS_DELIV_UPD_DATE
2468 --
2469 CONTERMS_ARTICLES_UPD_DATE,
2470 CONTERMS_DELIV_UPD_DATE,
2471 NULL, -- AWARD_MODE
2472 HAS_HDR_ATTR_FLAG,
2473 NULL, -- AWARD_DATE
2474 --
2475 -- AuctionHeadersAllVOImpl logic
2476 --
2477 decode(l_is_succession,
2478 'Y', MAX_INTERNAL_LINE_NUM,
2479 NULL), -- MAX_INTERNAL_LINE_NUM
2480 NULL, -- IS_PAUSED
2481 NULL, -- PAUSE_REMARKS
2482 NULL, -- LAST_PAUSE_DATE
2483 decode(p_copy_type, g_amend_copy, MAX_DOCUMENT_LINE_NUM,
2484 g_new_rnd_copy, MAX_DOCUMENT_LINE_NUM,
2485 NULL), -- MAX_DOCUMENT_LINE_NUM
2486 --
2487 -- Transformation project:
2488
2489 --
2490 t_record.PF_TYPE_ALLOWED, -- PF_TYPE_ALLOWED
2491 --
2492 -- Transformation project logic:
2493 -- Since RFI has no price elements, set the column to TRANSFORMED
2494 -- while copying to a RFI
2495 --
2496 decode(p_doctype_id,
2497 g_rfi_doctype_id, 'TRANSFORMED',
2498 decode(g_neg_style_control.price_element_enabled_flag,
2499 'N', 'TRANSFORMED', SUPPLIER_VIEW_TYPE)), -- SUPPLIER_VIEW_TYPE
2500 ABSTRACT_DETAILS, -- Abstract/Forms project related column
2501 --
2502 -- CPA and Console projects related columns
2503 --
2504 -- MAX_BID_COLOR_SEQUENCE_ID Field Logic
2505 -- ---------------------------------------------------------
2506 -- Copy MAX_BID_COLOR_SEQUENCE_ID field as is for New Round and
2507 -- Amendments. In all other cases reset it to -1. Keeping it for cross copy.
2508 -- Keep all other columns intact
2509 --
2510 decode(p_copy_type,
2511 g_active_neg_copy, -1,
2512 g_draft_neg_copy, -1,
2513 MAX_BID_COLOR_SEQUENCE_ID), -- MAX_BID_COLOR_SEQUENCE_ID
2514 HAS_ITEMS_FLAG,
2515 decode(p_doctype_id, g_rfq_doctype_id, SUPPLIER_ENTERABLE_PYMT_FLAG, 'N'),
2516 decode(p_doctype_id, g_rfq_doctype_id, PROGRESS_PAYMENT_TYPE, 'NONE'),
2517 decode(p_doctype_id, g_rfq_doctype_id, PROGRESS_PYMT_NEGOTIABLE_FLAG, 'N'),
2518 decode(p_doctype_id, g_rfq_doctype_id, ADVANCE_NEGOTIABLE_FLAG, 'N'),
2519 decode(p_doctype_id, g_rfq_doctype_id, RECOUPMENT_NEGOTIABLE_FLAG, 'N'),
2520 decode(p_doctype_id, g_rfi_doctype_id, 'N', MAX_RETAINAGE_NEGOTIABLE_FLAG),
2521 decode(p_doctype_id, g_rfi_doctype_id, 'N', RETAINAGE_NEGOTIABLE_FLAG),
2522 PROJECT_ID,
2523 INT_ATTRIBUTE_CATEGORY,
2524 INT_ATTRIBUTE1,
2525 INT_ATTRIBUTE2,
2526 INT_ATTRIBUTE3,
2527 INT_ATTRIBUTE4,
2528 INT_ATTRIBUTE5,
2529 INT_ATTRIBUTE6,
2530 INT_ATTRIBUTE7,
2531 INT_ATTRIBUTE8,
2532 INT_ATTRIBUTE9,
2533 INT_ATTRIBUTE10,
2534 INT_ATTRIBUTE11,
2535 INT_ATTRIBUTE12,
2536 INT_ATTRIBUTE13,
2537 INT_ATTRIBUTE14,
2538 INT_ATTRIBUTE15,
2539 EXT_ATTRIBUTE_CATEGORY,
2540 EXT_ATTRIBUTE1,
2541 EXT_ATTRIBUTE2,
2542 EXT_ATTRIBUTE3,
2543 EXT_ATTRIBUTE4,
2544 EXT_ATTRIBUTE5,
2545 EXT_ATTRIBUTE6,
2546 EXT_ATTRIBUTE7,
2547 EXT_ATTRIBUTE8,
2548 EXT_ATTRIBUTE9,
2549 EXT_ATTRIBUTE10,
2550 EXT_ATTRIBUTE11,
2551 EXT_ATTRIBUTE12,
2552 EXT_ATTRIBUTE13,
2553 EXT_ATTRIBUTE14,
2554 EXT_ATTRIBUTE15,
2555 g_neg_style_raw.STYLE_ID,
2556 g_neg_style_raw.LINE_ATTRIBUTE_ENABLED_FLAG,
2557 g_neg_style_raw.LINE_MAS_ENABLED_FLAG,
2558 g_neg_style_raw.PRICE_ELEMENT_ENABLED_FLAG,
2559 g_neg_style_raw.RFI_LINE_ENABLED_FLAG,
2560 g_neg_style_raw.LOT_ENABLED_FLAG,
2561 g_neg_style_raw.GROUP_ENABLED_FLAG,
2562 g_neg_style_raw.LARGE_NEG_ENABLED_FLAG,
2563 g_neg_style_raw.HDR_ATTRIBUTE_ENABLED_FLAG,
2564 g_neg_style_raw.NEG_TEAM_ENABLED_FLAG,
2565 g_neg_style_raw.PROXY_BIDDING_ENABLED_FLAG,
2566 g_neg_style_raw.POWER_BIDDING_ENABLED_FLAG,
2567 g_neg_style_raw.AUTO_EXTEND_ENABLED_FLAG,
2568 g_neg_style_raw.TEAM_SCORING_ENABLED_FLAG,
2569 DECODE(g_neg_style_raw.TEAM_SCORING_ENABLED_FLAG, 'N', 'N', HAS_SCORING_TEAMS_FLAG),
2570 decode(p_doctype_id, g_rfi_doctype_id, NULL, PO_STYLE_ID),
2571 g_price_break_response,
2572 NUMBER_OF_LINES,
2573 LAST_LINE_NUMBER,
2574 decode(p_doctype_id, g_auction_doctype_id, BID_DECREMENT_METHOD, ''),
2575 t_record.STAGGERED_CLOSING_INTERVAL,
2576 t_record.FIRST_LINE_CLOSE_DATE,
2577 decode(t_record.BEST_PRICE, 'Y',
2578 decode(p_source_doctype_id, g_rfi_doctype_id,
2579 l_disp_best_price_blind, DISPLAY_BEST_PRICE_BLIND_FLAG),
2580 'N'), -- DISPLAY_BEST_PRICE_BLIND_FLAG
2581 -- copy the flag to enforce previous round bid price as start price for amendment
2582 -- else copy the configured value
2583 DECODE(p_copy_type, g_amend_copy, ENFORCE_PREVRND_BID_PRICE_FLAG, l_MinBidPriceVal1),
2584 g_neg_style_raw.QTY_PRICE_TIERS_ENABLED_FLAG,
2585 t_record.PRICE_TIERS_INDICATOR,
2586 DECODE(p_doctype_id, g_rfq_doctype_id, TWO_PART_FLAG, NULL)
2587 FROM PON_AUCTION_HEADERS_ALL
2588 WHERE AUCTION_HEADER_ID = p_source_auction_header_id;
2589
2590 END;
2591 --} End of COPY_HEADER_BASIC
2592
2593
2594 --
2595 -- Procedure to Copy the Negotiation Lines and Line Attachments
2596 --
2597 PROCEDURE COPY_LINES ( p_source_auction_header_id IN NUMBER,
2598 p_auction_header_id IN NUMBER,
2599 p_tp_id IN NUMBER,
2600 p_tp_contact_id IN NUMBER,
2601 p_tp_name IN VARCHAR2,
2602 p_tpc_name IN VARCHAR2,
2603 p_user_id IN NUMBER,
2604 p_source_doctype_id IN NUMBER,
2605 p_doctype_id IN NUMBER ,
2606 p_copy_type IN VARCHAR2,
2607 p_round_number IN NUMBER,
2608 p_last_amendment_number IN NUMBER,
2609 p_retain_attachments IN VARCHAR2,
2610 p_staggered_closing_interval IN NUMBER,
2611 p_from_line_number IN NUMBER,
2612 p_to_line_number IN NUMBER
2613 )
2614 --{
2615 IS
2616 l_amendment_update PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2617 l_disp_line_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2618
2619 l_line_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2620 l_item_description PON_NEG_COPY_DATATYPES_GRP.VARCHAR2500_TYPE;
2621 l_category_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2622 l_category_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
2623 l_ip_category_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2624 l_uom_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2625 l_quantity PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2626 l_need_by_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE; -- need to change?
2627 l_ship_to_location_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2628 l_target_price PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2629 l_threshold_price PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2630 l_bid_start_price PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2631 l_note_to_bidders PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
2632 l_attachment_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2633 l_language_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2634 l_reserve_price PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2635 l_display_target_price_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2636 l_current_price PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2637 l_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2638 l_lot_line_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2639 l_min_bid_increment PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2640 l_min_bid_decrement PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2641 l_unit_of_measure PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2642 l_po_min_rel_amount PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2643 l_has_attributes_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2644 l_transportation_origin PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
2645 l_transportation_dest PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
2646 l_multiple_prices_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2647 l_tbd_pricing_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2648 l_need_by_start_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
2649 l_modified_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2650 l_freight_terms_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2651 l_org_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2652 l_has_price_elements_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
2653 l_line_type_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2654 l_order_type_lookup_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2655 l_line_origination_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2656 l_requisition_number PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2657 l_item_revision PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2658 l_item_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2659 l_item_number PON_NEG_COPY_DATATYPES_GRP.VARCHAR1000_TYPE;
2660 l_price_break_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2661 l_price_break_neg_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2662 l_has_shipments_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2663 l_source_doc_number PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2664 l_source_line_number PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2665 l_souce_doc_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2666 l_source_line_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2667 l_price_disabled_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2668 l_quantity_disabled_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2669 l_job_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2670 l_additional_job_details PON_NEG_COPY_DATATYPES_GRP.VARCHAR2000_TYPE;
2671 l_po_agreed_amount PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2672 l_has_price_differentials_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2673 l_differential_response_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
2674 l_purchase_basis PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2675 l_is_quantity_scored PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2676 l_is_need_by_date_scored PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2677 l_last_amendment_update PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2678 l_modified_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
2679 l_price_diff_shipment_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2680
2681 --
2682 -- Lot based project related columns
2683 --
2684 l_group_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2685 l_parent_line_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2686 l_document_disp_line_number PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2687 l_max_sub_line_sequence_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2688 l_sub_line_sequence_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2689
2690 --
2691 -- Transformation project related columns
2692 --
2693 l_has_buyer_pfs_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2694 l_unit_target_price PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2695 l_unit_display_target_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2696
2697 l_had_obsoleted_pe PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2698 l_had_obsolete_attr_group PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2699
2700 l_has_active_buyer_pe_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2701 l_has_active_supplier_pe_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2702
2703 l_rfi_doctype_id NUMBER;
2704 l_has_some_obsolete_attr_group VARCHAR2(1);
2705 l_has_temp_labor_lines VARCHAR2(1);
2706 l_is_succession VARCHAR2(1);
2707 l_has_descriptors VARCHAR2(1);
2708
2709 --Complex work project related columns
2710 l_has_payments_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2711 l_advance_amount PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2712 l_recoupment_rate_percent PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2713 l_progress_pymt_rate_percent PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2714 l_retainage_rate_percent PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2715 l_max_retainage_amount PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2716 l_work_approver_user_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2717 l_project_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2718 l_project_task_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2719 l_project_award_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2720 l_project_expenditure_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
2721 l_project_exp_organization_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
2722 l_project_exp_item_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
2723
2724 --Staggered closing project
2725 l_close_bidding_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
2726 l_copy_close_bidding_date varchar2(1);
2727
2728 -- Quantity Based Price Tiers
2729 l_has_quantity_tiers_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
2730
2731 BEGIN
2732
2733 --
2734 -- Initialize it to false and then set it in the fetch block
2735 --
2736 l_has_some_obsolete_attr_group := 'N';
2737 l_has_temp_labor_lines := 'N';
2738 g_has_inactive_pe_flag := 'N';
2739
2740 --
2741 -- Initialize is_succession based on p_copy_type
2742 --
2743 if (p_copy_type = g_amend_copy OR
2744 (p_copy_type = g_new_rnd_copy AND p_source_doctype_id = p_doctype_id)) then
2745 l_is_succession := 'Y';
2746 else
2747 l_is_succession := 'N';
2748 end if;
2749
2750 --Copy the close bidding dates for lines in case of amendments of a
2751 --staggered auction
2752 IF (p_staggered_closing_interval is not null AND
2753 p_copy_type = g_amend_copy ) THEN
2754 l_copy_close_bidding_date := 'Y';
2755 ELSE
2756 l_copy_close_bidding_date := 'N';
2757 END IF;
2758
2759 --
2760 -- This is a candidate for bulk collect and bulk insert as we have to populate
2761 -- the disp_line_number in a sequence
2762 --
2763 SELECT
2764 A.DISP_LINE_NUMBER,
2765 A.LAST_AMENDMENT_UPDATE,
2766 A.LINE_NUMBER,
2767 A.ITEM_DESCRIPTION,
2768 A.CATEGORY_ID,
2769 A.CATEGORY_NAME,
2770 A.IP_CATEGORY_ID,
2771 A.UOM_CODE,
2772 A.QUANTITY,
2773 A.NEED_BY_DATE, -- NEED TO CHANGE? No, carry it over
2774 A.SHIP_TO_LOCATION_ID,
2775 A.TARGET_PRICE,
2776 A.THRESHOLD_PRICE,
2777 -- Bug 4740593 decode added as part of enforcing previous round bid price project
2778 -- Do not copy line start price for new round
2779 DECODE(p_copy_type, 'NEW_ROUND', NULL, A.BID_START_PRICE),
2780 A.NOTE_TO_BIDDERS,
2781 A.ATTACHMENT_FLAG,
2782 A.LANGUAGE_CODE,
2783 A.RESERVE_PRICE,
2784 A.DISPLAY_TARGET_PRICE_FLAG,
2785 A.CURRENT_PRICE,
2786 A.TYPE,
2787 A.LOT_LINE_NUMBER,
2788 A.MIN_BID_INCREMENT,
2789 A.MIN_BID_DECREMENT,
2790 A.UNIT_OF_MEASURE,
2791 A.PO_MIN_REL_AMOUNT,
2792 A.HAS_ATTRIBUTES_FLAG,
2793 A.TRANSPORTATION_ORIGIN,
2794 A.TRANSPORTATION_DEST,
2795 A.MULTIPLE_PRICES_FLAG,
2796 A.TBD_PRICING_FLAG,
2797 A.NEED_BY_START_DATE,
2798 A.FREIGHT_TERMS_CODE,
2799 A.MODIFIED_FLAG,
2800 A.ORG_ID,
2801 A.HAS_PRICE_ELEMENTS_FLAG,
2802 A.LINE_TYPE_ID,
2803 A.ORDER_TYPE_LOOKUP_CODE,
2804 A.LINE_ORIGINATION_CODE,
2805 A.REQUISITION_NUMBER,
2806 A.ITEM_REVISION,
2807 A.ITEM_ID,
2808 A.ITEM_NUMBER,
2809 A.PRICE_BREAK_TYPE,
2810 A.PRICE_BREAK_NEG_FLAG,
2811 A.HAS_SHIPMENTS_FLAG,
2812 A.SOURCE_DOC_NUMBER,
2813 A.SOURCE_LINE_NUMBER,
2814 A.SOURCE_DOC_ID,
2815 A.SOURCE_LINE_ID,
2816 A.PRICE_DISABLED_FLAG,
2817 A.QUANTITY_DISABLED_FLAG,
2818 A.JOB_ID,
2819 A.ADDITIONAL_JOB_DETAILS,
2820 A.PO_AGREED_AMOUNT,
2821 A.HAS_PRICE_DIFFERENTIALS_FLAG,
2822 A.DIFFERENTIAL_RESPONSE_TYPE,
2823 A.PURCHASE_BASIS,
2824 A.IS_QUANTITY_SCORED,
2825 A.IS_NEED_BY_DATE_SCORED,
2826 A.LAST_AMENDMENT_UPDATE,
2827 A.MODIFIED_DATE,
2828 A.PRICE_DIFF_SHIPMENT_NUMBER,
2829 NVL(A.GROUP_TYPE, 'LINE'), -- Lot based project default logic
2830 A.PARENT_LINE_NUMBER,
2831 A.DOCUMENT_DISP_LINE_NUMBER,
2832 A.MAX_SUB_LINE_SEQUENCE_NUMBER,
2833 A.SUB_LINE_SEQUENCE_NUMBER,
2834 A.HAS_BUYER_PFS_FLAG,
2835 A.UNIT_TARGET_PRICE,
2836 A.UNIT_DISPLAY_TARGET_FLAG,
2837 DECODE(NVL(COUNTER.C1, 0), 0,'N','Y') HAD_OBSOLETED_PE,
2838 DECODE(NVL(AA.C2,0),0,'N','Y') HAD_OBSOLETE_ATTR_GROUP,
2839 DECODE(NVL(COUNTER.NUM_BUYER_PFS, 0), 0, 'N', 'Y') HAS_ACTIVE_BUYER_PE_FLAG,
2840 DECODE(NVL(COUNTER.NUM_SUPPLIER_PFS, 0), 0, 'N', 'Y') HAS_ACTIVE_SUPPLIER_PE_FLAG,
2841 A.HAS_PAYMENTS_FLAG,
2842 A.ADVANCE_AMOUNT,
2843 A.RECOUPMENT_RATE_PERCENT,
2844 A.PROGRESS_PYMT_RATE_PERCENT,
2845 A.RETAINAGE_RATE_PERCENT,
2846 A.MAX_RETAINAGE_AMOUNT,
2847 A.WORK_APPROVER_USER_ID,
2848 A.PROJECT_ID,
2849
2850 A.PROJECT_TASK_ID,
2851 A.PROJECT_AWARD_ID,
2852 A.PROJECT_EXPENDITURE_TYPE,
2853 A.PROJECT_EXP_ORGANIZATION_ID,
2854 A.PROJECT_EXPENDITURE_ITEM_DATE,
2855 decode(l_copy_close_bidding_date, 'Y', A.CLOSE_BIDDING_DATE,null),
2856 A.HAS_QUANTITY_TIERS
2857 BULK COLLECT
2858 INTO
2859 l_disp_line_number,
2860 l_amendment_update,
2861 l_line_number,
2862 l_item_description,
2863 l_category_id,
2864 --
2865 -- The category name is not revalidated from the mtl table so it will have the
2866 -- older name set in the source doc
2867 --
2868 l_category_name,
2869 l_ip_category_id,
2870 l_uom_code,
2871 l_quantity,
2872 l_need_by_date, -- need to change?
2873 l_ship_to_location_id,
2874 l_target_price,
2875 l_threshold_price,
2876 l_bid_start_price,
2877 l_note_to_bidders,
2878 l_attachment_flag,
2879 l_language_code,
2880 l_reserve_price,
2881 l_display_target_price_flag,
2882 l_current_price,
2883 l_type,
2884 l_lot_line_number,
2885 l_min_bid_increment,
2886 l_min_bid_decrement,
2887 l_unit_of_measure,
2888 l_po_min_rel_amount,
2889 l_has_attributes_flag,
2890 l_transportation_origin,
2891 l_transportation_dest,
2892 l_multiple_prices_flag,
2893 l_tbd_pricing_flag,
2894 l_need_by_start_date,
2895 l_freight_terms_code,
2896 l_modified_flag,
2897 l_org_id,
2898 l_has_price_elements_flag,
2899 l_line_type_id,
2900 l_order_type_lookup_code,
2901 l_line_origination_code,
2902 l_requisition_number,
2903 l_item_revision,
2904 l_item_id,
2905 l_item_number,
2906 l_price_break_type,
2907 l_price_break_neg_flag,
2908 l_has_shipments_flag,
2909 l_source_doc_number,
2910 l_source_line_number,
2911 l_souce_doc_id,
2912 l_source_line_id,
2913 l_price_disabled_flag,
2914 l_quantity_disabled_flag,
2915 l_job_id,
2916 l_additional_job_details,
2917 l_po_agreed_amount,
2918 l_has_price_differentials_flag,
2919 l_differential_response_type,
2920 l_purchase_basis,
2921 l_is_quantity_scored,
2922 l_is_need_by_date_scored,
2923 l_last_amendment_update,
2924 l_modified_date,
2925 l_price_diff_shipment_number,
2926 l_group_type, -- Lot project related columns start
2927 l_parent_line_number,
2928 l_document_disp_line_number,
2929 l_max_sub_line_sequence_number,
2930 l_sub_line_sequence_number,
2931 l_has_buyer_pfs_flag, -- Transformation project related columns start
2932 l_unit_target_price,
2933 l_unit_display_target_flag,
2934 l_had_obsoleted_pe, -- It will return Y if there are any disabled Price Element
2935 l_had_obsolete_attr_group, -- It will return Y if there are any disabled Attributes
2936 l_has_active_buyer_pe_flag, -- It will return Y if there are any active buyer price elements
2937 l_has_active_supplier_pe_flag, -- It will return Y if there are any active supplier price elements
2938 l_has_payments_flag,
2939 l_advance_amount,
2940 l_recoupment_rate_percent,
2941 l_progress_pymt_rate_percent,
2942 l_retainage_rate_percent,
2943 l_max_retainage_amount,
2944 l_work_approver_user_id,
2945 l_project_id,
2946 l_project_task_id,
2947 l_project_award_id,
2948 l_project_expenditure_type,
2949 l_project_exp_organization_id,
2950 l_project_exp_item_date,
2951 l_close_bidding_date,
2952 l_has_quantity_tiers_flag
2953 FROM PON_AUCTION_ITEM_PRICES_ALL A,
2954 (SELECT sum(decode(VL.ENABLED_FLAG,'N',1,0)) C1,
2955 sum(decode(VL.ENABLED_FLAG,'Y',decode(P.PF_TYPE,'BUYER',1,0),0)) NUM_BUYER_PFS,
2956 sum(decode(VL.ENABLED_FLAG,'Y',decode(P.PF_TYPE,'SUPPLIER',decode(P.PRICE_ELEMENT_TYPE_ID,-10,0,1),0),0)) NUM_SUPPLIER_PFS,
2957 AUCTION_HEADER_ID,
2958 LINE_NUMBER
2959 FROM PON_PRICE_ELEMENTS P, PON_PRICE_ELEMENT_TYPES VL
2960 WHERE P.PRICE_ELEMENT_TYPE_ID = VL.PRICE_ELEMENT_TYPE_ID
2961 GROUP BY AUCTION_HEADER_ID, LINE_NUMBER) COUNTER,
2962
2963 (SELECT COUNT(ATTRIBUTE_NAME) C2,
2964 AUCTION_HEADER_ID,
2965 LINE_NUMBER
2966 FROM PON_AUCTION_ATTRIBUTES,
2967 FND_LOOKUP_VALUES
2968 WHERE
2969 LOOKUP_TYPE = 'PON_LINE_ATTRIBUTE_GROUPS'
2970 AND (ENABLED_FLAG = 'N'
2971 OR
2972 SYSDATE NOT BETWEEN NVL(START_DATE_ACTIVE,SYSDATE - 1 )
2973 AND NVL(END_DATE_ACTIVE,SYSDATE + 1 ))
2974 AND ATTR_GROUP = LOOKUP_CODE
2975 AND ATTR_LEVEL = 'LINE'
2976 AND VIEW_APPLICATION_ID = 0
2977 AND SECURITY_GROUP_ID = 0
2978 GROUP BY AUCTION_HEADER_ID, LINE_NUMBER)AA
2979
2980 WHERE A.AUCTION_HEADER_ID = p_source_auction_header_id
2981 AND A.AUCTION_HEADER_ID = COUNTER.AUCTION_HEADER_ID (+)
2982 AND A.LINE_NUMBER = COUNTER.LINE_NUMBER (+)
2983 AND A.AUCTION_HEADER_ID = AA.AUCTION_HEADER_ID (+)
2984 AND A.LINE_NUMBER = AA.LINE_NUMBER (+)
2985 AND A.line_number >= p_from_line_number
2986 AND A.line_number <= p_to_line_number
2987 ORDER BY A.DISP_LINE_NUMBER;
2988
2989
2990 IF (l_line_number.COUNT <> 0) THEN
2991 --{
2992 FOR x IN 1..l_line_number.COUNT
2993 LOOP
2994
2995 --R12 COMPLEX WORK
2996 -- If destination document type is RFI then all the complex
2997 -- work attributes should be null
2998 IF (p_doctype_id = g_rfi_doctype_id) THEN
2999 l_has_payments_flag (x) := 'N';
3000 l_advance_amount (x) := NULL;
3001 l_recoupment_rate_percent(x) := NULL;
3002 l_progress_pymt_rate_percent(x) := NULL;
3003 l_retainage_rate_percent(x) := NULL;
3004 l_max_retainage_amount(x) := NULL;
3005 l_work_approver_user_id(x) := NULL;
3006 l_project_id(x) := NULL;
3007 l_project_task_id(x) := NULL;
3008 l_project_award_id(x) := NULL;
3009 l_project_expenditure_type(x) := NULL;
3010 l_project_exp_organization_id(x) := NULL;
3011 l_project_exp_item_date(x) := NULL;
3012 ELSIF (p_doctype_id = g_auction_doctype_id) THEN
3013 -- If destination document type is RFI then all the complex
3014 -- work attributes should be null except for retainage columns
3015 l_has_payments_flag (x) := 'N';
3016 l_advance_amount (x) := NULL;
3017 l_recoupment_rate_percent(x) := NULL;
3018 l_progress_pymt_rate_percent(x) := NULL;
3019 l_work_approver_user_id(x) := NULL;
3020 l_project_id(x) := NULL;
3021 l_project_task_id(x) := NULL;
3022 l_project_award_id(x) := NULL;
3023 l_project_expenditure_type(x) := NULL;
3024 l_project_exp_organization_id(x) := NULL;
3025 l_project_exp_item_date(x) := NULL;
3026 END IF;
3027
3028
3029 IF (p_source_doctype_id = g_rfi_doctype_id AND
3030 p_doctype_id <> p_source_doctype_id) THEN
3031
3032 l_souce_doc_id(x) := g_source_doc_id;
3033 l_source_doc_number(x) := g_source_doc_num;
3034 l_line_origination_code(x) := g_source_doc_int_name;
3035
3036 IF (l_disp_line_number(x) IS NOT NULL) THEN
3037 l_source_line_number(x) := to_char(l_disp_line_number(x));
3038 ELSE
3039 l_source_line_number(x) := NULL;
3040 END IF;
3041
3042 l_source_line_id(x) := l_disp_line_number(x);
3043 END IF;
3044
3045 -- l_disp_line_number(x) := x;
3046
3047 --
3048 -- Following two if block logic are derived from the defaulting logic
3049 -- from Lot based project
3050 --
3051 IF (l_document_disp_line_number(x) IS NULL) THEN
3052 l_document_disp_line_number(x) := to_char(x);
3053 END IF;
3054
3055 IF (l_sub_line_sequence_number(x) IS NULL) THEN
3056 l_sub_line_sequence_number(x) := to_char(x);
3057 END IF;
3058
3059
3060 -- l_amendment_update(x) := 0; -- Have to modify for Amendment
3061
3062 --l_modified_date(x) := NULL;
3063 l_modified_flag(x) := NULL;
3064
3065 --
3066 -- The Source line reference, Requisition reference
3067 -- shouldn't be copied for active copy. They will be carried over in all
3068 -- other cases
3069 --
3070 IF (p_copy_type = g_active_neg_copy OR
3071 p_copy_type = g_draft_neg_copy) THEN
3072 l_souce_doc_id(x) := NULL;
3073 l_source_doc_number(x) := NULL;
3074 l_line_origination_code(x) := NULL;
3075 l_source_line_number(x) := NULL;
3076 l_source_line_id(x) := NULL;
3077 l_requisition_number(x) := NULL;
3078 END IF;
3079
3080 IF (g_auc_doctype_rule_data.CONTRACT_TYPE = 'STANDARD' ) THEN
3081 l_po_agreed_amount(x) := NULL;
3082 END IF;
3083
3084 --
3085 -- The amendment update is set to zero except for
3086 -- amendment (copyReset logic in AuctionItemPricesAllVOImpl)
3087 --
3088 IF (p_copy_type <> g_amend_copy ) THEN
3089 l_last_amendment_update(x) := 0;
3090 END IF;
3091
3092 --
3093 -- Blind copy of copyReset logic from AuctionItemPricesAllVOImpl
3094 -- May need to change it later on
3095 --
3096 IF (p_copy_type = g_active_neg_copy OR
3097 p_copy_type = g_rfi_to_other_copy) THEN
3098 l_modified_date(x) := SYSDATE;
3099 END IF;
3100
3101 --
3102 -- If there are any inactive PE AND the destination document can have
3103 -- some Price Elements then we have to flag it as modified. It
3104 -- is automatically modified and not done by the user. It can be done
3105 -- at cross copy as well amendment (if a PE is deactivated). The
3106 -- deactivated Price Elements will be listed down later while
3107 -- copying Price Elements
3108 --
3109 IF ((p_copy_type = g_new_rnd_copy
3110 OR p_copy_type = g_amend_copy
3111 OR p_copy_type = g_rfi_to_other_copy )
3112 AND ((l_had_obsoleted_pe(x) = 'Y' AND
3113 g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y')
3114 OR l_had_obsolete_attr_group(x) = 'Y'))THEN
3115
3116 l_modified_date(x) := SYSDATE;
3117 l_modified_flag(x) := 'Y';
3118
3119 IF (p_copy_type = g_amend_copy) THEN
3120 l_last_amendment_update(x) := p_last_amendment_number + 1;
3121 END IF;
3122
3123 END IF;
3124
3125 --
3126 -- Flag the g_has_inactive_pe_flag if not already done for future use.
3127 --
3128 IF ( g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y'
3129 AND l_had_obsoleted_pe(x) = 'Y'
3130 AND g_has_inactive_pe_flag = 'N' ) THEN
3131 g_has_inactive_pe_flag := 'Y';
3132 END IF;
3133
3134 --
3135 -- Check if the line is modified due to style
3136 --
3137 -- attribute disabled by style and the line has attributes
3138 IF (l_has_attributes_flag(x) = 'Y' AND
3139 g_neg_style_control.line_attribute_enabled_flag = 'N') THEN
3140
3141 l_has_attributes_flag(x) := 'N';
3142
3143 l_modified_date(x) := SYSDATE;
3144 l_modified_flag(x) := 'Y';
3145
3146 END IF;
3147
3148 -- mas disabled by style
3149 IF ((l_is_quantity_scored(x) = 'Y' OR
3150 l_is_need_by_date_scored(x) = 'Y' ) AND
3151 g_neg_style_control.line_mas_enabled_flag = 'N') THEN
3152
3153 l_is_quantity_scored(x) := 'N';
3154 l_is_need_by_date_scored(x) := 'N';
3155
3156 l_modified_date(x) := SYSDATE;
3157 l_modified_flag(x) := 'Y';
3158 END IF;
3159
3160 --
3161 -- Quantity based price tiers project
3162 -- If source negotiation has price tiers but style for new negotiation does not allow
3163 -- price tiers then set the flag to 'N'
3164 --
3165 IF (l_has_quantity_tiers_flag(x) = 'Y' AND
3166 g_neg_style_control.qty_price_tiers_enabled_flag = 'N') THEN
3167
3168 l_has_quantity_tiers_flag(x) := 'N';
3169 l_modified_date(x) := SYSDATE;
3170 l_modified_flag(x) := 'Y';
3171 END IF;
3172
3173 --
3174 -- Check if there is any line with some obsolete group. Flag the
3175 -- l_has_some_obsolete_attr_group in that case
3176 --
3177 IF (l_has_some_obsolete_attr_group <> 'Y') THEN
3178 IF (l_had_obsolete_attr_group(x) = 'Y') THEN
3179 l_has_some_obsolete_attr_group := 'Y';
3180 END IF;
3181 END IF;
3182
3183 --
3184 -- Cross Copy Logic For Lines
3185 --
3186 -- If the PE are not applicable to the destination doctype and source has
3187 -- some PE then it should be marked as automatically modified
3188 --
3189 IF ((g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'N' OR
3190 g_neg_style_control.price_element_enabled_flag = 'N') AND
3191 (l_has_price_elements_flag(x) = 'Y' OR
3192 l_has_buyer_pfs_flag(x) = 'Y')) THEN
3193 l_has_active_buyer_pe_flag(x) := 'N';
3194 l_has_active_supplier_pe_flag(x) := 'N';
3195 l_unit_target_price(x) := NULL;
3196 l_unit_display_target_flag(x) := 'N';
3197 l_modified_date(x) := SYSDATE;
3198 l_modified_flag(x) := 'Y';
3199 END IF;
3200
3201 -- If there are no supplier price elements, make sure line price fields are reset
3202 IF (l_has_active_supplier_pe_flag(x) = 'N') THEN
3203
3204 l_unit_target_price(x) := NULL;
3205 l_unit_display_target_flag(x) := 'N';
3206
3207 END IF;
3208
3209 --
3210 -- This is the modified logic to mark the Global Agreement Flag to on in the following cases -
3211 -- 1. Copy From RFI -> Auction/RFQ and RFI has Rate Based Temp Labor line(s)
3212 -- 2. New Round From RFI -> Auction/RFQ and RFI has Rate Based Temp Labor line(s)
3213 -- 3. Draft Copy From RFI -> Auction/RFQ and RFI has Rate Based Temp Labor line(s)
3214 --
3215 IF (p_copy_type = g_rfi_to_other_copy OR
3216 ((p_copy_type = g_new_rnd_copy OR p_copy_type = g_draft_neg_copy) AND
3217 (p_source_doctype_id = g_rfi_doctype_id AND p_doctype_id <> p_source_doctype_id ))) THEN
3218
3219 IF( l_purchase_basis(x) = g_temp_labor AND l_has_temp_labor_lines <> 'Y') THEN
3220 l_has_temp_labor_lines := 'Y';
3221 END IF;
3222 END IF;
3223
3224
3225 -- Note: The following logic applies to copy/new round,
3226 -- and doesn't apply to amendment
3227
3228 --
3229 -- Similarly Price Breaks should be removed
3230 --
3231 -- PBs are dropped if not allowed, mark the line as modified
3232 IF (p_copy_type <> g_amend_copy) THEN
3233 IF (g_auc_doctype_rule_data.PRICE_BREAK = 'N' AND
3234 l_price_break_type(x) <> 'NONE') THEN
3235 l_price_break_type(x) := 'NONE';
3236 l_has_shipments_flag(x) := 'N';
3237 l_modified_date(x) := SYSDATE;
3238 l_modified_flag(x) := 'Y';
3239 END IF;
3240 END IF;
3241
3242 --
3243 -- Check all the prices if they need to carry over
3244 --
3245 IF (g_auc_doctype_rule_data.START_PRICE = 'N' ) THEN
3246 l_bid_start_price(x) := NULL;
3247 END IF;
3248
3249 IF (g_auc_doctype_rule_data.RESERVE_PRICE = 'N' ) THEN
3250 l_reserve_price(x) := NULL;
3251 END IF;
3252
3253 IF (g_auc_doctype_rule_data.TARGET_PRICE = 'N' ) THEN
3254 l_target_price(x) := NULL;
3255 END IF;
3256
3257 IF (g_auc_doctype_rule_data.CURRENT_PRICE = 'N' ) THEN
3258 l_current_price(x) := NULL;
3259 END IF;
3260
3261 --
3262 -- Currently only RFI has the NO_PRICE_QTY_ITEMS_POSSIBLE flag on and we will set
3263 -- this flag off once we are creating any other document type from RFI .
3264 -- We will keep the lines intact as possible otherwise.
3265 --
3266 IF (p_source_doctype_id = g_rfi_doctype_id AND
3267 p_doctype_id <> p_source_doctype_id) THEN
3268
3269 -- The Lines should be with Price and Qty
3270 l_price_disabled_flag(x) := 'N';
3271 l_quantity_disabled_flag(x) := 'N';
3272
3273 END IF;
3274
3275 -- Check if the doctype_id of RFI
3276 l_rfi_doctype_id := g_rfi_doctype_id;
3277
3278 IF (l_rfi_doctype_id = p_doctype_id
3279 AND p_doctype_id <> p_source_doctype_id) THEN
3280 -- For Cross Copy To RFI make all these fields NULL
3281
3282 -- default the score information
3283 IF (l_is_quantity_scored(x) = 'Y' OR l_is_need_by_date_scored(x) = 'Y') THEN
3284 l_is_quantity_scored(x) := 'N';
3285 l_is_need_by_date_scored(x) := 'N';
3286
3287 l_modified_date(x) := SYSDATE;
3288 l_modified_flag(x) := 'Y';
3289 END IF;
3290
3291 l_po_min_rel_amount(x) := NULL;
3292 l_requisition_number(x) := NULL;
3293
3294 --set the has_quantity_tiers to null for RFIs
3295 l_has_quantity_tiers_flag(x) := NULL;
3296
3297
3298 END IF;
3299
3300 --
3301 -- Lot based bidding project cross copy logic
3302 -- ("when cross-copying, set pon_auction_item_prices_all.source_line_number using
3303 -- pon_auction_item_prices_all.document_disp_line_number)
3304 --
3305 IF (p_doctype_id <> p_source_doctype_id AND
3306 ( p_copy_type = g_new_rnd_copy
3307 OR p_copy_type = g_amend_copy
3308 OR p_copy_type = g_rfi_to_other_copy)) THEN
3309 l_source_line_number(x) := l_document_disp_line_number(x);
3310 END IF;
3311
3312
3313
3314 -- Unified Catalog Feature is not supported on RFIs
3315 -- ex...ip category id and descriptors
3316 IF (p_doctype_id = g_rfi_doctype_id and
3317 p_source_doctype_id <> p_doctype_id) THEN
3318
3319 select decode(count(attribute_name), 0, 'N', 'Y')
3320 into l_has_descriptors
3321 from pon_auction_attributes
3322 where auction_header_id = p_source_auction_header_id and
3323 line_number = l_line_number(x) and
3324 ip_category_id is not null and
3325 rownum = 1;
3326
3327
3328 IF (l_ip_category_id(x) is not null or l_has_descriptors = 'Y') THEN
3329
3330 l_ip_category_id(x) := null;
3331
3332 IF (p_copy_type = g_new_rnd_copy OR
3333 p_copy_type = g_amend_copy) THEN
3334
3335 l_modified_date(x) := SYSDATE;
3336 l_modified_flag(x) := 'Y';
3337
3338
3339 IF (p_copy_type = g_amend_copy) THEN
3340 l_last_amendment_update(x) := p_last_amendment_number + 1;
3341 END IF;
3342
3343 END IF;
3344
3345 END IF;
3346
3347 END IF;
3348
3349
3350 --
3351 -- Copy Attachments for Lines if user wants to retain the attachments of the
3352 -- source document and the corresponding line in the source document has
3353 -- attachment flag on. It tried to assume that the original document should have
3354 -- the ATTACHMENT_FLAG properly set to prevent redundant calls on
3355 -- FND_ATTACHED_DOCUMENTS2_PKG API. But, most of the time it is NULL
3356 -- even if there are attachments. Hence dropping the condition as of now
3357 --
3358 IF ( p_retain_attachments = 'Y' ) THEN
3359 -- AND l_attachment_flag(x) = 'Y' ) THEN
3360 FND_ATTACHED_DOCUMENTS2_PKG.COPY_ATTACHMENTS (
3361 X_from_entity_name => 'PON_AUCTION_ITEM_PRICES_ALL',
3362 X_from_pk1_value => to_char(p_source_auction_header_id),
3363 X_from_pk2_value => to_char(l_line_number(x)),
3364 X_to_entity_name => 'PON_AUCTION_ITEM_PRICES_ALL',
3365 X_to_pk1_value => to_char(p_auction_header_id), -- PK1_VALUE
3366 X_to_pk2_value => to_char(l_line_number(x)),
3367 X_created_by => p_user_id, -- CREATED_BY
3368 X_last_update_login => fnd_global.login_id -- LAST_UPDATE_LOGIN
3369 );
3370
3371 END IF;
3372
3373 END LOOP;
3374
3375 FORALL x IN 1..l_line_number.COUNT
3376 INSERT
3377 INTO PON_AUCTION_ITEM_PRICES_ALL
3378 (AUCTION_HEADER_ID,
3379 AWARD_STATUS,
3380 LINE_NUMBER,
3381 ITEM_DESCRIPTION,
3382 CATEGORY_ID,
3383 CATEGORY_NAME,
3384 IP_CATEGORY_ID,
3385 UOM_CODE,
3386 QUANTITY,
3387 NEED_BY_DATE,
3388 SHIP_TO_LOCATION_ID,
3389 NUMBER_OF_BIDS,
3390 LOWEST_BID_PRICE,
3391 LOWEST_BID_QUANTITY,
3392 LOWEST_BID_PROMISED_DATE,
3393 LOWEST_BID_NUMBER,
3394 CLOSEST_PROMISED_DATE,
3395 CLOSEST_BID_PRICE,
3396 CLOSEST_BID_QUANTITY,
3397 CLOSEST_BID_NUMBER,
3398 TARGET_PRICE,
3399 THRESHOLD_PRICE,
3400 BID_START_PRICE,
3401 NOTE_TO_BIDDERS,
3402 ATTACHMENT_FLAG,
3403 LANGUAGE_CODE,
3404 CREATION_DATE,
3405 CREATED_BY,
3406 LAST_UPDATE_DATE,
3407 LAST_UPDATED_BY,
3408 AUCTION_CREATION_DATE,
3409 CLOSE_BIDDING_DATE,
3410 NUMBER_OF_EXTENSIONS,
3411 RESERVE_PRICE,
3412 DISPLAY_TARGET_PRICE_FLAG,
3413 CURRENT_PRICE,
3414 BEST_BID_PRICE,
3415 BEST_BID_QUANTITY,
3416 BEST_BID_PROMISED_DATE,
3417 BEST_BID_NUMBER,
3418 TYPE,
3419 LOT_LINE_NUMBER,
3420 MIN_BID_INCREMENT,
3421 MIN_BID_DECREMENT,
3422 BEST_BID_PROXY_LIMIT_PRICE,
3423 BEST_BID_CURRENCY_PRICE,
3424 BEST_BID_CURRENCY_CODE,
3425 PO_MIN_REL_AMOUNT,
3426 BEST_BID_FIRST_BID_PRICE,
3427 UNIT_OF_MEASURE,
3428 HAS_ATTRIBUTES_FLAG,
3429 TRANSPORTATION_ORIGIN,
3430 TRANSPORTATION_DEST,
3431 AUCTION_HEADER_ID_ORIG_ROUND,
3432 AUCTION_HEADER_ID_PREV_ROUND,
3433 LINE_NUMBER_ORIGINAL_ROUND,
3434 LINE_NUMBER_PREV_ROUND,
3435 MULTIPLE_PRICES_FLAG,
3436 RESIDUAL_QUANTITY,
3437 PENDING_QUANTITY,
3438 CANCEL_QUANTITY,
3439 NUMBER_OF_COMMITMENTS,
3440 NUMBER_OF_PENDING_COMMITMENTS,
3441 TBD_PRICING_FLAG,
3442 NEED_BY_START_DATE,
3443 PRICE,
3444 FREIGHT_TERMS_CODE,
3445 AWARDED_QUANTITY,
3446 MODIFIED_FLAG,
3447 BEST_BID_BID_PRICE,
3448 BEST_BID_SCORE,
3449 BEST_BID_BID_NUMBER,
3450 BEST_BID_BID_CURRENCY_PRICE,
3451 BEST_BID_BID_CURRENCY_CODE,
3452 ORG_ID,
3453 HAS_PRICE_ELEMENTS_FLAG,
3454 LINE_TYPE_ID,
3455 ORDER_TYPE_LOOKUP_CODE,
3456 LINE_ORIGINATION_CODE,
3457 REQUISITION_NUMBER,
3458 ITEM_REVISION,
3459 ITEM_ID,
3460 ITEM_NUMBER,
3461 PRICE_BREAK_TYPE,
3462 PRICE_BREAK_NEG_FLAG,
3463 HAS_SHIPMENTS_FLAG,
3464 SOURCE_DOC_NUMBER,
3465 SOURCE_LINE_NUMBER,
3466 SOURCE_DOC_ID,
3467 SOURCE_LINE_ID,
3468 ALLOCATION_STATUS,
3469 PRICE_DISABLED_FLAG,
3470 QUANTITY_DISABLED_FLAG,
3471 JOB_ID,
3472 ADDITIONAL_JOB_DETAILS,
3473 PO_AGREED_AMOUNT,
3474 HAS_PRICE_DIFFERENTIALS_FLAG,
3475 DIFFERENTIAL_RESPONSE_TYPE,
3476 PURCHASE_BASIS,
3477 IS_QUANTITY_SCORED,
3478 IS_NEED_BY_DATE_SCORED,
3479 DISP_LINE_NUMBER,
3480 LAST_UPDATE_LOGIN,
3481 LAST_AMENDMENT_UPDATE,
3482 MODIFIED_DATE,
3483 PRICE_DIFF_SHIPMENT_NUMBER,
3484 GROUP_TYPE,
3485 PARENT_LINE_NUMBER,
3486 DOCUMENT_DISP_LINE_NUMBER,
3487 MAX_SUB_LINE_SEQUENCE_NUMBER,
3488 SUB_LINE_SEQUENCE_NUMBER,
3489 HAS_BUYER_PFS_FLAG,
3490 UNIT_TARGET_PRICE,
3491 UNIT_DISPLAY_TARGET_FLAG,
3492 HAS_PAYMENTS_FLAG,
3493 ADVANCE_AMOUNT,
3494 RECOUPMENT_RATE_PERCENT,
3495 PROGRESS_PYMT_RATE_PERCENT,
3496 RETAINAGE_RATE_PERCENT,
3497 MAX_RETAINAGE_AMOUNT,
3498 WORK_APPROVER_USER_ID,
3499 PROJECT_ID,
3500 PROJECT_TASK_ID,
3501 PROJECT_AWARD_ID,
3502 PROJECT_EXPENDITURE_TYPE,
3503 PROJECT_EXP_ORGANIZATION_ID,
3504 PROJECT_EXPENDITURE_ITEM_DATE,
3505 HAS_QUANTITY_TIERS)
3506 VALUES (
3507 p_auction_header_id,
3508 NULL, -- AWARD_STATUS, defaulted to NULL
3509 l_line_number(x),
3510 l_item_description(x),
3511 l_category_id(x),
3512 l_category_name(x),
3513 l_ip_category_id(x),
3514 --
3515 -- UOM_CODE is carried as we only create RFI lines with Price and
3516 -- Qunatity for cross-copy
3517 --
3518 l_uom_code(x),
3519 l_quantity(x),
3520 l_need_by_date(x), -- NEED_BY_DATE is carried over
3521 l_ship_to_location_id(x),
3522 NULL, -- NUMBER_OF_BIDS, defaulted to NULL
3523 NULL, -- LOWEST_BID_PRICE, defaulted to NULL
3524 NULL, -- LOWEST_BID_QUANTITY, defaulted to NULL
3525 NULL, -- LOWEST_BID_PROMISED_DATE, defaulted to NULL
3526 NULL, -- LOWEST_BID_NUMBER, defaulted to NULL
3527 NULL, -- CLOSEST_PROMISED_DATE, defaulted to NULL
3528 NULL, -- CLOSEST_BID_PRICE, defaulted to NULL
3529 NULL, -- CLOSEST_BID_QUANTITY, defaulted to NULL
3530 NULL, -- CLOSEST_BID_NUMBER, defaulted to NULL
3531 l_target_price(x),
3532 l_threshold_price(x),
3533 l_bid_start_price(x),
3534 l_note_to_bidders(x),
3535 l_attachment_flag(x),
3536 l_language_code(x),
3537 SYSDATE, -- CREATION_DATE
3538 p_user_id , -- CREATED_BY
3539 SYSDATE, -- LAST_UPDATE_DATE
3540 p_user_id, -- LAST_UPDATED_BY
3541 NULL, -- AUCTION_CREATION_DATE
3542
3543 l_close_bidding_date(x), -- CLOSE_BIDDING_DATE, defaulted to NULL
3544 NULL, -- NUMBER_OF_EXTENSIONS, defaulted to NULL
3545 l_reserve_price(x), -- RESERVE_PRICE
3546 l_display_target_price_flag(x),
3547 l_current_price(x),
3548 NULL, -- BEST_BID_PRICE, defaulted to NULL
3549 NULL, -- BEST_BID_QUANTITY , defaulted to NULL
3550 NULL, -- BEST_BID_PROMISED_DATE , defaulted to NULL
3551 NULL, -- BEST_BID_NUMBER , defaulted to NULL
3552 l_type(x), -- TYPE, seems NULL always
3553 l_lot_line_number(x),
3554 l_min_bid_increment(x), -- MIN_BID_INCREMENT keeping it
3555 l_min_bid_decrement(x), -- MIN_BID_DECREMENT keeping it
3556 NULL, -- BEST_BID_PROXY_LIMIT_PRICE, defaulted to NULL
3557 NULL, -- BEST_BID_CURRENCY_PRICE, defaulted to NULL
3558 NULL, -- BEST_BID_CURRENCY_CODE, defaulted to NULL
3559 l_po_min_rel_amount(x), -- PO_MIN_REL_AMOUNT, only reset for copy to RFI
3560 NULL, -- BEST_BID_FIRST_BID_PRICE, defaulted to NULL
3561 l_unit_of_measure(x),
3562 l_has_attributes_flag(x),
3563 l_transportation_origin(x),
3564 l_transportation_dest(x),
3565 NULL, -- AUCTION_HEADER_ID_ORIG_ROUND, No need to take care, they're not used ?
3566 NULL, -- AUCTION_HEADER_ID_PREV_ROUND, No need to take care, they're not used ?
3567 NULL, -- LINE_NUMBER_ORIGINAL_ROUND, No need to take care, they're not used ?
3568 NULL, -- LINE_NUMBER_PREV_ROUND, No need to take care, they're not used ?
3569 l_multiple_prices_flag(x),
3570 NULL, -- RESIDUAL_QUANTITY
3571 NULL, -- PENDING_QUANTITY, defaulted to NULL
3572 NULL, -- CANCEL_QUANTITY, defaulted to NULL
3573 NULL, -- NUMBER_OF_COMMITMENTS, defaulted to NULL
3574 NULL, -- NUMBER_OF_PENDING_COMMITMENTS, defaulted to NULL
3575 l_tbd_pricing_flag(x),
3576 l_need_by_start_date(x), -- NEED_BY_START_DATE
3577 NULL, -- PRICE
3578 l_freight_terms_code(x),
3579 NULL, -- AWARDED_QUANTITY, defaulted to NULL
3580 l_modified_flag(x), -- MODIFIED_FLAG
3581 NULL, -- BEST_BID_BID_PRICE, defaulted to NULL
3582 NULL, -- BEST_BID_SCORE, defaulted to NULL
3583 NULL, -- BEST_BID_BID_NUMBER, defaulted to NULL
3584 NULL, -- BEST_BID_BID_CURRENCY_PRICE, defaulted to NULL
3585 NULL, -- BEST_BID_BID_CURRENCY_CODE, defaulted to NULL
3586 l_org_id(x),
3587 l_has_active_supplier_pe_flag(x),
3588 l_line_type_id(x),
3589 l_order_type_lookup_code(x), -- ORDER_TYPE_LOOKUP_CODE
3590 l_line_origination_code(x), -- LINE_ORIGINATION_CODE
3591 l_requisition_number(x), -- REQUISITION_NUMBER
3592 l_item_revision(x),
3593 l_item_id(x),
3594 l_item_number(x),
3595 l_price_break_type(x),
3596 l_price_break_neg_flag(x),
3597 l_has_shipments_flag(x),
3598 l_source_doc_number(x) , -- SOURCE_DOC_NUMBER, defaulted to NULL for active copy
3599 l_source_line_number(x) , -- SOURCE_LINE_NUMBER, defaulted to NULL for active copy
3600 l_souce_doc_id(x) , -- SOURCE_DOC_ID, defaulted to NULL for active copy
3601 l_source_line_id(x) , -- SOURCE_LINE_ID, defaulted to NULL for active copy
3602 NULL, -- ALLOCATION_STATUS, defaulted to NULL
3603 l_price_disabled_flag(x),
3604 l_quantity_disabled_flag(x),
3605 l_job_id(x),
3606 l_additional_job_details(x),
3607 l_po_agreed_amount(x), -- PO_AGREED_AMOUNT, keeping this except for active copy
3608 decode( g_auc_doctype_rule_data.ALLOW_PRICE_DIFFERENTIAL,
3609 'Y', l_has_price_differentials_flag(x),
3610 'N'), -- HAS_PRICE_DIFFERENTIALS_FLAG
3611 l_differential_response_type(x),
3612 l_purchase_basis(x),
3613 l_is_quantity_scored(x),
3614 l_is_need_by_date_scored(x),
3615 l_disp_line_number(x),
3616 p_user_id,
3617 l_last_amendment_update(x),
3618 l_modified_date(x),
3619 l_price_diff_shipment_number(x),
3620 l_group_type(x), -- Lot based project related columns
3621 l_parent_line_number(x),
3622 l_document_disp_line_number(x), -- Is it properly set?
3623 decode(l_is_succession, 'Y', l_max_sub_line_sequence_number(x), null),
3624 l_sub_line_sequence_number(x),
3625 l_has_active_buyer_pe_flag(x), -- Transformation project related columns
3626 l_unit_target_price(x),
3627 l_unit_display_target_flag(x),
3628 l_has_payments_flag (x),
3629 l_advance_amount (x),
3630 l_recoupment_rate_percent(x),
3631 l_progress_pymt_rate_percent(x),
3632 l_retainage_rate_percent(x),
3633 l_max_retainage_amount(x),
3634 l_work_approver_user_id(x),
3635 l_project_id(x),
3636 l_project_task_id(x),
3637 l_project_award_id(x),
3638 l_project_expenditure_type(x),
3639 l_project_exp_organization_id(x),
3640 l_project_exp_item_date(x),
3641 l_has_quantity_tiers_flag(x));
3642
3643 END IF; --}
3644
3645 --
3646 -- Add warning message if there are some obsolete attribute group
3647 -- (Exsisting copyReset method logic of AuctionItemPricesAllVOImpl class)
3648 --
3649 IF (l_has_some_obsolete_attr_group = 'Y') THEN
3650 -- log the message
3651 LOG_MESSAGE('copy_negotiation','Some of the source attribute group type is/are obsolete.' );
3652
3653 --
3654 -- The way I am adding this warning may get changed in the future.
3655 -- So, please be aware of that. No need to add the doctype variant of the message
3656 -- as they are all practically same
3657 --
3658 FND_MESSAGE.SET_NAME('PON','PON_AUC_INACTIVE_ATTR_GROUP');
3659 FND_MSG_PUB.ADD;
3660
3661 g_added_inactv_attr_grp_msg := 'Y';
3662
3663 -- Set the warning flag on
3664 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3665
3666 END IF;
3667
3668 --
3669 -- This is logic as implemented in setOutcomeAndGlobalFlag method of
3670 -- NegotiationCreationAMImpl.
3671 -- If there are any Rate Based Temp Labor lines in the source negotiation
3672 -- then mark the Global Agreement Flag on as these line type can not
3673 -- exsist without this flag on. We are not setting the Contract Type to
3674 -- BPA as it can be BPA or CPA and user can choose them on the Creation
3675 -- Header page
3676 --
3677 IF (l_has_temp_labor_lines = 'Y') THEN
3678 UPDATE PON_AUCTION_HEADERS_ALL
3679 SET GLOBAL_AGREEMENT_FLAG = 'Y'
3680 WHERE AUCTION_HEADER_ID = p_auction_header_id;
3681 END IF;
3682 END;
3683 --} End of COPY_LINES
3684
3685 --
3686 -- Procedure to copy the section information for Requirement aka Header Attributes.
3687 -- Note there is no entry in section table for Line Attributes.
3688 --
3689 PROCEDURE COPY_SECTION ( p_source_auction_header_id IN NUMBER,
3690 p_auction_header_id IN NUMBER,
3691 p_tp_id IN NUMBER,
3692 p_tp_contact_id IN NUMBER,
3693 p_tp_name IN VARCHAR2,
3694 p_tpc_name IN VARCHAR2,
3695 p_user_id IN NUMBER,
3696 p_source_doctype_id IN NUMBER,
3697 p_doctype_id IN NUMBER,
3698 p_copy_type IN VARCHAR2)
3699 IS
3700 BEGIN
3701 --{
3702 --
3703 -- Cross Copy Logic For Section
3704 --
3705 insert into pon_auction_sections
3706 ( AUCTION_HEADER_ID,
3707 LINE_NUMBER,
3708 ATTRIBUTE_LIST_ID,
3709 SECTION_ID,
3710 PREVIOUS_SECTION_ID,
3711 ATTR_GROUP_SEQ_NUMBER,
3712 SECTION_NAME,
3713 CREATION_DATE,
3714 CREATED_BY,
3715 LAST_UPDATE_DATE,
3716 LAST_UPDATED_BY,
3717 LAST_UPDATE_LOGIN,
3718 TWO_PART_SECTION_TYPE)
3719 select
3720 p_auction_header_id,
3721 LINE_NUMBER,
3722 ATTRIBUTE_LIST_ID,
3723 PON_AUCTION_SECTIONS_S.NEXTVAL,
3724 -- Team Scoring
3725 -- Commenting the following line to allow copying of sections
3726 -- even in case of cross copy or draft copy as previous section
3727 -- id is needed while copying team assignments on the new document
3728 -- decode(p_copy_type, g_new_rnd_copy,SECTION_ID, g_amend_copy, SECTION_ID,null),
3729 --
3730 SECTION_ID,
3731 ATTR_GROUP_SEQ_NUMBER,
3732 SECTION_NAME,
3733 SYSDATE,
3734 p_user_id,
3735 SYSDATE,
3736 p_user_id,
3737 p_user_id,
3738 DECODE(p_doctype_id, g_rfq_doctype_id, TWO_PART_SECTION_TYPE, NULL)
3739 FROM PON_AUCTION_SECTIONS
3740 WHERE AUCTION_HEADER_ID = p_source_auction_header_id;
3741 --}
3742
3743 END;
3744 --} End of COPY_SECTION
3745
3746
3747 /*======================
3748 FROM HERE
3749 ======================*/
3750
3751
3752
3753
3754 --
3755 -- Procedure to copy the header attributes for a given a negotiation.
3756 --
3757
3758 PROCEDURE COPY_HEADER_ATTRIBUTE ( p_source_auction_header_id IN NUMBER,
3759 p_auction_header_id IN NUMBER,
3760 p_tp_id IN NUMBER,
3761 p_tp_contact_id IN NUMBER,
3762 p_tp_name IN VARCHAR2,
3763 p_tpc_name IN VARCHAR2,
3764 p_user_id IN NUMBER,
3765 p_source_doctype_id IN NUMBER,
3766 p_doctype_id IN NUMBER,
3767 p_copy_type IN VARCHAR2
3768 )
3769 IS
3770
3771 l_line_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3772 l_attribute_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
3773 l_description PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
3774 l_datatype PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
3775 l_mandatory_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3776 l_value PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
3777 l_display_prompt PON_NEG_COPY_DATATYPES_GRP.VARCHAR100_TYPE;
3778 l_help_text PON_NEG_COPY_DATATYPES_GRP.VARCHAR2000_TYPE;
3779 l_display_target_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3780 l_attribute_list_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3781 l_display_only_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3782 l_sequence_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3783 l_copied_from_cat_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3784 l_weight PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3785 l_scoring_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
3786 l_attr_level PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
3787 l_attr_group PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
3788 l_attr_max_score PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3789 l_internal_attr_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3790 l_attr_group_seq_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3791 l_attr_disp_seq_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3792
3793 l_modified_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3794 l_modified_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
3795 l_last_amendment_update PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3796 l_ip_category_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3797 l_ip_descriptor_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3798 l_is_obsolete_attribute PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
3799 l_section_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
3800 l_knockout_score PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
3801 l_scoring_method PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
3802
3803 l_has_inactv_hdr_attr_grp VARCHAR2(1);
3804
3805 l_contract_type PON_AUCTION_HEADERS_ALL.CONTRACT_TYPE%TYPE;
3806
3807 BEGIN
3808 --{ Start of COPY_HEADER_ATTRIBUTE
3809
3810 l_has_inactv_hdr_attr_grp := 'N';
3811
3812 --
3813 -- Need to apply the bulkcopy approach as we have to use some logic based on the
3814 -- obsolete attributes and it will be bit clumsy to handle it in the direct insert
3815 --
3816 SELECT
3817 LINE_NUMBER,
3818 ATTRIBUTE_NAME,
3819 DESCRIPTION,
3820 DATATYPE ,
3821 MANDATORY_FLAG,
3822 VALUE,
3823 DISPLAY_PROMPT,
3824 HELP_TEXT,
3825 DISPLAY_TARGET_FLAG,
3826 ATTRIBUTE_LIST_ID,
3827 DISPLAY_ONLY_FLAG,
3828 SEQUENCE_NUMBER,
3829 COPIED_FROM_CAT_FLAG,
3830 WEIGHT,
3831 SCORING_TYPE,
3832 ATTR_LEVEL ,
3833 ATTR_GROUP,
3834 ATTR_MAX_SCORE,
3835 INTERNAL_ATTR_FLAG,
3836 ATTR_GROUP_SEQ_NUMBER,
3837 ATTR_DISP_SEQ_NUMBER ,
3838 MODIFIED_FLAG,
3839 MODIFIED_DATE,
3840 LAST_AMENDMENT_UPDATE,
3841 IP_CATEGORY_ID,
3842 IP_DESCRIPTOR_ID,
3843 IS_OBSOLETE_ATTRIBUTE,
3844 SECTION_NAME,
3845 KNOCKOUT_SCORE,
3846 SCORING_METHOD
3847 BULK COLLECT
3848 INTO
3849 l_line_number,
3850 l_attribute_name,
3851 l_description,
3852 l_datatype,
3853 l_mandatory_flag,
3854 l_value,
3855 l_display_prompt,
3856 l_help_text,
3857 l_display_target_flag,
3858 l_attribute_list_id,
3859 l_display_only_flag,
3860 l_sequence_number,
3861 l_copied_from_cat_flag,
3862 l_weight,
3863 l_scoring_type,
3864 l_attr_level,
3865 l_attr_group,
3866 l_attr_max_score,
3867 l_internal_attr_flag,
3868 l_attr_group_seq_number,
3869 l_attr_disp_seq_number,
3870 l_modified_flag,
3871 l_modified_date,
3872 l_last_amendment_update,
3873 l_ip_category_id,
3874 l_ip_descriptor_id,
3875 l_is_obsolete_attribute,
3876 l_section_name,
3877 l_knockout_score,
3878 l_scoring_method
3879 FROM
3880 (SELECT P.LINE_NUMBER,
3881 P.ATTRIBUTE_NAME,
3882 P.DESCRIPTION,
3883 P.DATATYPE ,
3884 P.MANDATORY_FLAG,
3885 P.VALUE,
3886 P.DISPLAY_PROMPT,
3887 P.HELP_TEXT,
3888 P.DISPLAY_TARGET_FLAG,
3889 P.ATTRIBUTE_LIST_ID,
3890 P.DISPLAY_ONLY_FLAG,
3891 P.SEQUENCE_NUMBER,
3892 P.COPIED_FROM_CAT_FLAG,
3893 P.WEIGHT,
3894 P.SCORING_TYPE,
3895 P.ATTR_LEVEL ,
3896 P.ATTR_GROUP,
3897 P.ATTR_MAX_SCORE,
3898 P.INTERNAL_ATTR_FLAG,
3899 P.ATTR_GROUP_SEQ_NUMBER,
3900 P.ATTR_DISP_SEQ_NUMBER ,
3901 P.MODIFIED_FLAG,
3902 P.MODIFIED_DATE,
3903 P.LAST_AMENDMENT_UPDATE,
3904 P.IP_CATEGORY_ID,
3905 P.IP_DESCRIPTOR_ID,
3906 'N' AS IS_OBSOLETE_ATTRIBUTE,
3907 P.SECTION_NAME,
3908 P.KNOCKOUT_SCORE,
3909 P.SCORING_METHOD
3910 FROM PON_AUCTION_ATTRIBUTES P
3911 WHERE P.AUCTION_HEADER_ID = p_source_auction_header_id
3912 AND P.ATTR_LEVEL = 'HEADER'
3913 AND g_neg_style_control.hdr_attribute_enabled_flag = 'Y'
3914 --copy the header attributes only once
3915 --so we need the below where condition
3916 --AND p_from_line_number = 1
3917 GROUP BY P.LINE_NUMBER, P.ATTRIBUTE_NAME, P.DESCRIPTION, P.DATATYPE,
3918 P.MANDATORY_FLAG, P.VALUE, P.DISPLAY_PROMPT, P.HELP_TEXT, P.DISPLAY_TARGET_FLAG,
3919 P.ATTRIBUTE_LIST_ID, P.DISPLAY_ONLY_FLAG, P.SEQUENCE_NUMBER, P.COPIED_FROM_CAT_FLAG,
3920 P.WEIGHT, P.SCORING_TYPE, P.ATTR_LEVEL, P.ATTR_GROUP, P.ATTR_MAX_SCORE, P.INTERNAL_ATTR_FLAG,
3921 P.ATTR_GROUP_SEQ_NUMBER, P.ATTR_DISP_SEQ_NUMBER, P.MODIFIED_FLAG, P.MODIFIED_DATE,
3922 P.LAST_AMENDMENT_UPDATE, P.IP_CATEGORY_ID, P.IP_DESCRIPTOR_ID,P.SECTION_NAME,P.KNOCKOUT_SCORE,P.SCORING_METHOD
3923 );
3924
3925 IF (l_attribute_name.COUNT <> 0) THEN
3926 --{
3927 FOR x IN 1..l_attribute_name.COUNT
3928 LOOP
3929 --{
3930
3931 l_modified_flag(x) := NULL;
3932
3933 IF ( p_copy_type = g_active_neg_copy OR
3934 p_copy_type = g_rfi_to_other_copy) THEN
3935 l_modified_date(x):= SYSDATE;
3936 END IF;
3937
3938 IF (p_copy_type = g_active_neg_copy OR
3939 p_copy_type = g_rfi_to_other_copy OR
3940 p_copy_type = g_new_rnd_copy) THEN
3941 l_last_amendment_update(x) := 0;
3942 END IF;
3943
3944 --}
3945 END LOOP;
3946
3947 FORALL x IN 1..l_attribute_name.COUNT
3948 INSERT
3949 INTO PON_AUCTION_ATTRIBUTES
3950 (AUCTION_HEADER_ID,
3951 LINE_NUMBER,
3952 ATTRIBUTE_NAME,
3953 DESCRIPTION,
3954 DATATYPE,
3955 MANDATORY_FLAG,
3956 VALUE,
3957 DISPLAY_PROMPT,
3958 HELP_TEXT,
3959 DISPLAY_TARGET_FLAG,
3960 CREATION_DATE,
3961 CREATED_BY,
3962 LAST_UPDATE_DATE,
3963 LAST_UPDATED_BY,
3964 ATTRIBUTE_LIST_ID,
3965 DISPLAY_ONLY_FLAG,
3966 SEQUENCE_NUMBER,
3967 COPIED_FROM_CAT_FLAG,
3968 WEIGHT,
3969 SCORING_TYPE,
3970 ATTR_LEVEL,
3971 ATTR_GROUP,
3972 ATTR_MAX_SCORE,
3973 INTERNAL_ATTR_FLAG,
3974 ATTR_GROUP_SEQ_NUMBER,
3975 ATTR_DISP_SEQ_NUMBER,
3976 MODIFIED_FLAG,
3977 MODIFIED_DATE,
3978 LAST_AMENDMENT_UPDATE,
3979 IP_CATEGORY_ID,
3980 IP_DESCRIPTOR_ID,
3981 SECTION_NAME,
3982 KNOCKOUT_SCORE,
3983 SCORING_METHOD)
3984 VALUES
3985 (p_auction_header_id,
3986 l_line_number(x),
3987 l_attribute_name(x),
3988 l_description(x),
3989 l_datatype(x),
3990 l_mandatory_flag(x),
3991 l_value(x),
3992 l_display_prompt(x),
3993 l_help_text(x),
3994 l_display_target_flag(x),
3995 SYSDATE, -- CREATION_DATE
3996 p_user_id, -- CREATED_BY
3997 SYSDATE, -- LAST_UPDATE_DATE
3998 p_user_id, -- LAST_UPDATED_BY
3999 l_attribute_list_id(x),
4000 l_display_only_flag(x),
4001 l_sequence_number(x),
4002 l_copied_from_cat_flag(x),
4003 l_weight(x),
4004 l_scoring_type(x),
4005 l_attr_level(x),
4006 l_attr_group(x),
4007 l_attr_max_score(x),
4008 l_internal_attr_flag(x),
4009 l_attr_group_seq_number(x),
4010 l_attr_disp_seq_number(x),
4011 l_modified_flag(x),
4012 l_modified_date(x),
4013 l_last_amendment_update(x),
4014 l_ip_category_id(x),
4015 l_ip_descriptor_id(x),
4016 l_section_name(x),
4017 l_knockout_score(x),
4018 l_scoring_method(x));
4019
4020 --}
4021 END IF;
4022 END;
4023 --} End of COPY_HEADER_ATTRIBUTE
4024
4025
4026 --
4027 -- Procedure to copy the line as well as header attributes for a given a negotiation.
4028 -- It will also populate the obsolete attribute groups with the default attribute group
4029 -- value
4030 --
4031 PROCEDURE COPY_LINE_ATTRIBUTE ( p_source_auction_header_id IN NUMBER,
4032 p_auction_header_id IN NUMBER,
4033 p_tp_id IN NUMBER,
4034 p_tp_contact_id IN NUMBER,
4035 p_tp_name IN VARCHAR2,
4036 p_tpc_name IN VARCHAR2,
4037 p_user_id IN NUMBER,
4038 p_source_doctype_id IN NUMBER,
4039 p_doctype_id IN NUMBER,
4040 p_copy_type IN VARCHAR2,
4041 p_from_line_number IN NUMBER,
4042 p_to_line_number IN NUMBER
4043 )
4044 IS
4045
4046 l_line_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4047 l_attribute_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
4048 l_description PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
4049 l_datatype PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
4050 l_mandatory_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4051 l_value PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
4052 l_display_prompt PON_NEG_COPY_DATATYPES_GRP.VARCHAR100_TYPE;
4053 l_help_text PON_NEG_COPY_DATATYPES_GRP.VARCHAR2000_TYPE;
4054 l_display_target_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4055 l_attribute_list_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4056 l_display_only_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4057 l_sequence_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4058 l_copied_from_cat_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4059 l_weight PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4060 l_scoring_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
4061 l_attr_level PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
4062 l_attr_group PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
4063 l_attr_max_score PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4064 l_internal_attr_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4065 l_attr_group_seq_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4066 l_attr_disp_seq_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4067
4068 l_modified_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4069 l_modified_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
4070 l_last_amendment_update PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4071 l_ip_category_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4072 l_ip_descriptor_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4073 l_is_obsolete_attribute PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
4074 l_section_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
4075 l_knockout_score PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
4076 l_scoring_method PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
4077
4078 l_val1 VARCHAR2(300) := NULL;
4079 l_val2 VARCHAR2(300) := NULL;
4080 l_val3 VARCHAR2(300) := NULL;
4081 l_val4 VARCHAR2(300) := NULL;
4082
4083 l_group_val1 VARCHAR2(300) := NULL;
4084
4085 l_temp VARCHAR2(300);
4086 l_has_inactv_hdr_attr_grp VARCHAR2(1);
4087
4088 l_contract_type PON_AUCTION_HEADERS_ALL.CONTRACT_TYPE%TYPE;
4089
4090 BEGIN
4091 --{ Start of COPY_LINE_ATTRIBUTE
4092
4093 l_has_inactv_hdr_attr_grp := 'N';
4094
4095 --
4096 -- Get the default attribute group to substitute the obsolete attribute groups
4097 -- if encountered. l_val1 will have the desired value.
4098 --
4099 PON_PROFILE_UTIL_PKG.RETRIEVE_PARTY_PREF_COVER(
4100 p_party_id => p_tp_id,
4101 p_app_short_name => 'PON',
4102 p_pref_name => 'LINE_ATTR_DEFAULT_GROUP',
4103 x_pref_value => l_val1,
4104 x_pref_meaning => l_val2,
4105 x_status => l_val3,
4106 x_exception_msg => l_val4
4107 );
4108
4109 -- Now l_val1 has default Attr_group
4110 --
4111 -- Check possible error
4112 --
4113 IF (l_val3 <> FND_API.G_RET_STS_SUCCESS) THEN
4114 -- Log Error
4115 LOG_MESSAGE('copy_negotiation','Could not find the default line attribute group. Please check the negotiation configuration.');
4116 l_val1 := 'GENERAL';
4117 END IF;
4118 LOG_MESSAGE('copy_negotiation','Default Line Attribute Group:'||l_val1);
4119
4120 BEGIN
4121 SELECT 'Y'
4122 INTO l_temp
4123 FROM FND_LOOKUPS
4124 WHERE LOOKUP_TYPE = 'PON_LINE_ATTRIBUTE_GROUPS'
4125 AND LOOKUP_CODE = l_val1
4126 AND (ENABLED_FLAG = 'N' OR
4127 SYSDATE NOT BETWEEN
4128 NVL(START_DATE_ACTIVE,SYSDATE-1) AND
4129 NVL(END_DATE_ACTIVE,SYSDATE+1));
4130 --
4131 -- If the control is here that mens that the admin set default attribute
4132 -- group is itself not valid at this moment. Set it to some hardcode value
4133 --
4134 l_val1 := 'GENERAL';
4135
4136 -- Need to make sure that meaning column is there
4137 -- Sued to populate section_name column.
4138
4139 SELECT MEANING
4140 INTO l_val2
4141 FROM FND_LOOKUPS
4142 WHERE LOOKUP_TYPE = 'PON_LINE_ATTRIBUTE_GROUPS'
4143 AND LOOKUP_CODE = l_val1;
4144
4145 -- Needed as we need to make sure that there is some default line group meaning
4146
4147 LOG_MESSAGE('copy_negotiation','Default Line Attribute is inactive itself. Setting default attribute group to:'||l_group_val1);
4148
4149 EXCEPTION
4150 WHEN NO_DATA_FOUND THEN
4151 NULL;
4152 END;
4153
4154
4155
4156 --
4157 -- Need to apply the bulkcopy approach as we have to use some logic based on the
4158 -- obsolete attributes and it will be bit clumsy to handle it in the direct insert
4159 --
4160 SELECT
4161 LINE_NUMBER,
4162 ATTRIBUTE_NAME,
4163 DESCRIPTION,
4164 DATATYPE ,
4165 MANDATORY_FLAG,
4166 VALUE,
4167 DISPLAY_PROMPT,
4168 HELP_TEXT,
4169 DISPLAY_TARGET_FLAG,
4170 ATTRIBUTE_LIST_ID,
4171 DISPLAY_ONLY_FLAG,
4172 SEQUENCE_NUMBER,
4173 COPIED_FROM_CAT_FLAG,
4174 WEIGHT,
4175 SCORING_TYPE,
4176 ATTR_LEVEL ,
4177 ATTR_GROUP,
4178 ATTR_MAX_SCORE,
4179 INTERNAL_ATTR_FLAG,
4180 ATTR_GROUP_SEQ_NUMBER,
4181 ATTR_DISP_SEQ_NUMBER ,
4182 MODIFIED_FLAG,
4183 MODIFIED_DATE,
4184 LAST_AMENDMENT_UPDATE,
4185 IP_CATEGORY_ID,
4186 IP_DESCRIPTOR_ID,
4187 IS_OBSOLETE_ATTRIBUTE,
4188 SECTION_NAME,
4189 KNOCKOUT_SCORE,
4190 SCORING_METHOD
4191 BULK COLLECT
4192 INTO
4193 l_line_number,
4194 l_attribute_name,
4195 l_description,
4196 l_datatype,
4197 l_mandatory_flag,
4198 l_value,
4199 l_display_prompt,
4200 l_help_text,
4201 l_display_target_flag,
4202 l_attribute_list_id,
4203 l_display_only_flag,
4204 l_sequence_number,
4205 l_copied_from_cat_flag,
4206 l_weight,
4207 l_scoring_type,
4208 l_attr_level,
4209 l_attr_group,
4210 l_attr_max_score,
4211 l_internal_attr_flag,
4212 l_attr_group_seq_number,
4213 l_attr_disp_seq_number,
4214 l_modified_flag,
4215 l_modified_date,
4216 l_last_amendment_update,
4217 l_ip_category_id,
4218 l_ip_descriptor_id,
4219 l_is_obsolete_attribute,
4220 l_section_name,
4221 l_knockout_score,
4222 l_scoring_method
4223 FROM
4224 (
4225 SELECT P.LINE_NUMBER,
4226 P.ATTRIBUTE_NAME,
4227 P.DESCRIPTION,
4228 P.DATATYPE ,
4229 P.MANDATORY_FLAG,
4230 P.VALUE,
4231 P.DISPLAY_PROMPT,
4232 P.HELP_TEXT,
4233 P.DISPLAY_TARGET_FLAG,
4234 P.ATTRIBUTE_LIST_ID,
4235 P.DISPLAY_ONLY_FLAG,
4236 P.SEQUENCE_NUMBER,
4237 P.COPIED_FROM_CAT_FLAG,
4238 P.WEIGHT,
4239 P.SCORING_TYPE,
4240 P.ATTR_LEVEL ,
4241 P.ATTR_GROUP,
4242 P.ATTR_MAX_SCORE,
4243 P.INTERNAL_ATTR_FLAG,
4244 P.ATTR_GROUP_SEQ_NUMBER,
4245 P.ATTR_DISP_SEQ_NUMBER ,
4246 P.MODIFIED_FLAG,
4247 P.MODIFIED_DATE,
4248 P.LAST_AMENDMENT_UPDATE,
4249 P.IP_CATEGORY_ID,
4250 P.IP_DESCRIPTOR_ID,
4251 DECODE(NVL(COUNT(LOOKUP_CODE),0),0,'N','Y') IS_OBSOLETE_ATTRIBUTE,
4252 P.SECTION_NAME,
4253 P.KNOCKOUT_SCORE,
4254 P.SCORING_METHOD
4255 FROM PON_AUCTION_ATTRIBUTES P,
4256 (SELECT LOOKUP_CODE
4257 FROM FND_LOOKUPS
4258 WHERE LOOKUP_TYPE = 'PON_LINE_ATTRIBUTE_GROUPS'
4259 AND (ENABLED_FLAG = 'N'
4260 OR SYSDATE NOT BETWEEN NVL(START_DATE_ACTIVE,SYSDATE - 1 )
4261 AND NVL(END_DATE_ACTIVE,SYSDATE + 1 ))
4262 ) A
4263 WHERE P.AUCTION_HEADER_ID = p_source_auction_header_id
4264 AND P.ATTR_GROUP = A.LOOKUP_CODE(+)
4265 AND P.ATTR_LEVEL = 'LINE'
4266 AND g_neg_style_control.line_attribute_enabled_flag = 'Y'
4267 AND (P.SEQUENCE_NUMBER > -1 OR g_neg_style_control.line_mas_enabled_flag = 'Y')
4268 AND (P.IP_CATEGORY_ID is null OR (P.IP_CATEGORY_ID is not null and p_doctype_id <> g_rfi_doctype_id))
4269 AND P.line_number >= p_from_line_number
4270 AND P.line_number <= p_to_line_number
4271 GROUP BY P.LINE_NUMBER, P.ATTRIBUTE_NAME, P.DESCRIPTION, P.DATATYPE,
4272 P.MANDATORY_FLAG, P.VALUE, P.DISPLAY_PROMPT, P.HELP_TEXT, P.DISPLAY_TARGET_FLAG,
4273 P.ATTRIBUTE_LIST_ID, P.DISPLAY_ONLY_FLAG, P.SEQUENCE_NUMBER, P.COPIED_FROM_CAT_FLAG,
4274 P.WEIGHT, P.SCORING_TYPE, P.ATTR_LEVEL, P.ATTR_GROUP, P.ATTR_MAX_SCORE, P.INTERNAL_ATTR_FLAG,
4275 P.ATTR_GROUP_SEQ_NUMBER, P.ATTR_DISP_SEQ_NUMBER, P.MODIFIED_FLAG, P.MODIFIED_DATE,
4276 P.LAST_AMENDMENT_UPDATE, P.IP_CATEGORY_ID, P.IP_DESCRIPTOR_ID,P.SECTION_NAME,P.KNOCKOUT_SCORE,P.SCORING_METHOD);
4277
4278 IF (l_attribute_name.COUNT <> 0) THEN
4279 --{
4280 FOR x IN 1..l_attribute_name.COUNT
4281 LOOP
4282 --{
4283
4284 l_modified_flag(x) := NULL;
4285
4286 IF ( p_copy_type = g_active_neg_copy OR
4287 p_copy_type = g_rfi_to_other_copy) THEN
4288 l_modified_date(x):= SYSDATE;
4289 END IF;
4290
4291 IF (p_copy_type = g_active_neg_copy OR
4292 p_copy_type = g_rfi_to_other_copy OR
4293 p_copy_type = g_new_rnd_copy) THEN
4294 l_last_amendment_update(x) := 0;
4295 END IF;
4296
4297 --
4298 -- If the attribute is modified due to style
4299 -- set the flags
4300 --
4301 IF ((p_copy_type = g_new_rnd_copy OR
4302 p_copy_type = g_rfi_to_other_copy ) AND
4303 l_attr_level(x) = 'LINE' AND
4304 l_weight(x) is not null AND
4305 g_neg_style_control.line_mas_enabled_flag = 'N') THEN
4306
4307 l_modified_date(x) := SYSDATE;
4308 l_modified_flag(x) := 'Y';
4309
4310 END IF;
4311
4312 --
4313 -- If there are any obsolete attribute group then
4314 -- substitute it with default attribute group as decided
4315 -- by the system admin before hand
4316 --
4317 IF (l_is_obsolete_attribute(x) = 'Y' AND l_attr_level(x) = 'LINE') THEN
4318 l_attr_group(x) := l_val1;
4319 l_section_name(x) := l_val2;
4320 END IF;
4321
4322 --
4323 -- Cross Copy Logic For Attributes
4324 --
4325 -- Do not copy weights for lines when destination document type
4326 -- is RFI.
4327 -- The weights for the Lines are dropped as RFI doesn't support
4328 -- Multi Attribute Scoring feature.
4329 --
4330 -- Same if line mas is disabled
4331 IF ((g_rfi_doctype_id = p_doctype_id
4332 AND p_doctype_id <> p_source_doctype_id
4333 OR g_neg_style_control.line_mas_enabled_flag = 'N')
4334 AND l_attr_level(x) <> 'HEADER' ) THEN
4335 l_weight(x) := NULL;
4336 END IF;
4337
4338 IF ( g_neg_style_control.line_mas_enabled_flag = 'N'
4339 AND l_attr_level(x) <> 'HEADER' ) THEN
4340 l_scoring_type(x) := 'NONE';
4341 END IF;
4342 --}
4343 END LOOP;
4344
4345 FORALL x IN 1..l_attribute_name.COUNT
4346 INSERT
4347 INTO PON_AUCTION_ATTRIBUTES
4348 (AUCTION_HEADER_ID,
4349 LINE_NUMBER,
4350 ATTRIBUTE_NAME,
4351 DESCRIPTION,
4352 DATATYPE,
4353 MANDATORY_FLAG,
4354 VALUE,
4355 DISPLAY_PROMPT,
4356 HELP_TEXT,
4357 DISPLAY_TARGET_FLAG,
4358 CREATION_DATE,
4359 CREATED_BY,
4360 LAST_UPDATE_DATE,
4361 LAST_UPDATED_BY,
4362 ATTRIBUTE_LIST_ID,
4363 DISPLAY_ONLY_FLAG,
4364 SEQUENCE_NUMBER,
4365 COPIED_FROM_CAT_FLAG,
4366 WEIGHT,
4367 SCORING_TYPE,
4368 ATTR_LEVEL,
4369 ATTR_GROUP,
4370 ATTR_MAX_SCORE,
4371 INTERNAL_ATTR_FLAG,
4372 ATTR_GROUP_SEQ_NUMBER,
4373 ATTR_DISP_SEQ_NUMBER,
4374 MODIFIED_FLAG,
4375 MODIFIED_DATE,
4376 LAST_AMENDMENT_UPDATE,
4377 IP_CATEGORY_ID,
4378 IP_DESCRIPTOR_ID,
4379 SECTION_NAME,
4380 KNOCKOUT_SCORE,
4381 SCORING_METHOD)
4382 VALUES
4383 (p_auction_header_id,
4384 l_line_number(x),
4385 l_attribute_name(x),
4386 l_description(x),
4387 l_datatype(x),
4388 l_mandatory_flag(x),
4389 l_value(x),
4390 l_display_prompt(x),
4391 l_help_text(x),
4392 l_display_target_flag(x),
4393 SYSDATE, -- CREATION_DATE
4394 p_user_id, -- CREATED_BY
4395 SYSDATE, -- LAST_UPDATE_DATE
4396 p_user_id, -- LAST_UPDATED_BY
4397 l_attribute_list_id(x),
4398 l_display_only_flag(x),
4399 l_sequence_number(x),
4400 l_copied_from_cat_flag(x),
4401 l_weight(x),
4402 l_scoring_type(x),
4403 l_attr_level(x),
4404 l_attr_group(x),
4405 l_attr_max_score(x),
4406 l_internal_attr_flag(x),
4407 l_attr_group_seq_number(x),
4408 l_attr_disp_seq_number(x),
4409 l_modified_flag(x),
4410 l_modified_date(x),
4411 l_last_amendment_update(x),
4412 l_ip_category_id(x),
4413 l_ip_descriptor_id(x),
4414 l_section_name(x),
4415 l_knockout_score(x),
4416 l_scoring_method(x));
4417
4418
4419 -- Synch up descriptors when copying
4420 -- only update descriptor name and remove dropped descriptors
4421 SELECT contract_type
4422 INTO l_contract_type
4423 FROM pon_auction_headers_all
4424 WHERE auction_header_id = p_auction_header_id;
4425
4426 IF (l_contract_type in ('BLANKET', 'CONTRACT') and
4427 p_copy_type in (g_active_neg_copy, g_draft_neg_copy) and
4428 p_doctype_id <> g_rfi_doctype_id) THEN
4429
4430
4431 DELETE FROM pon_auction_attributes paa
4432 WHERE paa.auction_header_id = p_auction_header_id and
4433 paa.attr_level = 'LINE' and
4434 paa.ip_category_id is not null and
4435 not exists (select null
4436 from icx_cat_agreement_attrs_v
4437 where rt_category_id = paa.ip_category_id and
4438 attribute_id = paa.ip_descriptor_id and
4439 language = userenv('LANG'));
4440
4441
4442 UPDATE pon_auction_attributes paa
4443 SET attribute_name = (select attribute_name
4444 from icx_cat_agreement_attrs_v
4445 where rt_category_id = paa.ip_category_id and
4446 attribute_id = paa.ip_descriptor_id and
4447 language = userenv('LANG'))
4448 WHERE paa.auction_header_id = p_auction_header_id and
4449 paa.attr_level = 'LINE' and
4450 paa.ip_category_id is not null;
4451
4452
4453 END IF;
4454
4455 --}
4456 END IF;
4457 END;
4458 --} End of COPY_LINE_ATTRIBUTE
4459
4460
4461
4462 --
4463 -- R12 onwards Requiremnts ( Header Attr) can also have scores.
4464 -- So this procedure
4465 --
4466 PROCEDURE COPY_HEADER_ATTRIBUTE_SCORE (p_source_auction_header_id IN NUMBER,
4467 p_auction_header_id IN NUMBER,
4468 p_tp_id IN NUMBER,
4469 p_tp_contact_id IN NUMBER,
4470 p_tp_name IN VARCHAR2,
4471 p_tpc_name IN VARCHAR2,
4472 p_user_id IN NUMBER,
4473 p_source_doctype_id IN NUMBER,
4474 p_doctype_id IN NUMBER,
4475 p_copy_type IN VARCHAR2
4476 )
4477 IS
4478
4479 BEGIN
4480 --{
4481 INSERT
4482 INTO PON_ATTRIBUTE_SCORES
4483 ( AUCTION_HEADER_ID,
4484 LINE_NUMBER,
4485 ATTRIBUTE_SEQUENCE_NUMBER,
4486 VALUE,
4487 FROM_RANGE,
4488 TO_RANGE,
4489 SCORE,
4490 ATTRIBUTE_LIST_ID,
4491 SEQUENCE_NUMBER,
4492 CREATION_DATE,
4493 CREATED_BY,
4494 LAST_UPDATE_DATE,
4495 LAST_UPDATED_BY
4496 )
4497 (SELECT
4498 p_auction_header_id,
4499 pas.LINE_NUMBER,
4500 pas.ATTRIBUTE_SEQUENCE_NUMBER,
4501 pas.VALUE,
4502 pas.FROM_RANGE,
4503 pas.TO_RANGE,
4504 pas.SCORE,
4505 pas.ATTRIBUTE_LIST_ID,
4506 pas.SEQUENCE_NUMBER,
4507 SYSDATE, -- CREATION_DATE
4508 p_user_id, -- CREATED_BY
4509 SYSDATE, -- LAST_UPDATE_DATE
4510 p_user_id -- LAST_UPDATED_BY
4511 FROM PON_ATTRIBUTE_SCORES pas,
4512 PON_AUCTION_ATTRIBUTES paa
4513 WHERE pas.AUCTION_HEADER_ID = p_source_auction_header_id
4514 AND pas.auction_header_id = paa.auction_header_id
4515 AND pas.line_number = paa.line_number
4516 AND paa.attr_level = 'HEADER'
4517 AND pas.attribute_sequence_number = paa.sequence_number
4518 AND g_neg_style_control.hdr_attribute_enabled_flag = 'Y'
4519 ) ;
4520
4521 END;
4522 --} End of COPY_HEADER_ATTRIBUTE_SCORE
4523
4524
4525 --
4526 -- Procedure to Copy the Attribute Score information. It only copies the
4527 -- Attribute Scores if the destination document type can have Attribute Scores
4528 -- as governed by appropriate bizrule.
4529 --
4530 PROCEDURE COPY_LINE_ATTRIBUTE_SCORE (p_source_auction_header_id IN NUMBER,
4531 p_auction_header_id IN NUMBER,
4532 p_tp_id IN NUMBER,
4533 p_tp_contact_id IN NUMBER,
4534 p_tp_name IN VARCHAR2,
4535 p_tpc_name IN VARCHAR2,
4536 p_user_id IN NUMBER,
4537 p_source_doctype_id IN NUMBER,
4538 p_doctype_id IN NUMBER,
4539 p_copy_type IN VARCHAR2,
4540 p_from_line_number IN NUMBER,
4541 p_to_line_number IN NUMBER
4542 --the rows in the range p_from_line_number(included) to p_to_line_number(excluded) will be copied
4543 )
4544 IS
4545
4546 BEGIN
4547 --{
4548 --
4549 -- Cross Copy Logic For Attribute Scores
4550 --
4551 -- Do not copy attributes scores if it is Copy To RFI.
4552 -- We are not hardcoding the rule here by checking if the
4553 -- p_doctype_id <> g_rfi_doctype_id then only carry the score.
4554 -- Rather we are checking if BID_RANKING bizrule for the destination
4555 -- document type permits theAttribute Scores or not and then copying
4556 -- the Attribute Score values if permitted to do so.
4557 --
4558
4559 IF (g_auc_doctype_rule_data.BID_RANKING = 'MULTI_ATTRIBUTE_SCORING' ) THEN
4560 --{
4561 INSERT
4562 INTO PON_ATTRIBUTE_SCORES
4563 ( AUCTION_HEADER_ID,
4564 LINE_NUMBER,
4565 ATTRIBUTE_SEQUENCE_NUMBER,
4566 VALUE,
4567 FROM_RANGE,
4568 TO_RANGE,
4569 SCORE,
4570 ATTRIBUTE_LIST_ID,
4571 SEQUENCE_NUMBER,
4572 CREATION_DATE,
4573 CREATED_BY,
4574 LAST_UPDATE_DATE,
4575 LAST_UPDATED_BY
4576 )
4577 (SELECT
4578 p_auction_header_id,
4579 pas.LINE_NUMBER,
4580 pas.ATTRIBUTE_SEQUENCE_NUMBER,
4581 pas.VALUE,
4582 pas.FROM_RANGE,
4583 pas.TO_RANGE,
4584 pas.SCORE,
4585 pas.ATTRIBUTE_LIST_ID,
4586 pas.SEQUENCE_NUMBER,
4587 SYSDATE, -- CREATION_DATE
4588 p_user_id, -- CREATED_BY
4589 SYSDATE, -- LAST_UPDATE_DATE
4590 p_user_id -- LAST_UPDATED_BY
4591 FROM PON_ATTRIBUTE_SCORES pas,
4592 PON_AUCTION_ATTRIBUTES paa
4593 WHERE pas.AUCTION_HEADER_ID = p_source_auction_header_id
4594 AND pas.auction_header_id = paa.auction_header_id
4595 AND pas.line_number = paa.line_number
4596 AND paa.attr_level = 'LINE'
4597 AND pas.attribute_sequence_number = paa.sequence_number
4598 AND g_neg_style_control.line_mas_enabled_flag = 'Y'
4599 AND pas.line_number >= p_from_line_number
4600 AND pas.line_number <= p_to_line_number
4601 ) ;
4602
4603 --}
4604 END IF;
4605
4606 END;
4607 --} End of COPY_LINE_ATTRIBUTE_SCORE
4608
4609
4610 /*======================
4611 TILL HERE
4612 ======================*/
4613
4614
4615 --
4616 -- Procedure to copy the Price Differential information if allowed to do so
4617 -- by the bizrule for the destination document type
4618 --
4619 PROCEDURE COPY_PRICE_DIFF (p_source_auction_header_id IN NUMBER,
4620 p_auction_header_id IN NUMBER,
4621 p_tp_id IN NUMBER,
4622 p_tp_contact_id IN NUMBER,
4623 p_tp_name IN VARCHAR2,
4624 p_tpc_name IN VARCHAR2,
4625 p_user_id IN NUMBER,
4626 p_doctype_id IN NUMBER,
4627 p_copy_type IN VARCHAR2,
4628 p_from_line_number IN NUMBER,
4629 p_to_line_number IN NUMBER
4630 )
4631 IS
4632
4633 BEGIN
4634 -- { Start of COPY_PRICE_DIFF
4635
4636 -- Check the bizrule verdict
4637 IF (g_auc_doctype_rule_data.ALLOW_PRICE_DIFFERENTIAL = 'Y') THEN
4638 -- {
4639
4640 LOG_MESSAGE('copy_price_diff','inserting rows into PON_PRICE_DIFFERENTIALS');
4641
4642 INSERT
4643 INTO PON_PRICE_DIFFERENTIALS
4644 ( AUCTION_HEADER_ID,
4645 LINE_NUMBER,
4646 SHIPMENT_NUMBER,
4647 PRICE_DIFFERENTIAL_NUMBER,
4648 PRICE_TYPE,
4649 MULTIPLIER,
4650 CREATION_DATE,
4651 CREATED_BY,
4652 LAST_UPDATE_DATE,
4653 LAST_UPDATED_BY,
4654 LAST_UPDATE_LOGIN
4655 )
4656 (SELECT
4657 p_auction_header_id,
4658 LINE_NUMBER,
4659 SHIPMENT_NUMBER,
4660 PRICE_DIFFERENTIAL_NUMBER,
4661 PRICE_TYPE,
4662 MULTIPLIER,
4663 SYSDATE, -- CREATION_DATE
4664 p_user_id, -- CREATED_BY
4665 SYSDATE, -- LAST_UPDATE_DATE
4666 p_user_id, -- LAST_UPDATED_BY
4667 p_user_id -- LAST_UPDATE_LOGIN
4668 FROM PON_PRICE_DIFFERENTIALS
4669 WHERE AUCTION_HEADER_ID = p_source_auction_header_id
4670 AND LINE_NUMBER >= p_from_line_number
4671 AND LINE_NUMBER <= p_to_line_number) ;
4672 -- }
4673 END IF;
4674
4675 END;
4676 --} End of COPY_PRICE_DIFF
4677
4678
4679 --
4680 -- Procedure to copy the payments information
4681 -- The payments are not copied if the destination doctype can't have one
4682 -- Payments are supported only for RFQs
4683 --
4684 PROCEDURE COPY_PAYMENTS (p_source_auction_header_id IN NUMBER,
4685 p_auction_header_id IN NUMBER,
4686 p_user_id IN NUMBER,
4687 p_doctype_id IN NUMBER,
4688 p_source_doctype_id IN NUMBER,
4689 p_retain_attachments IN VARCHAR2,
4690 p_from_line_number IN NUMBER,
4691 p_to_line_number IN NUMBER
4692 )
4693 IS
4694 l_destination_payment_id NUMBER;
4695
4696 CURSOR c_attachment_pymt_lines IS
4697 SELECT DISTINCT
4698 psps.auction_header_id source_auc_id,
4699 psps.line_number source_line_number,
4700 psps.payment_id source_payment_id,
4701 paps.auction_header_id dest_auc_id,
4702 paps.line_number dest_line_number,
4703 paps.payment_id dest_payment_id
4704 FROM
4705 PON_AUC_PAYMENTS_SHIPMENTS paps,
4706 FND_ATTACHED_DOCUMENTS fnd,
4707 PON_AUC_PAYMENTS_SHIPMENTS psps
4708 WHERE psps.auction_header_id = p_source_auction_header_id
4709 AND paps.auction_header_id = p_auction_header_id
4710 AND paps.line_number = psps.line_number
4711 AND paps.payment_display_number = psps.payment_display_number
4712 AND fnd.pk1_value = to_char(psps.auction_header_id)
4713 AND fnd.pk2_value = to_char(psps.line_number)
4714 AND fnd.pk3_value = to_char(psps.payment_id)
4715 AND fnd.entity_name = 'PON_AUC_PAYMENTS_SHIPMENTS'
4716 AND psps.line_number >= p_from_line_number
4717 AND psps.line_number <= p_to_line_number;
4718
4719 BEGIN
4720 -- { Start of COPY_PAYMENTS
4721 LOG_MESSAGE('copy negotiation','in COPY_PAYMENTS for '||p_source_auction_header_id);
4722 --
4723 -- Should copy only when Payments are allowed for the
4724 -- destination doctype id (p_doctype_id). Payments are not allowed
4725 -- for RFIs and Auction.
4726 -- If source and destination doctypes are not same don't copy payments
4727 --
4728 IF (p_doctype_id IN (g_auction_doctype_id, g_rfi_doctype_id)
4729 OR (p_doctype_id<>p_source_doctype_id)) THEN
4730 -- {
4731 --Payments are not allowed for RFI and Auctions
4732 return;
4733 ELSE
4734 LOG_MESSAGE('copy negotiation','When source document is an RFQ - Before executing payments cursor');
4735 --if there are any payments in the source doc copy them
4736 --Insert payments
4737 g_err_loc := '1. Before inserting into pon_auc_payments_shipments';
4738 LOG_MESSAGE('copy_negotiation','Before Insert into pon_auc_payments_shipments');
4739
4740 INSERT INTO
4741 PON_AUC_PAYMENTS_SHIPMENTS
4742 ( AUCTION_HEADER_ID,
4743 PAYMENT_ID,
4744 LINE_NUMBER,
4745 PAYMENT_DISPLAY_NUMBER,
4746 PAYMENT_TYPE_CODE,
4747 PAYMENT_DESCRIPTION,
4748 SHIP_TO_LOCATION_ID,
4749 QUANTITY,
4750 UOM_CODE,
4751 TARGET_PRICE,
4752 NEED_BY_DATE,
4753 WORK_APPROVER_USER_ID,
4754 NOTE_TO_BIDDERS,
4755 PROJECT_ID,
4756 PROJECT_TASK_ID,
4757 PROJECT_AWARD_ID,
4758 PROJECT_EXPENDITURE_TYPE,
4759 PROJECT_EXP_ORGANIZATION_ID,
4760 PROJECT_EXPENDITURE_ITEM_DATE,
4761 CREATION_DATE,
4762 CREATED_BY,
4763 LAST_UPDATE_DATE,
4764 LAST_UPDATED_BY,
4765 LAST_UPDATE_LOGIN
4766 )
4767 (SELECT
4768 p_auction_header_id,
4769 PON_AUC_PAYMENTS_SHIPMENTS_S1.NEXTVAL,
4770 LINE_NUMBER,
4771 PAYMENT_DISPLAY_NUMBER,
4772 PAYMENT_TYPE_CODE,
4773 PAYMENT_DESCRIPTION,
4774 SHIP_TO_LOCATION_ID,
4775 QUANTITY,
4776 UOM_CODE,
4777 TARGET_PRICE,
4778 NEED_BY_DATE,
4779 WORK_APPROVER_USER_ID,
4780 NOTE_TO_BIDDERS,
4781 PROJECT_ID,
4782 PROJECT_TASK_ID,
4783 PROJECT_AWARD_ID,
4784 PROJECT_EXPENDITURE_TYPE,
4785 PROJECT_EXP_ORGANIZATION_ID,
4786 PROJECT_EXPENDITURE_ITEM_DATE,
4787 SYSDATE,
4788 p_user_id,
4789 SYSDATE,
4790 p_user_id,
4791 fnd_global.login_id
4792 FROM pon_auc_payments_shipments
4793 WHERE auction_header_id = p_source_auction_header_id
4794 AND line_number >= p_from_line_number
4795 AND line_number <= p_to_line_number
4796
4797 );
4798 g_err_loc := '2. After inserting into pon_auc_payments_shipments';
4799 LOG_MESSAGE('copy_negotiation','After Insert into pon_auc_payments_shipments');
4800 --
4801 -- Copy Attachments for Payments if user wants to retain the attachments of the
4802 -- source document
4803 --
4804 IF ( p_retain_attachments = 'Y' ) THEN
4805 FOR payment_line_rec in c_attachment_pymt_lines LOOP
4806 g_err_loc := '3. before calling copy payments attachments';
4807 LOG_MESSAGE('copy_negotiation','Before copying attachments for payments. Source id =' ||payment_line_rec.source_payment_id);
4808 LOG_MESSAGE('copy_negotiation','Before copying attachments for payments. Destination id =' ||payment_line_rec.dest_payment_id);
4809
4810 FND_ATTACHED_DOCUMENTS2_PKG.COPY_ATTACHMENTS (
4811 X_from_entity_name => 'PON_AUC_PAYMENTS_SHIPMENTS',
4812 X_from_pk1_value => to_char(payment_line_rec.source_auc_id),
4813 X_from_pk2_value => to_char(payment_line_rec.source_line_number),
4814 X_from_pk3_value => to_char(payment_line_rec.source_payment_id),
4815 X_to_entity_name => 'PON_AUC_PAYMENTS_SHIPMENTS',
4816 X_to_pk1_value => to_char(payment_line_rec.dest_auc_id),
4817 X_to_pk2_value => to_char(payment_line_rec.dest_line_number),
4818 X_to_pk3_value => to_char(payment_line_rec.dest_payment_id),
4819 X_created_by => p_user_id,
4820 X_last_update_login => fnd_global.login_id
4821 );
4822 g_err_loc := '4. After calling copy payments attachments';
4823 LOG_MESSAGE('copy_negotiation','After copying attachments for payments. Source id='||payment_line_rec.source_payment_id);
4824 LOG_MESSAGE('copy_negotiation','After copying attachments for payments. Destination id='||payment_line_rec.dest_payment_id);
4825 END LOOP;
4826 END IF; --End of retain attachments
4827 --}
4828 END IF; --End of if p_doctype_id IN (g_auction_doctype_id, g_rfi_doctype_id)
4829 END;
4830 --} End of COPY_PAYMENTS
4831
4832
4833 --
4834 -- Procedure to copy the Shipment (Price Break) information, if bizrule at all allows to retain
4835 -- the Price Breaks information for the destination document type. The Price Breaks
4836 -- are not copied if the destination doctype can't have one
4837 --
4838 PROCEDURE COPY_SHIPMENTS (p_source_auction_header_id IN NUMBER,
4839 p_auction_header_id IN NUMBER,
4840 p_tp_id IN NUMBER,
4841 p_tp_contact_id IN NUMBER,
4842 p_tp_name IN VARCHAR2,
4843 p_tpc_name IN VARCHAR2,
4844 p_user_id IN NUMBER,
4845 p_doctype_id IN NUMBER,
4846 p_source_doctype_id IN NUMBER,
4847 p_copy_type IN VARCHAR2,
4848 p_from_line_number IN NUMBER,
4849 p_to_line_number IN NUMBER
4850 )
4851 IS
4852
4853 l_keep_effective_start_date VARCHAR2(1) ;
4854 l_keep_effective_end_date VARCHAR2(1) ;
4855 l_src_price_tiers_indicator VARCHAR2(30);
4856
4857 BEGIN
4858 -- { Start of COPY_SHIPMENTS
4859
4860 LOG_MESSAGE('copy_shipments','Entered the procedure');
4861
4862 l_keep_effective_start_date := 'Y';
4863 l_keep_effective_end_date := 'Y';
4864
4865 SELECT price_tiers_indicator
4866 INTO l_src_price_tiers_indicator
4867 FROM pon_auction_headers_all
4868 WHERE auction_header_id = p_source_auction_header_id;
4869
4870 --
4871 -- Should copy only when Price Breaks are allowed for the
4872 -- destination doctype id (p_doctype_id)
4873 --
4874 IF (g_auc_doctype_rule_data.PRICE_BREAK = 'Y'
4875 AND
4876 l_src_price_tiers_indicator = 'PRICE_BREAKS' ) THEN
4877 -- {
4878 --
4879 -- Donot keep the effective start and end date for
4880 -- Copy Active Negotiation or COPY TO AUCTION/RFQ options
4881 --
4882 IF (p_copy_type = g_active_neg_copy OR
4883 p_copy_type = g_rfi_to_other_copy) THEN
4884 l_keep_effective_start_date := 'N';
4885 l_keep_effective_end_date := 'N';
4886 END IF;
4887
4888 LOG_MESSAGE('copy_shipments','Copying price breaks from auction '|| p_source_auction_header_id || ' to ' || p_auction_header_id);
4889
4890 --
4891 -- Inseting records
4892 --
4893 INSERT INTO
4894 PON_AUCTION_SHIPMENTS_ALL
4895 ( AUCTION_HEADER_ID,
4896 LINE_NUMBER,
4897 SHIPMENT_NUMBER,
4898 SHIPMENT_TYPE,
4899 SHIP_TO_ORGANIZATION_ID,
4900 SHIP_TO_LOCATION_ID,
4901 QUANTITY,
4902 PRICE,
4903 EFFECTIVE_START_DATE,
4904 EFFECTIVE_END_DATE,
4905 ORG_ID,
4906 CREATION_DATE,
4907 CREATED_BY,
4908 LAST_UPDATE_DATE,
4909 LAST_UPDATED_BY,
4910 LAST_UPDATE_LOGIN,
4911 HAS_PRICE_DIFFERENTIALS_FLAG,
4912 DIFFERENTIAL_RESPONSE_TYPE
4913 )
4914 (SELECT
4915 p_auction_header_id,
4916 LINE_NUMBER,
4917 SHIPMENT_NUMBER,
4918 SHIPMENT_TYPE,
4919 SHIP_TO_ORGANIZATION_ID,
4920 SHIP_TO_LOCATION_ID,
4921 QUANTITY,
4922 PRICE,
4923 decode (l_keep_effective_start_date,
4924 'Y', EFFECTIVE_START_DATE,
4925 NULL), -- EFFECTIVE_START_DATE
4926 decode (l_keep_effective_end_date,
4927 'Y', EFFECTIVE_END_DATE,
4928 NULL), -- EFFECTIVE_END_DATE
4929 ORG_ID, -- Do we need to set thi OrgId to the current one
4930 SYSDATE, -- CREATION_DATE
4931 p_user_id, -- CREATED_BY
4932 SYSDATE, -- LAST_UPDATE_DATE
4933 p_user_id, -- LAST_UPDATED_BY
4934 p_user_id, -- LAST_UPDATE_LOGIN
4935 decode ( g_auc_doctype_rule_data.ALLOW_PRICE_DIFFERENTIAL,
4936 'Y', HAS_PRICE_DIFFERENTIALS_FLAG,
4937 'N'), -- HAS_PRICE_DIFFERENTIALS_FLAG
4938 decode ( g_auc_doctype_rule_data.ALLOW_PRICE_DIFFERENTIAL,
4939 'Y', DIFFERENTIAL_RESPONSE_TYPE ,
4940 NULL) -- DIFFERENTIAL_RESPONSE_TYPE
4941 FROM PON_AUCTION_SHIPMENTS_ALL
4942 WHERE AUCTION_HEADER_ID = p_source_auction_header_id
4943 AND SHIPMENT_TYPE = 'PRICE BREAK'
4944 AND line_number >= p_from_line_number
4945 AND line_number <= p_to_line_number) ;
4946 --}
4947 ELSIF (l_src_price_tiers_indicator = 'QUANTITY_BASED'
4948 AND g_auc_doctype_rule_data.QTY_PRICE_TIERS_ENABLED_FLAG = 'Y'
4949 AND g_neg_style_control.qty_price_tiers_enabled_flag = 'Y'
4950 ) THEN
4951 --{
4952 LOG_MESSAGE('copy_shipments','Copying price tiers from auction '|| p_source_auction_header_id || ' to ' || p_auction_header_id);
4953 --
4954 -- Inseting records
4955 --
4956 INSERT INTO
4957 PON_AUCTION_SHIPMENTS_ALL
4958 ( AUCTION_HEADER_ID,
4959 LINE_NUMBER,
4960 SHIPMENT_NUMBER,
4961 SHIPMENT_TYPE,
4962 SHIP_TO_ORGANIZATION_ID,
4963 SHIP_TO_LOCATION_ID,
4964 QUANTITY, -- This is the MIN Quantity field for quantity based Price tiers
4965 PRICE,
4966 ORG_ID,
4967 CREATION_DATE,
4968 CREATED_BY,
4969 LAST_UPDATE_DATE,
4970 LAST_UPDATED_BY,
4971 LAST_UPDATE_LOGIN,
4972 MAX_QUANTITY,
4973 HAS_PRICE_DIFFERENTIALS_FLAG-- This is for quantity price Tiers only
4974 )
4975 (SELECT
4976 p_auction_header_id,
4977 LINE_NUMBER,
4978 SHIPMENT_NUMBER,
4979 SHIPMENT_TYPE,
4980 SHIP_TO_ORGANIZATION_ID,
4981 SHIP_TO_LOCATION_ID,
4982 QUANTITY,
4983 PRICE,
4984 ORG_ID, -- Do we need to set the orgId to the current one
4985 SYSDATE, -- CREATION_DATE
4986 p_user_id, -- CREATED_BY
4987 SYSDATE, -- LAST_UPDATE_DATE
4988 p_user_id, -- LAST_UPDATED_BY
4989 p_user_id, -- LAST_UPDATE_LOGIN
4990 MAX_QUANTITY, -- Max Quantity for qty based price tiers
4991 'N' -- HAS_PRICE_DIFFERENTIALS_FLAG
4992 FROM PON_AUCTION_SHIPMENTS_ALL
4993 WHERE AUCTION_HEADER_ID = p_source_auction_header_id
4994 AND SHIPMENT_TYPE = 'QUANTITY BASED'
4995 AND line_number >= p_from_line_number
4996 AND line_number <= p_to_line_number);
4997
4998 --}
4999 END IF;
5000 END;
5001 --} End of COPY_SHIPMENTS
5002
5003 --
5004 -- Procedure to copy the Price Elements information, if bizrule at all allows to retain
5005 -- the Price Elements information for the destination document type. The Price Elements
5006 -- are not copied if the destination doctype can't have one
5007 --
5008
5009 PROCEDURE COPY_PRICE_ELEMENTS (p_source_auction_header_id IN NUMBER,
5010 p_auction_header_id IN NUMBER,
5011 p_tp_id IN NUMBER,
5012 p_tp_contact_id IN NUMBER,
5013 p_tp_name IN VARCHAR2,
5014 p_tpc_name IN VARCHAR2,
5015 p_user_id IN NUMBER,
5016 p_source_doctype_id IN NUMBER,
5017 p_doctype_id IN NUMBER,
5018 p_copy_type IN VARCHAR2,
5019 p_source_doc_num IN VARCHAR2,
5020 p_from_line_number IN NUMBER,
5021 p_to_line_number IN NUMBER
5022 )
5023 IS
5024 BEGIN
5025 --{ Start of COPY_PRICE_ELEMENTS
5026
5027 --
5028 -- Do not copy Price Elements if it is Copy To RFI
5029 --
5030 IF (g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y' and
5031 g_neg_style_control.price_element_enabled_flag = 'Y') THEN
5032 -- {
5033 --
5034 -- Copy Logic:
5035 -- Copy all the price elements EXCEPT the Line Price Element
5036 -- as it will be inserted later on while publishing the negotiation
5037 -- depending on the other criteria.
5038 --
5039 INSERT INTO
5040 PON_PRICE_ELEMENTS
5041 ( AUCTION_HEADER_ID,
5042 LINE_NUMBER,
5043 LIST_ID,
5044 PRICE_ELEMENT_TYPE_ID,
5045 PRICING_BASIS,
5046 VALUE,
5047 DISPLAY_TARGET_FLAG,
5048 SEQUENCE_NUMBER,
5049 CREATION_DATE,
5050 CREATED_BY,
5051 LAST_UPDATE_DATE,
5052 LAST_UPDATED_BY,
5053 PF_TYPE,
5054 DISPLAY_TO_SUPPLIERS_FLAG
5055 )
5056 (SELECT
5057 p_auction_header_id,
5058 P.LINE_NUMBER,
5059 P.LIST_ID,
5060 P.PRICE_ELEMENT_TYPE_ID,
5061 P.PRICING_BASIS,
5062 P.VALUE,
5063 P.DISPLAY_TARGET_FLAG,
5064 P.SEQUENCE_NUMBER,
5065 SYSDATE,
5066 p_user_id,
5067 SYSDATE,
5068 p_user_id,
5069 PF_TYPE, -- Tranformation project related column
5070 DISPLAY_TO_SUPPLIERS_FLAG -- Tranformation project related column
5071 FROM PON_PRICE_ELEMENTS P,
5072 PON_PRICE_ELEMENT_TYPES_VL VL
5073 WHERE P.AUCTION_HEADER_ID = p_source_auction_header_id
5074 AND P.PRICE_ELEMENT_TYPE_ID <> -10
5075 AND P.PRICE_ELEMENT_TYPE_ID = VL.PRICE_ELEMENT_TYPE_ID
5076 AND VL.ENABLED_FLAG = 'Y'
5077 AND P.line_number >= p_from_line_number
5078 AND P.line_number <= p_to_line_number) ;
5079
5080 --}
5081 END IF;
5082 END;
5083 --} End of COPY_PRICE_ELEMENTS
5084
5085 --
5086 -- Procedure to copy the Currencies
5087 --
5088 PROCEDURE COPY_CURRENCIES ( p_source_auction_header_id IN NUMBER,
5089 p_auction_header_id IN NUMBER,
5090 p_tp_id IN NUMBER,
5091 p_tp_contact_id IN NUMBER,
5092 p_tp_name IN VARCHAR2,
5093 p_tpc_name IN VARCHAR2,
5094 p_user_id IN NUMBER,
5095 p_doctype_id IN NUMBER,
5096 p_copy_type IN VARCHAR2
5097 )
5098 IS
5099
5100 BEGIN
5101 -- { Start of COPY_CURRENCIES
5102
5103 INSERT INTO
5104 PON_AUCTION_CURRENCY_RATES
5105 (
5106 AUCTION_HEADER_ID,
5107 AUCTION_CURRENCY_CODE,
5108 BID_CURRENCY_CODE,
5109 RATE,
5110 NUMBER_PRICE_DECIMALS,
5111 LAST_UPDATED_BY,
5112 LAST_UPDATE_DATE,
5113 RATE_TYPE,
5114 RATE_DATE,
5115 CREATION_DATE,
5116 CREATED_BY,
5117 LIST_ID,
5118 DERIVE_TYPE,
5119 SEQUENCE_NUMBER,
5120 RATE_DSP,
5121 LAST_AMENDMENT_UPDATE,
5122 MODIFIED_FLAG
5123 )
5124 (SELECT
5125 p_auction_header_id, -- AUCTION_HEADER_ID
5126 AUCTION_CURRENCY_CODE,
5127 BID_CURRENCY_CODE,
5128 RATE,
5129 NUMBER_PRICE_DECIMALS,
5130 p_user_id, -- LAST_UPDATED_BY
5131 SYSDATE, -- LAST_UPDATE_DATE
5132 RATE_TYPE,
5133 RATE_DATE,
5134 SYSDATE, -- CREATION_DATE
5135 p_user_id, -- CREATED_BY
5136 LIST_ID,
5137 DERIVE_TYPE,
5138 SEQUENCE_NUMBER,
5139 RATE_DSP,
5140 --
5141 -- AmendmentUpdate attribute value is only carried over
5142 -- only for Amendment copy. It is set to default value 0
5143 -- in all other cases
5144 --
5145 decode (p_copy_type, g_amend_copy,
5146 LAST_AMENDMENT_UPDATE,
5147 0), -- LAST_AMENDMENT_UPDATE
5148 --
5149 -- MODIFIED_FLAG is always set to NULL
5150 --
5151 NULL -- MODIFIED_FLAG
5152 FROM PON_AUCTION_CURRENCY_RATES
5153 WHERE AUCTION_HEADER_ID = p_source_auction_header_id ) ;
5154 END;
5155 --} End of COPY_CURRENCIES
5156
5157 --
5158 -- Procedure to copy the invitees of a given negotiation
5159 --
5160 PROCEDURE COPY_INVITEES (p_source_auction_header_id IN NUMBER,
5161 p_auction_header_id IN NUMBER,
5162 p_tp_id IN NUMBER,
5163 p_tp_contact_id IN NUMBER,
5164 p_tp_name IN VARCHAR2,
5165 p_tpc_name IN VARCHAR2,
5166 p_user_id IN NUMBER,
5167 p_doctype_id IN NUMBER,
5168 p_copy_type IN VARCHAR2,
5169 p_org_id IN NUMBER,
5170 p_round_number IN NUMBER
5171 )
5172 IS
5173 l_list_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5174 l_sequence PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5175 l_trading_partner_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5176 l_trading_partner_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5177 l_trading_partner_contact_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5178 l_trading_partner_contact_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5179 l_new_supplier_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5180 l_new_supplier_contact_fname PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5181 l_new_supplier_contact_lname PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5182 l_new_supplier_email PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5183 l_note_to_new_supplier PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5184 l_wf_user_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
5185 l_invitation_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5186 l_auction_creation_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
5187 l_bid_currency_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
5188 l_number_price_decimals PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5189 l_rate PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5190 l_derive_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
5191 l_additional_contact_email PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5192 l_round_number PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5193 l_supp_acknowledgement PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
5194 l_ack_partner_contact_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5195 l_acknowledgement_time PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
5196 l_ack_note_to_auctioneer PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
5197 l_registration_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5198 l_rate_dsp PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5199 l_vendor_site_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5200 l_vendor_site_code PON_NEG_COPY_DATATYPES_GRP.VARCHAR20_TYPE;
5201 l_last_amendment_update PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5202 l_modified_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
5203 -- Lot based bidding project related column
5204 l_access_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
5205 l_auction_round_number NUMBER := 0;
5206 -- New Suppleir Registration changes
5207 l_requested_supplier_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5208 l_requested_supplier_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5209 l_requested_supp_contact_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5210 l_requested_supp_contact_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5211 -- warning for inactive suppliers
5212 l_inactive_suppliers PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
5213 l_supplier_names VARCHAR2(2000);
5214 l_last_seq_number NUMBER;
5215 -- bug 7376924, handling inactive supplier contact
5216 l_inactive_supplier_contacts PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
5217
5218 l_auction_header_id_orig_amend PON_AUCTION_HEADERS_ALL.AUCTION_HEADER_ID_ORIG_AMEND%type;
5219
5220 BEGIN
5221 -- { Start of COPY_INVITEES
5222
5223 l_last_seq_number := 0;
5224
5225 --
5226 -- TODO Check the logic once more particularly for new round with same and diff doctype id
5227 -- Check for l_auction_round_number too
5228 --
5229 -- The logic is bit lengthy and better to be implemented in bulkcopy manner
5230 -- If required we can shift this to direct copy too but that may be bit clumsy
5231 --
5232 -- Always expect p_round_number to be 1 or higher
5233 --
5234 IF (p_copy_type = g_new_rnd_copy ) THEN
5235 l_auction_round_number := p_round_number + 1;
5236 ELSE
5237 l_auction_round_number := p_round_number;
5238 END IF;
5239
5240 SELECT AUCTION_HEADER_ID_ORIG_AMEND
5241 INTO l_auction_header_id_orig_amend
5242 FROM PON_AUCTION_HEADERS_ALL
5243 WHERE AUCTION_HEADER_ID = p_source_auction_header_id;
5244
5245 --
5246 -- For Copy Negotiation and Amendment
5247 --
5248 IF (p_copy_type = g_amend_copy) THEN
5249 --{
5250 SELECT LIST_ID,
5251 SEQUENCE,
5252 TRADING_PARTNER_NAME,
5253 TRADING_PARTNER_ID,
5254 TRADING_PARTNER_CONTACT_NAME,
5255 TRADING_PARTNER_CONTACT_ID,
5256 NEW_SUPPLIER_NAME,
5257 NEW_SUPPLIER_CONTACT_FNAME,
5258 NEW_SUPPLIER_CONTACT_LNAME,
5259 NEW_SUPPLIER_EMAIL,
5260 NOTE_TO_NEW_SUPPLIER,
5261 WF_USER_NAME,
5262 INVITATION_ID,
5263 AUCTION_CREATION_DATE,
5264 BID_CURRENCY_CODE,
5265 NUMBER_PRICE_DECIMALS,
5266 RATE,
5267 DERIVE_TYPE,
5268 ADDITIONAL_CONTACT_EMAIL,
5269 ROUND_NUMBER,
5270 SUPP_ACKNOWLEDGEMENT,
5271 ACK_PARTNER_CONTACT_ID,
5272 ACKNOWLEDGEMENT_TIME,
5273 ACK_NOTE_TO_AUCTIONEER,
5274 REGISTRATION_ID,
5275 RATE_DSP,
5276 LAST_AMENDMENT_UPDATE,
5277 VENDOR_SITE_ID,
5278 VENDOR_SITE_CODE,
5279 MODIFIED_FLAG,
5280 ACCESS_TYPE,
5281 REQUESTED_SUPPLIER_ID,
5282 REQUESTED_SUPPLIER_NAME,
5283 REQUESTED_SUPPLIER_CONTACT_ID,
5284 REQUESTED_SUPP_CONTACT_NAME
5285 BULK COLLECT
5286 INTO
5287 l_list_id,
5288 l_sequence,
5289 l_trading_partner_name,
5290 l_trading_partner_id,
5291 l_trading_partner_contact_name,
5292 l_trading_partner_contact_id,
5293 l_new_supplier_name,
5294 l_new_supplier_contact_fname,
5295 l_new_supplier_contact_lname,
5296 l_new_supplier_email,
5297 l_note_to_new_supplier,
5298 l_wf_user_name,
5299 l_invitation_id,
5300 l_auction_creation_date,
5301 l_bid_currency_code,
5302 l_number_price_decimals,
5303 l_rate,
5304 l_derive_type,
5305 l_additional_contact_email,
5306 l_round_number,
5307 l_supp_acknowledgement,
5308 l_ack_partner_contact_id,
5309 l_acknowledgement_time,
5310 l_ack_note_to_auctioneer,
5311 l_registration_id,
5312 l_rate_dsp,
5313 l_last_amendment_update,
5314 l_vendor_site_id,
5315 l_vendor_site_code,
5316 l_modified_flag,
5317 l_access_type,
5318 l_requested_supplier_id,
5319 l_requested_supplier_name,
5320 l_requested_supp_contact_id,
5321 l_requested_supp_contact_name
5322 FROM
5323 (SELECT
5324 PBP.LIST_ID,
5325 PBP.SEQUENCE,
5326 PBP.TRADING_PARTNER_NAME,
5327 PBP.TRADING_PARTNER_ID,
5328 PBP.TRADING_PARTNER_CONTACT_NAME,
5329 PBP.TRADING_PARTNER_CONTACT_ID,
5330 PBP.NEW_SUPPLIER_NAME,
5331 PBP.NEW_SUPPLIER_CONTACT_FNAME,
5332 PBP.NEW_SUPPLIER_CONTACT_LNAME,
5333 PBP.NEW_SUPPLIER_EMAIL,
5334 PBP.NOTE_TO_NEW_SUPPLIER,
5335 PBP.WF_USER_NAME,
5336 PBP.INVITATION_ID,
5337 PBP.AUCTION_CREATION_DATE,
5338 PBP.BID_CURRENCY_CODE,
5339 PBP.NUMBER_PRICE_DECIMALS,
5340 PBP.RATE,
5341 PBP.DERIVE_TYPE,
5342 PBP.ADDITIONAL_CONTACT_EMAIL,
5343 PBP.ROUND_NUMBER,
5344 PBP.SUPP_ACKNOWLEDGEMENT,
5345 PBP.ACK_PARTNER_CONTACT_ID,
5346 PBP.ACKNOWLEDGEMENT_TIME,
5347 PBP.ACK_NOTE_TO_AUCTIONEER,
5348 PBP.REGISTRATION_ID,
5349 PBP.RATE_DSP,
5350 PBP.LAST_AMENDMENT_UPDATE,
5351 PBP.VENDOR_SITE_ID,
5352 PBP.VENDOR_SITE_CODE,
5353 PBP.MODIFIED_FLAG,
5354 PBP.ACCESS_TYPE,
5355 NULL REQUESTED_SUPPLIER_ID,
5356 NULL REQUESTED_SUPPLIER_NAME,
5357 NULL REQUESTED_SUPPLIER_CONTACT_ID,
5358 NULL REQUESTED_SUPP_CONTACT_NAME
5359 FROM PON_BIDDING_PARTIES PBP,
5360 AP_SUPPLIER_SITES_ALL PS,
5361 AP_SUPPLIERS PV
5362 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5363 AND PV.PARTY_ID = PBP.TRADING_PARTNER_ID
5364 AND PS.VENDOR_ID = PV.VENDOR_ID
5365 AND (PS.PURCHASING_SITE_FLAG = 'Y' OR PS.RFQ_ONLY_SITE_FLAG = 'Y')
5366 AND NVL(PS.INACTIVE_DATE, SYSDATE) >= SYSDATE
5367 AND PS.ORG_ID = p_org_id
5368 AND PS.VENDOR_SITE_ID = PBP.VENDOR_SITE_ID
5369 UNION
5370 SELECT
5371 PBP.LIST_ID,
5372 PBP.SEQUENCE,
5373 PBP.TRADING_PARTNER_NAME,
5374 PBP.TRADING_PARTNER_ID,
5375 PBP.TRADING_PARTNER_CONTACT_NAME,
5376 PBP.TRADING_PARTNER_CONTACT_ID,
5377 PBP.NEW_SUPPLIER_NAME,
5378 PBP.NEW_SUPPLIER_CONTACT_FNAME,
5379 PBP.NEW_SUPPLIER_CONTACT_LNAME,
5380 PBP.NEW_SUPPLIER_EMAIL,
5381 PBP.NOTE_TO_NEW_SUPPLIER,
5382 PBP.WF_USER_NAME,
5383 PBP.INVITATION_ID,
5384 PBP.AUCTION_CREATION_DATE,
5385 PBP.BID_CURRENCY_CODE,
5386 PBP.NUMBER_PRICE_DECIMALS,
5387 PBP.RATE,
5388 PBP.DERIVE_TYPE,
5389 PBP.ADDITIONAL_CONTACT_EMAIL,
5390 PBP.ROUND_NUMBER,
5391 PBP.SUPP_ACKNOWLEDGEMENT,
5392 PBP.ACK_PARTNER_CONTACT_ID,
5393 PBP.ACKNOWLEDGEMENT_TIME,
5394 PBP.ACK_NOTE_TO_AUCTIONEER,
5395 PBP.REGISTRATION_ID,
5396 PBP.RATE_DSP,
5397 PBP.LAST_AMENDMENT_UPDATE,
5398 PBP.VENDOR_SITE_ID,
5399 PBP.VENDOR_SITE_CODE,
5400 PBP.MODIFIED_FLAG,
5401 PBP.ACCESS_TYPE,
5402 PBP.REQUESTED_SUPPLIER_ID,
5403 PBP.REQUESTED_SUPPLIER_NAME,
5404 PBP.REQUESTED_SUPPLIER_CONTACT_ID,
5405 PBP.REQUESTED_SUPP_CONTACT_NAME
5406 FROM PON_BIDDING_PARTIES PBP
5407 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5408 AND (PBP.VENDOR_SITE_ID = -1 OR
5409 PBP.VENDOR_SITE_ID IS NULL) ) A;
5410
5411 --} End of if Amendment
5412 ELSIF (p_copy_type = g_active_neg_copy
5413 OR p_copy_type = g_draft_neg_copy ) THEN
5414 --{
5415 SELECT LIST_ID,
5416 SEQUENCE,
5417 TRADING_PARTNER_NAME,
5418 TRADING_PARTNER_ID,
5419 TRADING_PARTNER_CONTACT_NAME,
5420 TRADING_PARTNER_CONTACT_ID,
5421 NEW_SUPPLIER_NAME,
5422 NEW_SUPPLIER_CONTACT_FNAME,
5423 NEW_SUPPLIER_CONTACT_LNAME,
5424 NEW_SUPPLIER_EMAIL,
5425 NOTE_TO_NEW_SUPPLIER,
5426 WF_USER_NAME,
5427 INVITATION_ID,
5428 AUCTION_CREATION_DATE,
5429 BID_CURRENCY_CODE,
5430 NUMBER_PRICE_DECIMALS,
5431 RATE,
5432 DERIVE_TYPE,
5433 ADDITIONAL_CONTACT_EMAIL,
5434 ROUND_NUMBER,
5435 SUPP_ACKNOWLEDGEMENT,
5436 ACK_PARTNER_CONTACT_ID,
5437 ACKNOWLEDGEMENT_TIME,
5438 ACK_NOTE_TO_AUCTIONEER,
5439 REGISTRATION_ID,
5440 RATE_DSP,
5441 LAST_AMENDMENT_UPDATE,
5442 VENDOR_SITE_ID,
5443 VENDOR_SITE_CODE,
5444 MODIFIED_FLAG,
5445 ACCESS_TYPE,
5446 REQUESTED_SUPPLIER_ID,
5447 REQUESTED_SUPPLIER_NAME,
5448 REQUESTED_SUPPLIER_CONTACT_ID,
5449 REQUESTED_SUPP_CONTACT_NAME
5450 BULK COLLECT
5451 INTO
5452 l_list_id,
5453 l_sequence,
5454 l_trading_partner_name,
5455 l_trading_partner_id,
5456 l_trading_partner_contact_name,
5457 l_trading_partner_contact_id,
5458 l_new_supplier_name,
5459 l_new_supplier_contact_fname,
5460 l_new_supplier_contact_lname,
5461 l_new_supplier_email,
5462 l_note_to_new_supplier,
5463 l_wf_user_name,
5464 l_invitation_id,
5465 l_auction_creation_date,
5466 l_bid_currency_code,
5467 l_number_price_decimals,
5468 l_rate,
5469 l_derive_type,
5470 l_additional_contact_email,
5471 l_round_number,
5472 l_supp_acknowledgement,
5473 l_ack_partner_contact_id,
5474 l_acknowledgement_time,
5475 l_ack_note_to_auctioneer,
5476 l_registration_id,
5477 l_rate_dsp,
5478 l_last_amendment_update,
5479 l_vendor_site_id,
5480 l_vendor_site_code,
5481 l_modified_flag,
5482 l_access_type,
5483 l_requested_supplier_id,
5484 l_requested_supplier_name,
5485 l_requested_supp_contact_id,
5486 l_requested_supp_contact_name
5487 FROM
5488 (SELECT
5489 PBP.LIST_ID,
5490 PBP.SEQUENCE,
5491 PBP.TRADING_PARTNER_NAME,
5492 PBP.TRADING_PARTNER_ID,
5493 PBP.TRADING_PARTNER_CONTACT_NAME,
5494 PBP.TRADING_PARTNER_CONTACT_ID,
5495 PBP.NEW_SUPPLIER_NAME,
5496 PBP.NEW_SUPPLIER_CONTACT_FNAME,
5497 PBP.NEW_SUPPLIER_CONTACT_LNAME,
5498 PBP.NEW_SUPPLIER_EMAIL,
5499 PBP.NOTE_TO_NEW_SUPPLIER,
5500 PBP.WF_USER_NAME,
5501 PBP.INVITATION_ID,
5502 PBP.AUCTION_CREATION_DATE,
5503 PBP.BID_CURRENCY_CODE,
5504 PBP.NUMBER_PRICE_DECIMALS,
5505 PBP.RATE,
5506 PBP.DERIVE_TYPE,
5507 PBP.ADDITIONAL_CONTACT_EMAIL,
5508 PBP.ROUND_NUMBER,
5509 PBP.SUPP_ACKNOWLEDGEMENT,
5510 PBP.ACK_PARTNER_CONTACT_ID,
5511 PBP.ACKNOWLEDGEMENT_TIME,
5512 PBP.ACK_NOTE_TO_AUCTIONEER,
5513 PBP.REGISTRATION_ID,
5514 PBP.RATE_DSP,
5515 PBP.LAST_AMENDMENT_UPDATE,
5516 PBP.VENDOR_SITE_ID,
5517 PBP.VENDOR_SITE_CODE,
5518 PBP.MODIFIED_FLAG,
5519 PBP.ACCESS_TYPE,
5520 NULL REQUESTED_SUPPLIER_ID,
5521 NULL REQUESTED_SUPPLIER_NAME,
5522 NULL REQUESTED_SUPPLIER_CONTACT_ID,
5523 NULL REQUESTED_SUPP_CONTACT_NAME
5524 FROM PON_BIDDING_PARTIES PBP,
5525 AP_SUPPLIER_SITES_ALL PS,
5526 AP_SUPPLIERS PV
5527 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5528 AND PV.PARTY_ID = PBP.TRADING_PARTNER_ID
5529 AND PS.VENDOR_ID = PV.VENDOR_ID
5530 AND nvl(PV.start_date_active, sysdate) <= sysdate
5531 AND nvl(PV.end_date_active, sysdate) >= sysdate
5532 AND (PS.PURCHASING_SITE_FLAG = 'Y' OR PS.RFQ_ONLY_SITE_FLAG = 'Y')
5533 AND NVL(PS.INACTIVE_DATE, SYSDATE) >= SYSDATE
5534 AND PS.ORG_ID = p_org_id
5535 AND PS.VENDOR_SITE_ID = PBP.VENDOR_SITE_ID
5536 UNION
5537 -- suppliers with site = -1
5538 SELECT
5539 PBP.LIST_ID,
5540 PBP.SEQUENCE,
5541 PBP.TRADING_PARTNER_NAME,
5542 PBP.TRADING_PARTNER_ID,
5543 PBP.TRADING_PARTNER_CONTACT_NAME,
5544 PBP.TRADING_PARTNER_CONTACT_ID,
5545 PBP.NEW_SUPPLIER_NAME,
5546 PBP.NEW_SUPPLIER_CONTACT_FNAME,
5547 PBP.NEW_SUPPLIER_CONTACT_LNAME,
5548 PBP.NEW_SUPPLIER_EMAIL,
5549 PBP.NOTE_TO_NEW_SUPPLIER,
5550 PBP.WF_USER_NAME,
5551 PBP.INVITATION_ID,
5552 PBP.AUCTION_CREATION_DATE,
5553 PBP.BID_CURRENCY_CODE,
5554 PBP.NUMBER_PRICE_DECIMALS,
5555 PBP.RATE,
5556 PBP.DERIVE_TYPE,
5557 PBP.ADDITIONAL_CONTACT_EMAIL,
5558 PBP.ROUND_NUMBER,
5559 PBP.SUPP_ACKNOWLEDGEMENT,
5560 PBP.ACK_PARTNER_CONTACT_ID,
5561 PBP.ACKNOWLEDGEMENT_TIME,
5562 PBP.ACK_NOTE_TO_AUCTIONEER,
5563 PBP.REGISTRATION_ID,
5564 PBP.RATE_DSP,
5565 PBP.LAST_AMENDMENT_UPDATE,
5566 PBP.VENDOR_SITE_ID,
5567 PBP.VENDOR_SITE_CODE,
5568 PBP.MODIFIED_FLAG,
5569 PBP.ACCESS_TYPE,
5570 NULL REQUESTED_SUPPLIER_ID,
5571 NULL REQUESTED_SUPPLIER_NAME,
5572 NULL REQUESTED_SUPPLIER_CONTACT_ID,
5573 NULL REQUESTED_SUPP_CONTACT_NAME
5574 FROM PON_BIDDING_PARTIES PBP,
5575 AP_SUPPLIERS PV
5576 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5577 AND (PBP.VENDOR_SITE_ID = -1 OR
5578 PBP.VENDOR_SITE_ID IS NULL)
5579 AND PBP.TRADING_PARTNER_ID = PV.PARTY_ID
5580 AND NVL(pv.start_date_active, sysdate) <= sysdate
5581 AND NVL(pv.end_date_active, sysdate) >= sysdate
5582 UNION
5583 -- requested suppliers
5584 SELECT
5585 PBP.LIST_ID,
5586 PBP.SEQUENCE,
5587 PBP.TRADING_PARTNER_NAME,
5588 PBP.TRADING_PARTNER_ID,
5589 PBP.TRADING_PARTNER_CONTACT_NAME,
5590 PBP.TRADING_PARTNER_CONTACT_ID,
5591 PBP.NEW_SUPPLIER_NAME,
5592 PBP.NEW_SUPPLIER_CONTACT_FNAME,
5593 PBP.NEW_SUPPLIER_CONTACT_LNAME,
5594 PBP.NEW_SUPPLIER_EMAIL,
5595 PBP.NOTE_TO_NEW_SUPPLIER,
5596 PBP.WF_USER_NAME,
5597 PBP.INVITATION_ID,
5598 PBP.AUCTION_CREATION_DATE,
5599 PBP.BID_CURRENCY_CODE,
5600 PBP.NUMBER_PRICE_DECIMALS,
5601 PBP.RATE,
5602 PBP.DERIVE_TYPE,
5603 PBP.ADDITIONAL_CONTACT_EMAIL,
5604 PBP.ROUND_NUMBER,
5605 PBP.SUPP_ACKNOWLEDGEMENT,
5606 PBP.ACK_PARTNER_CONTACT_ID,
5607 PBP.ACKNOWLEDGEMENT_TIME,
5608 PBP.ACK_NOTE_TO_AUCTIONEER,
5609 PBP.REGISTRATION_ID,
5610 PBP.RATE_DSP,
5611 PBP.LAST_AMENDMENT_UPDATE,
5612 PBP.VENDOR_SITE_ID,
5613 PBP.VENDOR_SITE_CODE,
5614 PBP.MODIFIED_FLAG,
5615 PBP.ACCESS_TYPE,
5616 PBP.REQUESTED_SUPPLIER_ID,
5617 PBP.REQUESTED_SUPPLIER_NAME,
5618 PBP.REQUESTED_SUPPLIER_CONTACT_ID,
5619 PBP.REQUESTED_SUPP_CONTACT_NAME
5620 FROM PON_BIDDING_PARTIES PBP
5621 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5622 AND PBP.trading_partner_id IS NULL
5623 AND pbp.requested_supplier_id NOT IN (
5624 SELECT supplier_reg_id FROM pos_supplier_registrations
5625 WHERE registration_status = 'REJECTED')
5626 ) A;
5627 --} End of if Copy Negotiation
5628 ELSE -- new round
5629 --{
5630 SELECT LIST_ID,
5631 SEQUENCE,
5632 TRADING_PARTNER_NAME,
5633 TRADING_PARTNER_ID,
5634 TRADING_PARTNER_CONTACT_NAME,
5635 TRADING_PARTNER_CONTACT_ID,
5636 NEW_SUPPLIER_NAME,
5637 NEW_SUPPLIER_CONTACT_FNAME,
5638 NEW_SUPPLIER_CONTACT_LNAME,
5639 NEW_SUPPLIER_EMAIL,
5640 NOTE_TO_NEW_SUPPLIER,
5641 WF_USER_NAME,
5642 INVITATION_ID,
5643 AUCTION_CREATION_DATE,
5644 BID_CURRENCY_CODE,
5645 NUMBER_PRICE_DECIMALS,
5646 RATE,
5647 DERIVE_TYPE,
5648 ADDITIONAL_CONTACT_EMAIL,
5649 ROUND_NUMBER,
5650 SUPP_ACKNOWLEDGEMENT,
5651 ACK_PARTNER_CONTACT_ID,
5652 ACKNOWLEDGEMENT_TIME,
5653 ACK_NOTE_TO_AUCTIONEER,
5654 REGISTRATION_ID,
5655 RATE_DSP,
5656 LAST_AMENDMENT_UPDATE,
5657 VENDOR_SITE_ID,
5658 VENDOR_SITE_CODE,
5659 MODIFIED_FLAG,
5660 ACCESS_TYPE,
5661 REQUESTED_SUPPLIER_ID,
5662 REQUESTED_SUPPLIER_NAME,
5663 REQUESTED_SUPPLIER_CONTACT_ID,
5664 REQUESTED_SUPP_CONTACT_NAME
5665 BULK COLLECT
5666 INTO
5667 l_list_id,
5668 l_sequence,
5669 l_trading_partner_name,
5670 l_trading_partner_id,
5671 l_trading_partner_contact_name,
5672 l_trading_partner_contact_id,
5673 l_new_supplier_name,
5674 l_new_supplier_contact_fname,
5675 l_new_supplier_contact_lname,
5676 l_new_supplier_email,
5677 l_note_to_new_supplier,
5678 l_wf_user_name,
5679 l_invitation_id,
5680 l_auction_creation_date,
5681 l_bid_currency_code,
5682 l_number_price_decimals,
5683 l_rate,
5684 l_derive_type,
5685 l_additional_contact_email,
5686 l_round_number,
5687 l_supp_acknowledgement,
5688 l_ack_partner_contact_id,
5689 l_acknowledgement_time,
5690 l_ack_note_to_auctioneer,
5691 l_registration_id,
5692 l_rate_dsp,
5693 l_last_amendment_update,
5694 l_vendor_site_id,
5695 l_vendor_site_code,
5696 l_modified_flag,
5697 l_access_type,
5698 l_requested_supplier_id,
5699 l_requested_supplier_name,
5700 l_requested_supp_contact_id,
5701 l_requested_supp_contact_name
5702 FROM (SELECT LIST_ID,
5703 SEQUENCE,
5704 TRADING_PARTNER_NAME,
5705 TRADING_PARTNER_ID,
5706 TRADING_PARTNER_CONTACT_NAME,
5707 TRADING_PARTNER_CONTACT_ID,
5708 NEW_SUPPLIER_NAME,
5709 NEW_SUPPLIER_CONTACT_FNAME,
5710 NEW_SUPPLIER_CONTACT_LNAME,
5711 NEW_SUPPLIER_EMAIL,
5712 NOTE_TO_NEW_SUPPLIER,
5713 WF_USER_NAME,
5714 INVITATION_ID,
5715 AUCTION_CREATION_DATE,
5716 BID_CURRENCY_CODE,
5717 NUMBER_PRICE_DECIMALS,
5718 RATE,
5719 DERIVE_TYPE,
5720 ADDITIONAL_CONTACT_EMAIL,
5721 ROUND_NUMBER,
5722 SUPP_ACKNOWLEDGEMENT,
5723 ACK_PARTNER_CONTACT_ID,
5724 ACKNOWLEDGEMENT_TIME,
5725 ACK_NOTE_TO_AUCTIONEER,
5726 REGISTRATION_ID,
5727 RATE_DSP,
5728 LAST_AMENDMENT_UPDATE,
5729 VENDOR_SITE_ID,
5730 VENDOR_SITE_CODE,
5731 MODIFIED_FLAG,
5732 ACCESS_TYPE,
5733 NULL REQUESTED_SUPPLIER_ID,
5734 NULL REQUESTED_SUPPLIER_NAME,
5735 NULL REQUESTED_SUPPLIER_CONTACT_ID,
5736 NULL REQUESTED_SUPP_CONTACT_NAME
5737 FROM PON_BIDDING_PARTIES PBP,
5738 AP_SUPPLIERS PV
5739 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5740 AND (TRADING_PARTNER_ID,TRADING_PARTNER_CONTACT_ID,nvl(VENDOR_SITE_ID,-1))
5741 NOT IN (SELECT PBH.TRADING_PARTNER_ID,
5742 PBH.TRADING_PARTNER_CONTACT_ID,
5743 NVL(PBH.VENDOR_SITE_ID,-1) VENDOR_SITE_ID
5744 FROM PON_BID_HEADERS PBH
5745 WHERE PBH.SHORTLIST_FLAG = 'N'
5746 AND PBH.AUCTION_HEADER_ID IN
5747 (SELECT AUCTION_HEADER_ID
5748 FROM PON_AUCTION_HEADERS_ALL
5749 WHERE AUCTION_HEADER_ID_ORIG_AMEND =
5750 l_auction_header_id_orig_amend)
5751 AND PBH.BID_STATUS IN('ACTIVE','RESUBMISSION'))
5752 AND PBP.TRADING_PARTNER_ID = PV.PARTY_ID
5753 AND nvl(PV.start_date_active, sysdate) <= sysdate
5754 AND nvl(PV.end_date_active, sysdate) >= sysdate
5755 UNION
5756 -- requested suppliers
5757 SELECT LIST_ID,
5758 SEQUENCE,
5759 TRADING_PARTNER_NAME,
5760 TRADING_PARTNER_ID,
5761 TRADING_PARTNER_CONTACT_NAME,
5762 TRADING_PARTNER_CONTACT_ID,
5763 NEW_SUPPLIER_NAME,
5764 NEW_SUPPLIER_CONTACT_FNAME,
5765 NEW_SUPPLIER_CONTACT_LNAME,
5766 NEW_SUPPLIER_EMAIL,
5767 NOTE_TO_NEW_SUPPLIER,
5768 WF_USER_NAME,
5769 INVITATION_ID,
5770 AUCTION_CREATION_DATE,
5771 BID_CURRENCY_CODE,
5772 NUMBER_PRICE_DECIMALS,
5773 RATE,
5774 DERIVE_TYPE,
5775 ADDITIONAL_CONTACT_EMAIL,
5776 ROUND_NUMBER,
5777 SUPP_ACKNOWLEDGEMENT,
5778 ACK_PARTNER_CONTACT_ID,
5779 ACKNOWLEDGEMENT_TIME,
5780 ACK_NOTE_TO_AUCTIONEER,
5781 REGISTRATION_ID,
5782 RATE_DSP,
5783 LAST_AMENDMENT_UPDATE,
5784 VENDOR_SITE_ID,
5785 VENDOR_SITE_CODE,
5786 MODIFIED_FLAG,
5787 ACCESS_TYPE,
5788 REQUESTED_SUPPLIER_ID,
5789 REQUESTED_SUPPLIER_NAME,
5790 REQUESTED_SUPPLIER_CONTACT_ID,
5791 REQUESTED_SUPP_CONTACT_NAME
5792 FROM PON_BIDDING_PARTIES PBP
5793 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
5794 AND PBP.trading_partner_id IS NULL
5795 AND PBP.requested_supplier_id NOT IN (
5796 SELECT supplier_reg_id
5797 FROM pos_supplier_registrations
5798 WHERE registration_status = 'REJECTED')
5799 UNION -- suppliers from bid headers
5800 SELECT
5801 -1 as LIST_ID,
5802 to_number(null) as SEQUENCE,
5803 PBH.TRADING_PARTNER_NAME,
5804 PBH.TRADING_PARTNER_ID,
5805 TRADING_PARTNER_CONTACT_NAME,
5806 TRADING_PARTNER_CONTACT_ID,
5807 NULL as NEW_SUPPLIER_NAME,
5808 NULL as NEW_SUPPLIER_CONTACT_FNAME,
5809 NULL as NEW_SUPPLIER_CONTACT_LNAME,
5810 NULL as NEW_SUPPLIER_EMAIL,
5811 NULL as NOTE_TO_NEW_SUPPLIER,
5812 NULL as WF_USER_NAME,
5813 to_number(NULL) as INVITATION_ID,
5814 to_date(NULL) as AUCTION_CREATION_DATE,
5815 NULL as BID_CURRENCY_CODE,
5816 to_number(NULL) as NUMBER_PRICE_DECIMALS,
5817 TO_NUMBER(NULL) as RATE,
5818 NULL as DERIVE_TYPE,
5819 NULL as ADDITIONAL_CONTACT_EMAIL,
5820 l_auction_round_number as ROUND_NUMBER,
5821 NULL as SUPP_ACKNOWLEDGEMENT,
5822 to_number(NULL) as ACK_PARTNER_CONTACT_ID,
5823 to_date(NULL) as ACKNOWLEDGEMENT_TIME,
5824 NULL as ACK_NOTE_TO_AUCTIONEER,
5825 to_number(NULL) as REGISTRATION_ID,
5826 TO_NUMBER(NULL) as RATE_DSP,
5827 0 as LAST_AMENDMENT_UPDATE,
5828 -1 as VENDOR_SITE_ID,
5829 '-1' as VENDOR_SITE_CODE,
5830 to_char(NULL) as MODIFIED_FLAG,
5831 'FULL' as ACCESS_TYPE, -- The default value of ACCESS_TYPE seems to be FULL
5832 NULL REQUESTED_SUPPLIER_ID,
5833 NULL REQUESTED_SUPPLIER_NAME,
5834 NULL REQUESTED_SUPPLIER_CONTACT_ID,
5835 NULL REQUESTED_SUPP_CONTACT_NAME
5836 FROM PON_BID_HEADERS PBH
5837 WHERE PBH.SHORTLIST_FLAG <> 'N'
5838 AND PBH.AUCTION_HEADER_ID IN
5839 (SELECT AUCTION_HEADER_ID
5840 FROM PON_AUCTION_HEADERS_ALL
5841 WHERE AUCTION_HEADER_ID_ORIG_AMEND =
5842 l_auction_header_id_orig_amend
5843 )
5844 AND PBH.BID_STATUS IN ('ACTIVE', 'RESUBMISSION')
5845 AND PBH.TRADING_PARTNER_ID NOT IN
5846 (SELECT NVL(TRADING_PARTNER_ID, -1)
5847 FROM PON_BIDDING_PARTIES
5848 WHERE AUCTION_HEADER_ID = p_source_auction_header_id)
5849 AND PBH.trading_partner_contact_name =
5850 (SELECT MIN(trading_partner_contact_name)
5851 FROM pon_bid_headers pbhinner
5852 WHERE pbhinner.trading_partner_id = pbh.trading_partner_id
5853 AND pbhinner.auction_header_id = pbh.auction_header_id
5854 GROUP BY pbhinner.auction_header_id, pbhinner.trading_partner_id)
5855 GROUP BY TRADING_PARTNER_ID, TRADING_PARTNER_NAME, TRADING_PARTNER_CONTACT_ID, TRADING_PARTNER_CONTACT_NAME
5856 ORDER BY SEQUENCE ASC NULLS LAST) A;
5857
5858 --} End of else of if Copy Negotiation or Amendment
5859 END IF;
5860
5861 IF (l_list_id.COUNT <> 0) THEN
5862 --{
5863 FOR x IN 1..l_list_id.COUNT
5864 LOOP
5865 -- { Start of loop
5866 --
5867 -- For amendments, need to carry over supplier ack data
5868 --
5869 IF (p_copy_type <> g_amend_copy ) THEN
5870 l_supp_acknowledgement(x) := NULL;
5871 l_ack_partner_contact_id(x) := NULL;
5872 l_acknowledgement_time(x) := NULL;
5873 l_ack_note_to_auctioneer(x) := NULL;
5874 l_last_amendment_update(x) := 0;
5875 l_registration_id(x) := NULL;
5876 END IF;
5877
5878 --
5879 -- Reset the round number for the Copy and Copy To Document cases
5880 --
5881 IF (p_copy_type = g_active_neg_copy
5882 OR p_copy_type = g_rfi_to_other_copy) THEN
5883 l_round_number(x) := 1;
5884 END IF;
5885
5886 l_modified_flag(x) := NULL;
5887 --
5888 -- Lot based project defaulting logic:
5889 -- The default value of the access type is FULL
5890 --
5891 IF (l_access_type(x) IS NULL) THEN
5892 l_access_type(x) := 'FULL';
5893 END IF;
5894
5895 --
5896 -- Set the Sequence field if it is null i.e. it was added in the last round
5897 --
5898 IF (l_sequence(x) IS NOT NULL) THEN
5899 l_last_seq_number := l_sequence(x);
5900 ELSE
5901 l_sequence(x) := l_last_seq_number + 10;
5902 l_last_seq_number := l_last_seq_number + 10;
5903 END IF;
5904
5905 --} End of loop
5906 END LOOP;
5907
5908 --
5909 -- Insert the data
5910 --
5911 FORALL x IN 1..l_list_id.COUNT
5912 --{ Start of inserting into loop
5913
5914 INSERT INTO PON_BIDDING_PARTIES
5915 (
5916 AUCTION_HEADER_ID,
5917 LIST_ID,
5918 LAST_UPDATE_DATE,
5919 LAST_UPDATED_BY,
5920 SEQUENCE,
5921 TRADING_PARTNER_NAME,
5922 TRADING_PARTNER_ID,
5923 TRADING_PARTNER_CONTACT_NAME,
5924 TRADING_PARTNER_CONTACT_ID,
5925 NEW_SUPPLIER_NAME,
5926 NEW_SUPPLIER_CONTACT_FNAME,
5927 NEW_SUPPLIER_CONTACT_LNAME,
5928 NEW_SUPPLIER_EMAIL,
5929 NOTE_TO_NEW_SUPPLIER,
5930 WF_USER_NAME,
5931 INVITATION_ID,
5932 CREATION_DATE,
5933 CREATED_BY,
5934 AUCTION_CREATION_DATE,
5935 BID_CURRENCY_CODE,
5936 NUMBER_PRICE_DECIMALS,
5937 RATE,
5938 DERIVE_TYPE,
5939 ADDITIONAL_CONTACT_EMAIL,
5940 ROUND_NUMBER,
5941 SUPP_ACKNOWLEDGEMENT,
5942 ACK_PARTNER_CONTACT_ID,
5943 ACKNOWLEDGEMENT_TIME,
5944 ACK_NOTE_TO_AUCTIONEER,
5945 REGISTRATION_ID,
5946 RATE_DSP,
5947 LAST_AMENDMENT_UPDATE,
5948 VENDOR_SITE_ID,
5949 VENDOR_SITE_CODE,
5950 MODIFIED_FLAG,
5951 ACCESS_TYPE,
5952 REQUESTED_SUPPLIER_ID,
5953 REQUESTED_SUPPLIER_NAME,
5954 REQUESTED_SUPPLIER_CONTACT_ID,
5955 REQUESTED_SUPP_CONTACT_NAME
5956 )
5957 VALUES
5958 (
5959 p_auction_header_id,
5960 l_list_id(x),
5961 SYSDATE ,
5962 p_user_id ,
5963 l_sequence(x),
5964 l_trading_partner_name(x),
5965 l_trading_partner_id(x),
5966 l_trading_partner_contact_name(x),
5967 l_trading_partner_contact_id(x),
5968 l_new_supplier_name(x),
5969 l_new_supplier_contact_fname(x),
5970 l_new_supplier_contact_lname(x),
5971 l_new_supplier_email(x),
5972 l_note_to_new_supplier(x),
5973 l_wf_user_name(x),
5974 l_invitation_id(x),
5975 SYSDATE ,
5976 p_user_id ,
5977 l_auction_creation_date(x),
5978 l_bid_currency_code(x),
5979 l_number_price_decimals(x),
5980 l_rate(x),
5981 l_derive_type(x),
5982 l_additional_contact_email(x),
5983 l_round_number(x),
5984 l_supp_acknowledgement(x),
5985 l_ack_partner_contact_id(x),
5986 l_acknowledgement_time(x),
5987 l_ack_note_to_auctioneer(x),
5988 l_registration_id(x),
5989 l_rate_dsp(x),
5990 l_last_amendment_update(x),
5991 l_vendor_site_id(x),
5992 l_vendor_site_code(x),
5993 l_modified_flag(x),
5994 --in case of large auctions, we do not allow party exclusions
5995 --so we need this decode
5996 decode (g_neg_style_control.large_neg_enabled_flag,'Y','FULL', l_access_type(x)),
5997 l_requested_supplier_id(x),
5998 l_requested_supplier_name(x),
5999 l_requested_supp_contact_id(x),
6000 l_requested_supp_contact_name(x)
6001 ) ;
6002
6003 --} End of inserting into the pon_bidding_parties
6004 --} End of IF (l_list_id.COUNT <> 0)
6005 END IF;
6006
6007 if (p_copy_type = g_new_rnd_copy
6008 OR p_copy_type = g_active_neg_copy
6009 OR p_copy_type = g_draft_neg_copy ) THEN
6010 --{ add inactive suppliers warning
6011 BEGIN
6012 SELECT
6013 DISTINCT PBP.trading_partner_name BULK COLLECT INTO l_inactive_suppliers
6014 FROM PON_BIDDING_PARTIES PBP,
6015 PO_VENDORS PV
6016 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
6017 AND PV.PARTY_ID = PBP.TRADING_PARTNER_ID
6018 AND ( nvl(pv.start_date_active, sysdate) > sysdate OR
6019 nvl(pv.end_date_active, sysdate) < sysdate );
6020 EXCEPTION WHEN no_data_found THEN
6021 NULL;
6022 END;
6023 l_supplier_names := '';
6024 IF (l_inactive_suppliers.COUNT <> 0) THEN
6025 --{
6026 l_supplier_names := l_inactive_suppliers(1);
6027 FOR x IN 2..l_inactive_suppliers.COUNT
6028 LOOP
6029 -- { Start of loop
6030 l_supplier_names := l_supplier_names || '; ' || l_inactive_suppliers(x);
6031 -- } End of loop
6032 END LOOP;
6033
6034 -- give warning for inactive suppliers
6035 FND_MESSAGE.SET_NAME('PON','PON_INACTIVE_SUPP_INVITEE_W'||'_'||g_message_suffix);
6036 FND_MESSAGE.SET_TOKEN('LIST',l_supplier_names);
6037 FND_MSG_PUB.ADD;
6038 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6039 --}
6040 END IF;
6041
6042 --bug 7376924, begin of inactive supplier contact handling logic
6043 BEGIN
6044 BEGIN
6045 SELECT
6046 DISTINCT PBP.trading_partner_contact_id BULK COLLECT
6047 INTO l_inactive_supplier_contacts
6048 FROM PON_BIDDING_PARTIES PBP,
6049 HZ_RELATIONSHIPS HZR
6050 WHERE PBP.AUCTION_HEADER_ID = p_auction_header_id
6051 AND HZR.SUBJECT_ID = PBP.TRADING_PARTNER_CONTACT_ID
6052 AND HZR.OBJECT_ID = PBP.TRADING_PARTNER_ID
6053 AND HZR.RELATIONSHIP_CODE = 'CONTACT_OF'
6054 AND ( (nvl(HZR.START_DATE, SYSDATE-1)>= SYSDATE) OR
6055 (nvl(HZR.END_DATE, SYSDATE+1) <= SYSDATE)
6056 );
6057 EXCEPTION WHEN no_data_found THEN
6058 NULL;
6059 END;
6060
6061 BEGIN
6062 FOR x IN 1..l_inactive_supplier_contacts.COUNT
6063 LOOP
6064
6065 UPDATE PON_BIDDING_PARTIES
6066 SET trading_partner_contact_name = NULL,
6067 trading_partner_contact_id = NULL
6068 WHERE auction_header_id = p_auction_header_id
6069 AND TRADING_PARTNER_CONTACT_ID = l_inactive_supplier_contacts(x);
6070
6071 END LOOP;
6072 END;
6073
6074 END;
6075 -- bug 7376924, end of inactive supplier handling logic
6076
6077 -- add warning for prospective suppliers that are REJECTED
6078 --l_inactive_suppliers := NULL;
6079 BEGIN
6080 SELECT DISTINCT PBP.requested_supplier_name BULK COLLECT INTO l_inactive_suppliers
6081 FROM PON_BIDDING_PARTIES PBP,
6082 Pos_supplier_registrations posreg
6083 WHERE PBP.AUCTION_HEADER_ID = p_source_auction_header_id
6084 AND posreg.SUPPLIER_REG_ID = pbp.REQUESTED_SUPPLIER_ID
6085 AND posreg.REGISTRATION_STATUS = 'REJECTED';
6086 EXCEPTION WHEN no_data_found THEN
6087 NULL;
6088 END;
6089
6090 l_supplier_names := '';
6091 IF (l_inactive_suppliers.COUNT <> 0) THEN
6092 --{
6093 l_supplier_names := l_inactive_suppliers(1);
6094 FOR x IN 2..l_inactive_suppliers.COUNT
6095 LOOP
6096 -- { Start of loop
6097 l_supplier_names := l_supplier_names || '; ' || l_inactive_suppliers(x);
6098 -- } End of loop
6099 END LOOP;
6100
6101 -- give warning for inactive suppliers
6102 FND_MESSAGE.SET_NAME('PON','PON_RS_REJECTED_INVITEE_W'||'_'||g_message_suffix);
6103 FND_MESSAGE.SET_TOKEN('LIST',l_supplier_names);
6104 FND_MSG_PUB.ADD;
6105 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6106 --}
6107 END IF;
6108 END IF; --}
6109 END;
6110 --} End of COPY_INVITEES
6111
6112 --
6113 -- Procedure to copy Negotiation Team Members for the given negotiation
6114 --
6115 PROCEDURE COPY_NEG_TEAM (p_source_auction_header_id IN NUMBER,
6116 p_auction_header_id IN NUMBER,
6117 p_tp_id IN NUMBER,
6118 p_tp_contact_id IN NUMBER,
6119 p_tp_name IN VARCHAR2,
6120 p_tpc_name IN VARCHAR2,
6121 p_user_id IN NUMBER,
6122 p_doctype_id IN NUMBER,
6123 p_copy_type IN VARCHAR2,
6124 p_user_name IN VARCHAR2,
6125 p_mgr_id IN NUMBER
6126 )
6127 IS
6128 l_list_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
6129 l_user_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
6130 l_menu_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
6131 l_member_type PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
6132 l_approver_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
6133 l_approval_status PON_NEG_COPY_DATATYPES_GRP.VARCHAR50_TYPE;
6134 l_task_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR4000_TYPE;
6135 l_target_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6136 l_completion_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6137 l_business_group_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
6138 l_effective_start_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6139 l_effective_end_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6140 l_user_start_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6141 l_user_end_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6142 l_last_amendment_update PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
6143 l_modified_flag PON_NEG_COPY_DATATYPES_GRP.VARCHAR1_TYPE;
6144 l_auc_business_group_id PON_NEG_COPY_DATATYPES_GRP.NUMBER_TYPE;
6145 l_full_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR300_TYPE;
6146 l_last_notif_date PON_NEG_COPY_DATATYPES_GRP.SIMPLE_DATE_TYPE;
6147 l_is_creator_included BOOLEAN := FALSE;
6148 l_is_manager_included BOOLEAN := FALSE;
6149 l_count NUMBER;
6150 l_inactive_mem VARCHAR2(4000);
6151 BEGIN
6152 -- { Start of COPY_NEG_TEAM
6153 --
6154 -- The existing logic is bit complex and is formulated using the bulkcopy
6155 -- style. As of now it will not use the direct copy as it will be complex to
6156 -- construct.
6157 --
6158 g_err_loc := '9.1 ';
6159 SELECT
6160 PNTM.LIST_ID,
6161 PNTM.USER_ID,
6162 PNTM.MENU_NAME,
6163 PNTM.MEMBER_TYPE,
6164 PNTM.APPROVER_FLAG,
6165 PNTM.APPROVAL_STATUS,
6166 PNTM.TASK_NAME,
6167 PNTM.TARGET_DATE,
6168 PNTM.COMPLETION_DATE,
6169 P.BUSINESS_GROUP_ID,
6170 P.EFFECTIVE_START_DATE,
6171 P.EFFECTIVE_END_DATE,
6172 U.START_DATE USER_START_DATE,
6173 U.END_DATE USER_END_DATE,
6174 PNTM.LAST_AMENDMENT_UPDATE,
6175 PNTM.MODIFIED_FLAG,
6176 PNTM.LAST_NOTIFIED_DATE,
6177 F.BUSINESS_GROUP_ID
6178 BULK COLLECT
6179 INTO
6180 l_list_id,
6181 l_user_id,
6182 l_menu_name,
6183 l_member_type,
6184 l_approver_flag,
6185 l_approval_status,
6186 l_task_name,
6187 l_target_date,
6188 l_completion_date,
6189 l_business_group_id,
6190 l_effective_start_date,
6191 l_effective_end_date,
6192 l_user_start_date,
6193 l_user_end_date,
6194 l_last_amendment_update,
6195 l_modified_flag,
6196 l_last_notif_date,
6197 l_auc_business_group_id
6198 FROM PON_NEG_TEAM_MEMBERS PNTM,
6199 FND_USER U,
6200 PER_ALL_PEOPLE_F P,
6201 PER_ALL_ASSIGNMENTS_F A,
6202 PER_ALL_POSITIONS S,
6203 PON_AUCTION_HEADERS_ALL AH,
6204 FINANCIALS_SYSTEM_PARAMS_ALL F
6205 WHERE U.USER_ID = PNTM.USER_ID
6206 AND PNTM.AUCTION_HEADER_ID = p_source_auction_header_id
6207 AND AH.AUCTION_HEADER_ID = PNTM.AUCTION_HEADER_ID
6208 AND NVL(F.ORG_ID, -9999) = NVL(AH.ORG_ID, -9999)
6209 AND P.PERSON_ID = U.EMPLOYEE_ID
6210 AND P.EFFECTIVE_END_DATE =
6211 (SELECT MAX(PP.EFFECTIVE_END_DATE)
6212 FROM PER_ALL_PEOPLE_F PP
6213 WHERE PP.PERSON_ID = U.EMPLOYEE_ID)
6214 AND A.PERSON_ID = P.PERSON_ID
6215 AND A.PRIMARY_FLAG = 'Y'
6216 AND ((A.ASSIGNMENT_TYPE = 'E' AND P.CURRENT_EMPLOYEE_FLAG = 'Y') OR
6217 (A.ASSIGNMENT_TYPE = 'C' AND P.CURRENT_NPW_FLAG = 'Y'))
6218 AND A.EFFECTIVE_END_DATE =
6219 (SELECT MAX(AA.EFFECTIVE_END_DATE)
6220 FROM PER_ALL_ASSIGNMENTS_F AA
6221 WHERE AA.PRIMARY_FLAG = 'Y'
6222 AND AA.ASSIGNMENT_TYPE in ('E', 'C')
6223 AND AA.PERSON_ID = P.PERSON_ID)
6224 AND A.POSITION_ID = S.POSITION_ID(+)
6225 AND TRUNC(SYSDATE) BETWEEN P.EFFECTIVE_START_DATE AND P.EFFECTIVE_END_DATE
6226 AND HAS_NEED_TO_COPY_MEMBER(p_user_id, p_mgr_id,p_copy_type,
6227 PNTM.USER_ID, PNTM.MEMBER_TYPE, F.BUSINESS_GROUP_ID,
6228 P.BUSINESS_GROUP_ID, P.EFFECTIVE_START_DATE,
6229 P.EFFECTIVE_END_DATE, U.START_DATE, U.END_DATE) = 'Y';
6230
6231
6232 l_count := l_user_id.COUNT;
6233
6234 g_err_loc := '9.2 ';
6235 IF (l_user_id.COUNT <> 0) THEN
6236 --{
6237 g_err_loc := '9.3 ';
6238 FOR x IN 1..l_user_id.COUNT
6239 LOOP
6240 --{
6241 g_err_loc := '9.4 ';
6242 --
6243 -- for amendments, we will not change the original creator
6244 --
6245 IF (p_copy_type <> g_amend_copy AND
6246 p_user_id = l_user_id(x)) THEN
6247 --
6248 -- set the member type
6249 --
6250 l_member_type(x) := 'C';
6251
6252 --
6253 -- give the creator Edit privileges
6254 --
6255 l_menu_name(x) := 'PON_SOURCING_EDITNEG';
6256 --
6257 -- set approver flag to N for the creator
6258 --
6259 l_approver_flag(x) := 'N';
6260 l_is_creator_included := TRUE;
6261
6262 END IF;
6263
6264 --
6265 -- for amendments, we will not change the original manager
6266 --
6267 IF (p_copy_type <> g_amend_copy AND
6268 p_mgr_id = l_user_id(x)) THEN
6269 --
6270 -- set the member type
6271 --
6272 l_member_type(x) := 'M';
6273 --
6274 -- give the creator Edit privileges
6275 --
6276 l_menu_name(x) := 'PON_SOURCING_EDITNEG';
6277
6278 --
6279 -- set approver flag as usual to Manager
6280 --
6281 l_approver_flag(x) := 'Y';
6282 l_is_manager_included := TRUE;
6283
6284 END IF;
6285
6286 --
6287 -- copy reset logic
6288 --
6289 -- for amendments, we will carry over data related to task completion dates
6290 IF (p_copy_type <> g_amend_copy ) THEN
6291 l_target_date(x) := NULL;
6292 l_completion_date(x) := NULL;
6293
6294 --
6295 -- only relevant during the amendment process
6296 --
6297 l_last_amendment_update(x) := 0;
6298 --
6299 -- Last Notified Date data only to be carried over
6300 -- for Negotiation Amendment
6301 --
6302 l_last_notif_date(x) := null;
6303 END IF;
6304
6305 l_approval_status(x) := NULL;
6306 l_modified_flag(x) := NULL;
6307 --}
6308 END LOOP;
6309 g_err_loc := '9.5 ';
6310 --
6311 -- We have to add the creator as team member if not already added
6312 -- For Amendment we preserve the creator intact
6313 --
6314 IF (l_is_creator_included = FALSE AND
6315 p_copy_type <> g_amend_copy) THEN
6316 l_count := l_user_id.COUNT+1;
6317 l_list_id(l_count) := -1;
6318 l_user_id(l_count) := p_user_id;
6319 l_menu_name(l_count) := 'PON_SOURCING_EDITNEG';
6320 l_member_type(l_count) := 'C';
6321 l_approver_flag(l_count) := 'N';
6322 l_approval_status(l_count) := NULL;
6323 l_task_name(l_count) := NULL;
6324 l_target_date(l_count) := NULL;
6325 l_completion_date(l_count) := NULL;
6326 l_last_amendment_update(l_count) := 0;
6327 l_modified_flag(l_count) := NULL;
6328 l_last_notif_date(l_count) := NULL;
6329 END IF;
6330
6331 g_err_loc := '9.6 ';
6332 --
6333 -- We have to add the manager of the user as manager if
6334 -- not already added
6335 --
6336 IF (l_is_manager_included = FALSE
6337 AND p_copy_type <> g_amend_copy
6338 AND p_mgr_id IS NOT NULL) THEN
6339 l_count := l_count+1;
6340 l_list_id(l_count) := -1;
6341 l_user_id(l_count) := p_mgr_id;
6342 l_menu_name(l_count) := 'PON_SOURCING_EDITNEG';
6343 l_member_type(l_count) := 'M';
6344 l_approver_flag(l_count) := 'Y';
6345 l_approval_status(l_count) := NULL;
6346 l_task_name(l_count) := NULL;
6347 l_target_date(l_count) := NULL;
6348 l_completion_date(l_count) := NULL;
6349 l_last_amendment_update(l_count) := 0;
6350 l_modified_flag(l_count) := NULL;
6351 l_last_notif_date(l_count) := NULL;
6352 END IF;
6353 --}
6354 ELSE
6355 --{
6356 --
6357 -- So, we do not have any negotiation team members from
6358 -- last negotiation document. Thus we need to add the creator
6359 -- and the manager in the team member list
6360 --
6361 -- Add the user data
6362 --
6363 g_err_loc := '9.7 ';
6364 l_count := l_count+1;
6365 l_list_id(l_count) := -1;
6366 l_user_id(l_count) := p_user_id;
6367 l_menu_name(l_count) := 'PON_SOURCING_EDITNEG';
6368 l_member_type(l_count) := 'C';
6369 l_approver_flag(l_count) := 'N';
6370 l_approval_status(l_count) := NULL;
6371 l_task_name(l_count) := NULL;
6372 l_target_date(l_count) := NULL;
6373 l_completion_date(l_count) := NULL;
6374 l_last_amendment_update(l_count) := 0;
6375 l_modified_flag(l_count) := NULL;
6376 l_last_notif_date(l_count) := NULL;
6377
6378 --
6379 -- Add the manager data if it is valid
6380 --
6381 IF ( p_mgr_id IS NOT NULL) THEN
6382 l_count := l_user_id.COUNT+1;
6383 l_list_id(l_count) := -1;
6384 l_user_id(l_count) := p_mgr_id;
6385 l_menu_name(l_count) := 'PON_SOURCING_EDITNEG';
6386 l_member_type(l_count) := 'M';
6387 l_approver_flag(l_count) := 'Y';
6388 l_approval_status(l_count) := NULL;
6389 l_task_name(l_count) := NULL;
6390 l_target_date(l_count) := NULL;
6391 l_completion_date(l_count) := NULL;
6392 l_last_amendment_update(l_count) := 0;
6393 l_modified_flag(l_count) := NULL;
6394 l_last_notif_date(l_count) := NULL;
6395 END IF;
6396 --}
6397 END IF;
6398
6399 g_err_loc := '9.8 ';
6400 --
6401 -- Insert data
6402 --
6403 FORALL x IN 1..l_user_id.COUNT
6404 INSERT INTO
6405 PON_NEG_TEAM_MEMBERS
6406 (
6407 AUCTION_HEADER_ID,
6408 LIST_ID,
6409 USER_ID,
6410 MENU_NAME,
6411 MEMBER_TYPE,
6412 APPROVER_FLAG,
6413 APPROVAL_STATUS,
6414 TASK_NAME,
6415 TARGET_DATE,
6416 COMPLETION_DATE,
6417 CREATION_DATE,
6418 CREATED_BY,
6419 LAST_UPDATE_DATE,
6420 LAST_UPDATED_BY,
6421 LAST_AMENDMENT_UPDATE,
6422 MODIFIED_FLAG,
6423 LAST_NOTIFIED_DATE
6424
6425 )
6426 VALUES
6427 (
6428 p_auction_header_id,
6429 l_list_id(x),
6430 l_user_id(x),
6431 l_menu_name(x),
6432 l_member_type(x),
6433 l_approver_flag(x),
6434 l_approval_status(x),
6435 l_task_name(x),
6436 l_target_date(x),
6437 l_completion_date(x),
6438 SYSDATE,
6439 p_user_id,
6440 SYSDATE,
6441 p_user_id,
6442 l_last_amendment_update(x),
6443 l_modified_flag(x),
6444 l_last_notif_date(x)
6445 ) ;
6446
6447 --
6448 -- Add the invalid Negotiation Team members on the FND_MSG_PUB stack
6449 -- for the display as warning message.
6450 --
6451 -- It is assumed that if there are any extra team members having 'N' type
6452 -- in the original negotiation (as compared to the newly created negotiation)
6453 -- then they must be inactivated team members as of now and
6454 -- hence can be added to the inactivated negotiation team member
6455 -- list. As of now the logic seems to be correct for all the
6456 -- cases.
6457 --
6458
6459 g_err_loc := '9.9 ';
6460
6461 SELECT
6462 FULL_NAME
6463 BULK COLLECT
6464 INTO
6465 l_full_name
6466 FROM (SELECT PNTM.USER_ID, P.FULL_NAME
6467 FROM PON_NEG_TEAM_MEMBERS PNTM,
6468 FND_USER U, PER_ALL_PEOPLE_F P
6469 WHERE U.USER_ID = PNTM.USER_ID
6470 AND PNTM.AUCTION_HEADER_ID = p_source_auction_header_id
6471 AND PNTM.MEMBER_TYPE = 'N'
6472 AND P.PERSON_ID = U.EMPLOYEE_ID
6473 MINUS
6474 SELECT PNTM.USER_ID, P.FULL_NAME
6475 FROM PON_NEG_TEAM_MEMBERS PNTM,
6476 FND_USER U, PER_ALL_PEOPLE_F P
6477 WHERE U.USER_ID = PNTM.USER_ID
6478 AND PNTM.AUCTION_HEADER_ID = p_auction_header_id
6479 AND P.PERSON_ID = U.EMPLOYEE_ID);
6480
6481 --
6482 -- Add the invalid users in the stack
6483 --
6484 IF (l_full_name.COUNT <> 0) THEN
6485 --{
6486 FND_MESSAGE.SET_NAME('PON','PON_AUC_INACTIVE_MEMBERS_W'||'_'|| g_message_suffix);
6487 l_inactive_mem := '; 1. '||l_full_name(1);
6488
6489 g_err_loc := '9.10 ';
6490 FOR x IN 2..l_full_name.COUNT
6491 LOOP
6492 l_inactive_mem := l_inactive_mem||' '||x||'. '|| l_full_name(x);
6493 END LOOP;
6494
6495 -- The way I am adding this error may get changed in the future.
6496 -- So, please be aware of that
6497 FND_MESSAGE.SET_TOKEN('LIST',l_inactive_mem);
6498 FND_MSG_PUB.ADD;
6499
6500 -- Set the status
6501 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6502 --}
6503 END IF;
6504 END;
6505 --} End of COPY_NEG_TEAM
6506
6507 --
6508 -- Function to check if a negotiation team member should be copied or not
6509 --
6510 FUNCTION HAS_NEED_TO_COPY_MEMBER ( p_login_user_id IN NUMBER,
6511 p_login_manager_id IN NUMBER,
6512 p_copy_type IN VARCHAR2,
6513 p_memeber_id IN NUMBER,
6514 p_memeber_type IN VARCHAR2,
6515 p_busines_group_id IN NUMBER,
6516 p_member_busines_group_id IN NUMBER,
6517 p_member_eff_start_date IN DATE,
6518 p_member_eff_end_date IN DATE,
6519 p_member_user_start_date IN DATE,
6520 p_member_user_end_date IN DATE) RETURN VARCHAR2
6521 IS
6522 l_return_value VARCHAR2(1);
6523 BEGIN
6524 --{ Start of HAS_NEED_TO_COPY_MEMBER
6525
6526 l_return_value := 'N';
6527 --
6528 -- when creating the amendment, we will not remove any collaboration
6529 -- team members
6530 --
6531 IF(p_copy_type = 'AMENDMENT') THEN
6532 l_return_value := 'Y';
6533 --
6534 -- copy the logged in user
6535 --
6536 ELSIF ( p_login_user_id = p_memeber_id) THEN
6537 l_return_value := 'Y';
6538 --
6539 -- copy the logged in user's manager
6540 --
6541 ELSIF ( p_login_manager_id = p_memeber_id) THEN
6542 l_return_value := 'Y';
6543
6544 --
6545 -- Since this member was added by the system automatically,
6546 -- remove the old creator
6547 --
6548 ELSIF ( p_memeber_type = 'C') THEN
6549 l_return_value := 'N';
6550 --
6551 -- Since this member was added by the system automatically,
6552 -- remove the old manager
6553 --
6554 ELSIF ( p_memeber_type = 'M') THEN
6555 l_return_value := 'N';
6556
6557 --
6558 -- Member is a normal Team Member (member type is "N")
6559 --
6560 ELSE
6561 l_return_value := 'Y';
6562 IF (fnd_profile.value('HR_CROSS_BUSINESS_GROUP') <> 'Y' ) THEN
6563 IF (p_busines_group_id <> p_member_busines_group_id ) THEN
6564 l_return_value := 'N';
6565 END IF;
6566 END IF;
6567
6568 IF (l_return_value = 'N' OR
6569 p_member_eff_start_date > SYSDATE OR
6570 p_member_eff_end_date < SYSDATE OR
6571 p_member_user_start_date > SYSDATE OR
6572 p_member_user_end_date < SYSDATE) THEN
6573 l_return_value := 'N';
6574 END IF;
6575
6576 END IF;
6577
6578 RETURN l_return_value;
6579
6580 END HAS_NEED_TO_COPY_MEMBER;
6581 --} End of HAS_NEED_TO_COPY_MEMBER
6582
6583 --
6584 -- Procedure to blindly copy the PON_PARTY_LINE_EXCLUSIONS data.
6585 -- It does not have any business logic as of now. So, it is a blind copy.
6586 --
6587 PROCEDURE COPY_PARTY_LINE_EXCLUSIONS (
6588 p_source_auction_header_id IN NUMBER,
6589 p_auction_header_id IN NUMBER,
6590 p_user_id IN NUMBER,
6591 p_doctype_id IN NUMBER,
6592 p_copy_type IN VARCHAR2,
6593 p_from_line_number IN NUMBER,
6594 p_to_line_number IN NUMBER)
6595 IS
6596 BEGIN
6597 -- { Start of COPY_PARTY_LINE_EXCLUSIONS
6598
6599 --
6600 -- join on pbp.sequence to exclude inactive, rejected suppliers from getting copied over
6601 --
6602 INSERT INTO PON_PARTY_LINE_EXCLUSIONS
6603 ( AUCTION_HEADER_ID,
6604 TRADING_PARTNER_ID,
6605 VENDOR_SITE_ID,
6606 LINE_NUMBER,
6607 CREATION_DATE,
6608 CREATED_BY,
6609 LAST_UPDATE_DATE,
6610 LAST_UPDATED_BY,
6611 LAST_UPDATE_LOGIN,
6612 SEQUENCE_NUMBER
6613 )
6614 (SELECT p_auction_header_id, -- AUCTION_HEADER_ID
6615 ple.TRADING_PARTNER_ID,
6616 ple.VENDOR_SITE_ID,
6617 ple.LINE_NUMBER,
6618 SYSDATE, -- CREATION_DATE
6619 p_user_id, -- CREATED_BY
6620 SYSDATE, -- LAST_UPDATE_DATE
6621 p_user_id, -- LAST_UPDATED_BY
6622 p_user_id, -- LAST_UPDATE_LOGIN
6623 ple.SEQUENCE_NUMBER
6624 FROM PON_PARTY_LINE_EXCLUSIONS ple, pon_bidding_parties pbp
6625 WHERE ple.AUCTION_HEADER_ID = p_source_auction_header_id
6626 AND ple.line_number >= p_from_line_number
6627 AND ple.line_number <= p_to_line_number
6628 AND pbp.auction_header_id = p_auction_header_id
6629 AND ple.sequence_number = pbp.sequence
6630 ) ;
6631
6632 END;
6633 -- } End of COPY_PARTY_LINE_EXCLUSIONS
6634
6635 --
6636 -- Procedure to blindly copy the PON_PF_SUPPLIER_VALUES data.
6637 -- It does not have any business logic as of now. So, it is a blind copy.
6638 --
6639 PROCEDURE COPY_PF_SUPPLIER_VALUES (
6640 p_source_auction_header_id IN NUMBER,
6641 p_auction_header_id IN NUMBER,
6642 p_user_id IN NUMBER,
6643 p_doctype_id IN NUMBER,
6644 p_copy_type IN VARCHAR2,
6645 p_from_line_number IN NUMBER,
6646 p_to_line_number IN NUMBER)
6647 IS
6648 BEGIN
6649 -- { Start of PON_PF_SUPPLIER_VALUES
6650
6651 LOG_MESSAGE('copy negotiation','in COPY_PF_SUPPLIER_VALUES for '||p_source_auction_header_id||' to '||p_auction_header_id);
6652
6653 --
6654 -- Do not copy Price Factor Values if it is Copy To RFI
6655 --
6656 IF (g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y') THEN
6657 -- {
6658 -- Copy Logic:
6659 -- Copy all the price factor values EXCEPT
6660 -- where the price factor has become inactive
6661 -- join on pbp.sequence to exclude inactive, rejected suppliers from getting copied over
6662
6663 INSERT INTO PON_PF_SUPPLIER_VALUES
6664 ( AUCTION_HEADER_ID,
6665 LINE_NUMBER,
6666 PF_SEQ_NUMBER,
6667 SUPPLIER_SEQ_NUMBER,
6668 VALUE,
6669 CREATION_DATE,
6670 CREATED_BY,
6671 LAST_UPDATE_DATE,
6672 LAST_UPDATED_BY,
6673 LAST_UPDATE_LOGIN
6674 )
6675 (SELECT p_auction_header_id, -- AUCTION_HEADER_ID
6676 PPSV.LINE_NUMBER,
6677 PPSV.PF_SEQ_NUMBER,
6678 PPSV.SUPPLIER_SEQ_NUMBER,
6679 PPSV.VALUE,
6680 SYSDATE, -- CREATION_DATE
6681 p_user_id, -- CREATED_BY
6682 SYSDATE, -- LAST_UPDATE_DATE
6683 p_user_id, -- LAST_UPDATED_BY
6684 p_user_id -- LAST_UPDATE_LOGIN
6685 FROM PON_PF_SUPPLIER_VALUES PPSV,
6686 PON_PRICE_ELEMENTS PPE,
6687 PON_PRICE_ELEMENT_TYPES_VL VL,
6688 PON_BIDDING_PARTIES PBP
6689 WHERE PPSV.AUCTION_HEADER_ID = p_source_auction_header_id AND
6690 PPSV.AUCTION_HEADER_ID = PPE.AUCTION_HEADER_ID AND
6691 PPSV.LINE_NUMBER = PPE.LINE_NUMBER AND
6692 PPSV.PF_SEQ_NUMBER = PPE.SEQUENCE_NUMBER AND
6693 PPE.PRICE_ELEMENT_TYPE_ID = VL.PRICE_ELEMENT_TYPE_ID AND
6694 VL.ENABLED_FLAG = 'Y' AND
6695 PPSV.line_number >= p_from_line_number AND
6696 PPSV.line_number <= p_to_line_number AND
6697 PBP.auction_header_id = p_auction_header_id AND
6698 PBP.sequence = PPSV.SUPPLIER_SEQ_NUMBER
6699 ) ;
6700
6701 --}
6702 END IF;
6703
6704 END;
6705 -- } End of COPY_PF_SUPPLIER_VALUES
6706
6707 --
6708 -- Procedure to copy the Event Abstract related data.
6709 --
6710 PROCEDURE COPY_FORM_DATA (
6711 p_source_auction_header_id IN NUMBER,
6712 p_auction_header_id IN NUMBER,
6713 p_user_id IN NUMBER,
6714 p_doctype_id IN NUMBER,
6715 p_source_doctype_id IN NUMBER,
6716 p_copy_type IN VARCHAR2)
6717 IS
6718 l_inactive_sections NUMBER;
6719 l_abstract_id NUMBER;
6720
6721 BEGIN
6722 -- { Start of COPY_FORM_DATA
6723
6724 BEGIN
6725 -- Get the id of the abstract from pon_forms_sections
6726 SELECT PFS.FORM_ID
6727 INTO l_abstract_id
6728 FROM PON_FORMS_SECTIONS PFS
6729 WHERE PFS.FORM_CODE='ABSTRACT';
6730
6731 EXCEPTION WHEN OTHERS THEN
6732 l_abstract_id := -1;
6733 END;
6734
6735
6736 --
6737 -- STATUS will be same for amendment and multi round
6738 --
6739 IF (p_copy_type = g_amend_copy OR p_copy_type = g_new_rnd_copy) THEN
6740
6741 INSERT INTO PON_FORMS_INSTANCES
6742 ( ENTITY_CODE,
6743 ENTITY_PK1,
6744 FORM_ID,
6745 STATUS,
6746 CREATION_DATE,
6747 CREATED_BY,
6748 LAST_UPDATE_DATE,
6749 LAST_UPDATED_BY,
6750 LAST_UPDATE_LOGIN,
6751 XML_LAST_SENT_DATE
6752 )
6753 (SELECT
6754 FI.ENTITY_CODE,
6755 TO_CHAR(p_auction_header_id),
6756 FI.FORM_ID,
6757 decode (FI.FORM_ID,
6758 l_abstract_id, NULL,
6759 FI.STATUS),
6760 SYSDATE,
6761 p_user_id,
6762 SYSDATE,
6763 p_user_id,
6764 p_user_id,
6765 XML_LAST_SENT_DATE
6766 FROM PON_FORMS_SECTIONS FS,
6767 PON_FORMS_INSTANCES FI
6768 WHERE FI.ENTITY_CODE = 'PON_AUCTION_HEADERS_ALL'
6769 AND FI.ENTITY_PK1 = TO_CHAR(p_source_auction_header_id)
6770 AND FI.FORM_ID = FS.FORM_ID
6771 AND FS.STATUS = 'ACTIVE');
6772
6773 END IF;
6774
6775 --
6776 -- While same doctype copy,
6777 -- 1. for Active Negotiation Copy STATUS will be NOT_ENTERED
6778 -- 2. for Draff Negotiation Copy STATUS will be NOT_ENTERED
6779 --
6780 IF (p_copy_type = g_active_neg_copy OR p_copy_type = g_draft_neg_copy) THEN
6781
6782 INSERT INTO PON_FORMS_INSTANCES
6783 ( ENTITY_CODE,
6784 ENTITY_PK1,
6785 FORM_ID,
6786 STATUS,
6787 CREATION_DATE,
6788 CREATED_BY,
6789 LAST_UPDATE_DATE,
6790 LAST_UPDATED_BY,
6791 LAST_UPDATE_LOGIN,
6792 XML_LAST_SENT_DATE
6793 )
6794 (SELECT
6795 FI.ENTITY_CODE,
6796 TO_CHAR(p_auction_header_id),
6797 FI.FORM_ID,
6798 decode (FI.FORM_ID,
6799 l_abstract_id, NULL,
6800 'NOT_ENTERED'), -- STATUS
6801 SYSDATE,
6802 p_user_id,
6803 SYSDATE,
6804 p_user_id,
6805 p_user_id,
6806 NULL
6807 FROM PON_FORMS_INSTANCES FI,
6808 PON_FORMS_SECTIONS FS
6809 WHERE ENTITY_CODE = 'PON_AUCTION_HEADERS_ALL'
6810 AND ENTITY_PK1 = TO_CHAR(p_source_auction_header_id)
6811 AND FI.FORM_ID = FS.FORM_ID
6812 AND FS.STATUS = 'ACTIVE');
6813 END IF;
6814
6815 -- there will be an information message in case of any inactive sections
6816 SELECT
6817 COUNT(1)
6818 INTO
6819 l_inactive_sections
6820 FROM PON_FORMS_INSTANCES FI,
6821 PON_FORMS_SECTIONS FS
6822 WHERE FI.ENTITY_CODE = 'PON_AUCTION_HEADERS_ALL'
6823 AND FI.ENTITY_PK1 = TO_CHAR(p_source_auction_header_id)
6824 AND FI.FORM_ID = FS.FORM_ID
6825 AND FS.STATUS = 'INACTIVE';
6826
6827 IF (l_inactive_sections > 0) THEN
6828
6829 -- The way I am adding this error may get changed in the future.
6830 -- So, please be aware of that
6831 FND_MESSAGE.SET_NAME('PON','PON_INACTIVE_FORMS_COPY_INFO');
6832 FND_MSG_PUB.ADD;
6833
6834 -- Set the status
6835 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6836 END IF;
6837
6838 -- Call the COPY_FORM_CHILDREN to copy children
6839 LOG_MESSAGE('copy_negotiation','Copy Form and section children data is starting');
6840
6841 COPY_FORM_CHILDREN (
6842 p_source_auction_header_id => p_source_auction_header_id,
6843 p_auction_header_id => p_auction_header_id,
6844 p_user_id => p_user_id,
6845 p_doctype_id => p_doctype_id,
6846 p_source_doctype_id => p_source_doctype_id,
6847 p_copy_type => p_copy_type);
6848
6849 END;
6850 -- } End of COPY_FORM_DATA
6851
6852 --
6853 -- Procedure to copy the Event Abstract Forms related data.
6854 --
6855 PROCEDURE COPY_FORM_CHILDREN (
6856 p_source_auction_header_id IN NUMBER,
6857 p_auction_header_id IN NUMBER,
6858 p_user_id IN NUMBER,
6859 p_doctype_id IN NUMBER,
6860 p_source_doctype_id IN NUMBER,
6861 p_copy_type IN VARCHAR2)
6862 IS
6863
6864 CURSOR c_negotiation_forms IS
6865 SELECT
6866 FI.FORM_ID
6867 FROM PON_FORMS_INSTANCES FI,
6868 PON_FORMS_SECTIONS FS
6869 WHERE FI.ENTITY_CODE = 'PON_AUCTION_HEADERS_ALL'
6870 AND FI.ENTITY_PK1 = TO_CHAR(p_source_auction_header_id)
6871 AND FI.FORM_ID = FS.FORM_ID
6872 AND FS.STATUS = 'ACTIVE';
6873
6874 l_has_children NUMBER;
6875 l_orig_parent_field_val_fk NUMBER;
6876
6877
6878 BEGIN
6879 -- { Start of COPY_FORM_CHILDREN
6880
6881 FOR form IN c_negotiation_forms LOOP
6882 -- {
6883 SELECT
6884 COUNT(1)
6885 INTO
6886 l_has_children
6887 FROM PON_FORM_FIELD_VALUES
6888 WHERE FORM_ID = form.FORM_ID
6889 AND OWNING_ENTITY_CODE = 'PON_AUCTION_HEADERS_ALL'
6890 AND ENTITY_PK1 = TO_CHAR(p_source_auction_header_id)
6891 AND PARENT_FIELD_VALUES_FK = -1;
6892
6893 IF l_has_children > 0 THEN
6894
6895 SELECT
6896 FORM_FIELD_VALUE_ID
6897 INTO
6898 l_orig_parent_field_val_fk
6899 FROM PON_FORM_FIELD_VALUES
6900 WHERE FORM_ID = form.FORM_ID
6901 AND OWNING_ENTITY_CODE = 'PON_AUCTION_HEADERS_ALL'
6902 AND ENTITY_PK1 = TO_CHAR(p_source_auction_header_id)
6903 AND PARENT_FIELD_VALUES_FK = -1;
6904
6905 COPY_FORM_FIELD_CHILDREN (
6906 p_orig_parent_fld_values_fk => -1,
6907 p_new_parent_field_values_fk => -1,
6908 p_user_id => p_user_id,
6909 p_new_entity_pk1 => to_char(p_auction_header_id),
6910 p_form_id => form.FORM_ID,
6911 p_old_entity_pk1 => to_char(p_source_auction_header_id));
6912
6913 END IF;
6914 -- }
6915 END LOOP;
6916 END;
6917 -- } End of COPY_FORM_CHILDREN
6918
6919 --
6920 -- Procedure to copy the Event Abstract Form Fields data.
6921 --
6922 PROCEDURE COPY_FORM_FIELD_CHILDREN (
6923 p_orig_parent_fld_values_fk IN NUMBER,
6924 p_new_parent_field_values_fk IN NUMBER,
6925 p_user_id IN NUMBER,
6926 p_new_entity_pk1 IN VARCHAR2,
6927 p_form_id IN NUMBER,
6928 p_old_entity_pk1 IN VARCHAR2)
6929 IS
6930
6931 l_new_field_values_fk NUMBER;
6932
6933 CURSOR c_field_values_cursor IS
6934 SELECT
6935 FORM_FIELD_VALUE_ID,
6936 FORM_ID ,
6937 OWNING_ENTITY_CODE ,
6938 ENTITY_PK1 ,
6939 SECTION_ID ,
6940 PARENT_FIELD_VALUES_FK ,
6941 TEXTCOL1 ,
6942 TEXTCOL2 ,
6943 TEXTCOL3 ,
6944 TEXTCOL4 ,
6945 TEXTCOL5 ,
6946 TEXTCOL6 ,
6947 TEXTCOL7 ,
6948 TEXTCOL8 ,
6949 TEXTCOL9 ,
6950 TEXTCOL10,
6951 TEXTCOL11,
6952 TEXTCOL12,
6953 TEXTCOL13,
6954 TEXTCOL14,
6955 TEXTCOL15,
6956 TEXTCOL16,
6957 TEXTCOL17,
6958 TEXTCOL18,
6959 TEXTCOL19,
6960 TEXTCOL20,
6961 TEXTCOL21,
6962 TEXTCOL22,
6963 TEXTCOL23,
6964 TEXTCOL24,
6965 TEXTCOL25,
6966 TEXTCOL26,
6967 TEXTCOL27,
6968 TEXTCOL28,
6969 TEXTCOL29,
6970 TEXTCOL30,
6971 TEXTCOL31,
6972 TEXTCOL32,
6973 TEXTCOL33,
6974 TEXTCOL34,
6975 TEXTCOL35,
6976 TEXTCOL36,
6977 TEXTCOL37,
6978 TEXTCOL38,
6979 TEXTCOL39,
6980 TEXTCOL40,
6981 TEXTCOL41,
6982 TEXTCOL42,
6983 TEXTCOL43,
6984 TEXTCOL44,
6985 TEXTCOL45,
6986 TEXTCOL46,
6987 TEXTCOL47,
6988 TEXTCOL48,
6989 TEXTCOL49,
6990 TEXTCOL50,
6991 TEXTCOL51,
6992 TEXTCOL52,
6993 TEXTCOL53,
6994 TEXTCOL54,
6995 TEXTCOL55,
6996 TEXTCOL56,
6997 TEXTCOL57,
6998 TEXTCOL58,
6999 TEXTCOL59,
7000 TEXTCOL60,
7001 TEXTCOL61,
7002 TEXTCOL62,
7003 TEXTCOL63,
7004 TEXTCOL64,
7005 TEXTCOL65,
7006 TEXTCOL66,
7007 TEXTCOL67,
7008 TEXTCOL68,
7009 TEXTCOL69,
7010 TEXTCOL70,
7011 TEXTCOL71,
7012 TEXTCOL72,
7013 TEXTCOL73,
7014 TEXTCOL74,
7015 TEXTCOL75,
7016 TEXTCOL76,
7017 TEXTCOL77,
7018 TEXTCOL78,
7019 TEXTCOL79,
7020 TEXTCOL80,
7021 TEXTCOL81,
7022 TEXTCOL82,
7023 TEXTCOL83,
7024 TEXTCOL84,
7025 TEXTCOL85,
7026 TEXTCOL86,
7027 TEXTCOL87,
7028 TEXTCOL88,
7029 TEXTCOL89,
7030 TEXTCOL90,
7031 TEXTCOL91,
7032 TEXTCOL92,
7033 TEXTCOL93,
7034 TEXTCOL94,
7035 TEXTCOL95,
7036 TEXTCOL96,
7037 TEXTCOL97,
7038 TEXTCOL98,
7039 TEXTCOL99,
7040 TEXTCOL100 ,
7041 TEXTCOL101 ,
7042 TEXTCOL102 ,
7043 TEXTCOL103 ,
7044 TEXTCOL104 ,
7045 TEXTCOL105 ,
7046 TEXTCOL106 ,
7047 TEXTCOL107 ,
7048 TEXTCOL108 ,
7049 TEXTCOL109 ,
7050 TEXTCOL110 ,
7051 TEXTCOL111 ,
7052 TEXTCOL112 ,
7053 TEXTCOL113 ,
7054 TEXTCOL114 ,
7055 TEXTCOL115 ,
7056 TEXTCOL116 ,
7057 TEXTCOL117 ,
7058 TEXTCOL118 ,
7059 TEXTCOL119 ,
7060 TEXTCOL120 ,
7061 TEXTCOL121 ,
7062 TEXTCOL122 ,
7063 TEXTCOL123 ,
7064 TEXTCOL124 ,
7065 TEXTCOL125 ,
7066 TEXTCOL126 ,
7067 TEXTCOL127 ,
7068 TEXTCOL128 ,
7069 TEXTCOL129 ,
7070 TEXTCOL130 ,
7071 TEXTCOL131 ,
7072 TEXTCOL132 ,
7073 TEXTCOL133 ,
7074 TEXTCOL134 ,
7075 TEXTCOL135 ,
7076 TEXTCOL136 ,
7077 TEXTCOL137 ,
7078 TEXTCOL138 ,
7079 TEXTCOL139 ,
7080 TEXTCOL140 ,
7081 TEXTCOL141 ,
7082 TEXTCOL142 ,
7083 TEXTCOL143 ,
7084 TEXTCOL144 ,
7085 TEXTCOL145 ,
7086 TEXTCOL146 ,
7087 TEXTCOL147 ,
7088 TEXTCOL148 ,
7089 TEXTCOL149 ,
7090 TEXTCOL150 ,
7091 TEXTCOL151 ,
7092 TEXTCOL152 ,
7093 TEXTCOL153 ,
7094 TEXTCOL154 ,
7095 TEXTCOL155 ,
7096 TEXTCOL156 ,
7097 TEXTCOL157 ,
7098 TEXTCOL158 ,
7099 TEXTCOL159 ,
7100 TEXTCOL160 ,
7101 TEXTCOL161 ,
7102 TEXTCOL162 ,
7103 TEXTCOL163 ,
7104 TEXTCOL164 ,
7105 TEXTCOL165 ,
7106 TEXTCOL166 ,
7107 TEXTCOL167 ,
7108 TEXTCOL168 ,
7109 TEXTCOL169 ,
7110 TEXTCOL170 ,
7111 TEXTCOL171 ,
7112 TEXTCOL172 ,
7113 TEXTCOL173 ,
7114 TEXTCOL174 ,
7115 TEXTCOL175 ,
7116 TEXTCOL176 ,
7117 TEXTCOL177 ,
7118 TEXTCOL178 ,
7119 TEXTCOL179 ,
7120 TEXTCOL180 ,
7121 TEXTCOL181 ,
7122 TEXTCOL182 ,
7123 TEXTCOL183 ,
7124 TEXTCOL184 ,
7125 TEXTCOL185 ,
7126 TEXTCOL186 ,
7127 TEXTCOL187 ,
7128 TEXTCOL188 ,
7129 TEXTCOL189 ,
7130 TEXTCOL190 ,
7131 TEXTCOL191 ,
7132 TEXTCOL192 ,
7133 TEXTCOL193 ,
7134 TEXTCOL194 ,
7135 TEXTCOL195 ,
7136 TEXTCOL196 ,
7137 TEXTCOL197 ,
7138 TEXTCOL198 ,
7139 TEXTCOL199 ,
7140 TEXTCOL200 ,
7141 TEXTCOL201 ,
7142 TEXTCOL202 ,
7143 TEXTCOL203 ,
7144 TEXTCOL204 ,
7145 TEXTCOL205 ,
7146 TEXTCOL206 ,
7147 TEXTCOL207 ,
7148 TEXTCOL208 ,
7149 TEXTCOL209 ,
7150 TEXTCOL210 ,
7151 TEXTCOL211 ,
7152 TEXTCOL212 ,
7153 TEXTCOL213 ,
7154 TEXTCOL214 ,
7155 TEXTCOL215 ,
7156 TEXTCOL216 ,
7157 TEXTCOL217 ,
7158 TEXTCOL218 ,
7159 TEXTCOL219 ,
7160 TEXTCOL220 ,
7161 TEXTCOL221 ,
7162 TEXTCOL222 ,
7163 TEXTCOL223 ,
7164 TEXTCOL224 ,
7165 TEXTCOL225 ,
7166 TEXTCOL226 ,
7167 TEXTCOL227 ,
7168 TEXTCOL228 ,
7169 TEXTCOL229 ,
7170 TEXTCOL230 ,
7171 TEXTCOL231 ,
7172 TEXTCOL232 ,
7173 TEXTCOL233 ,
7174 TEXTCOL234 ,
7175 TEXTCOL235 ,
7176 TEXTCOL236 ,
7177 TEXTCOL237 ,
7178 TEXTCOL238 ,
7179 TEXTCOL239 ,
7180 TEXTCOL240 ,
7181 TEXTCOL241 ,
7182 TEXTCOL242 ,
7183 TEXTCOL243 ,
7184 TEXTCOL244 ,
7185 TEXTCOL245 ,
7186 TEXTCOL246 ,
7187 TEXTCOL247 ,
7188 TEXTCOL248 ,
7189 TEXTCOL249 ,
7190 TEXTCOL250 ,
7191 DATECOL1 ,
7192 DATECOL2 ,
7193 DATECOL3 ,
7194 DATECOL4 ,
7195 DATECOL5 ,
7196 DATECOL6 ,
7197 DATECOL7 ,
7198 DATECOL8 ,
7199 DATECOL9 ,
7200 DATECOL10,
7201 DATECOL11,
7202 DATECOL12,
7203 DATECOL13,
7204 DATECOL14,
7205 DATECOL15,
7206 DATECOL16,
7207 DATECOL17,
7208 DATECOL18,
7209 DATECOL19,
7210 DATECOL20,
7211 DATECOL21,
7212 DATECOL22,
7213 DATECOL23,
7214 DATECOL24,
7215 DATECOL25,
7216 DATECOL26,
7217 DATECOL27,
7218 DATECOL28,
7219 DATECOL29,
7220 DATECOL30,
7221 DATECOL31,
7222 DATECOL32,
7223 DATECOL33,
7224 DATECOL34,
7225 DATECOL35,
7226 DATECOL36,
7227 DATECOL37,
7228 DATECOL38,
7229 DATECOL39,
7230 DATECOL40,
7231 DATECOL41,
7232 DATECOL42,
7233 DATECOL43,
7234 DATECOL44,
7235 DATECOL45,
7236 DATECOL46,
7237 DATECOL47,
7238 DATECOL48,
7239 DATECOL49,
7240 DATECOL50 ,
7241 NUMBERCOL1 ,
7242 NUMBERCOL2 ,
7243 NUMBERCOL3 ,
7244 NUMBERCOL4 ,
7245 NUMBERCOL5 ,
7246 NUMBERCOL6 ,
7247 NUMBERCOL7 ,
7248 NUMBERCOL8 ,
7249 NUMBERCOL9 ,
7250 NUMBERCOL10,
7251 NUMBERCOL11,
7252 NUMBERCOL12,
7253 NUMBERCOL13,
7254 NUMBERCOL14,
7255 NUMBERCOL15,
7256 NUMBERCOL16,
7257 NUMBERCOL17,
7258 NUMBERCOL18,
7259 NUMBERCOL19,
7260 NUMBERCOL20,
7261 NUMBERCOL21,
7262 NUMBERCOL22,
7263 NUMBERCOL23,
7264 NUMBERCOL24,
7265 NUMBERCOL25,
7266 NUMBERCOL26,
7267 NUMBERCOL27,
7268 NUMBERCOL28,
7269 NUMBERCOL29,
7270 NUMBERCOL30,
7271 NUMBERCOL31,
7272 NUMBERCOL32,
7273 NUMBERCOL33,
7274 NUMBERCOL34,
7275 NUMBERCOL35,
7276 NUMBERCOL36,
7277 NUMBERCOL37,
7278 NUMBERCOL38,
7279 NUMBERCOL39,
7280 NUMBERCOL40,
7281 NUMBERCOL41,
7282 NUMBERCOL42,
7283 NUMBERCOL43,
7284 NUMBERCOL44,
7285 NUMBERCOL45,
7286 NUMBERCOL46,
7287 NUMBERCOL47,
7288 NUMBERCOL48,
7289 NUMBERCOL49,
7290 NUMBERCOL50,
7291 CREATION_DATE ,
7292 CREATED_BY ,
7293 LAST_UPDATE_DATE ,
7294 LAST_UPDATED_BY ,
7295 LAST_UPDATE_LOGIN
7296 FROM PON_FORM_FIELD_VALUES
7297 WHERE PARENT_FIELD_VALUES_FK = p_orig_parent_fld_values_fk
7298 AND FORM_ID = p_form_id
7299 AND ENTITY_PK1 = p_old_entity_pk1
7300 AND OWNING_ENTITY_CODE='PON_AUCTION_HEADERS_ALL';
7301
7302
7303 BEGIN
7304 -- { Start of COPY_FORM_FIELD_CHILDREN
7305
7306 FOR field_value IN c_field_values_cursor LOOP
7307 -- {
7308
7309 SELECT
7310 PON_FORM_FIELD_VALUES_S.NEXTVAL
7311 INTO
7312 l_new_field_values_fk
7313 FROM DUAL;
7314
7315 INSERT INTO
7316 PON_FORM_FIELD_VALUES
7317 (
7318 FORM_FIELD_VALUE_ID,
7319 FORM_ID,
7320 OWNING_ENTITY_CODE,
7321 ENTITY_PK1,
7322 SECTION_ID,
7323 PARENT_FIELD_VALUES_FK,
7324 TEXTCOL1,
7325 TEXTCOL2,
7326 TEXTCOL3,
7327 TEXTCOL4,
7328 TEXTCOL5,
7329 TEXTCOL6,
7330 TEXTCOL7,
7331 TEXTCOL8,
7332 TEXTCOL9,
7333 TEXTCOL10,
7334 TEXTCOL11,
7335 TEXTCOL12,
7336 TEXTCOL13,
7337 TEXTCOL14,
7338 TEXTCOL15,
7339 TEXTCOL16,
7340 TEXTCOL17,
7341 TEXTCOL18,
7342 TEXTCOL19,
7343 TEXTCOL20,
7344 TEXTCOL21,
7345 TEXTCOL22,
7346 TEXTCOL23,
7347 TEXTCOL24,
7348 TEXTCOL25,
7349 TEXTCOL26,
7350 TEXTCOL27,
7351 TEXTCOL28,
7352 TEXTCOL29,
7353 TEXTCOL30,
7354 TEXTCOL31,
7355 TEXTCOL32,
7356 TEXTCOL33,
7357 TEXTCOL34,
7358 TEXTCOL35,
7359 TEXTCOL36,
7360 TEXTCOL37,
7361 TEXTCOL38,
7362 TEXTCOL39,
7363 TEXTCOL40,
7364 TEXTCOL41,
7365 TEXTCOL42,
7366 TEXTCOL43,
7367 TEXTCOL44,
7368 TEXTCOL45,
7369 TEXTCOL46,
7370 TEXTCOL47,
7371 TEXTCOL48,
7372 TEXTCOL49,
7373 TEXTCOL50,
7374 TEXTCOL51,
7375 TEXTCOL52,
7376 TEXTCOL53,
7377 TEXTCOL54,
7378 TEXTCOL55,
7379 TEXTCOL56,
7380 TEXTCOL57,
7381 TEXTCOL58,
7382 TEXTCOL59,
7383 TEXTCOL60,
7384 TEXTCOL61,
7385 TEXTCOL62,
7386 TEXTCOL63,
7387 TEXTCOL64,
7388 TEXTCOL65,
7389 TEXTCOL66,
7390 TEXTCOL67,
7391 TEXTCOL68,
7392 TEXTCOL69,
7393 TEXTCOL70,
7394 TEXTCOL71,
7395 TEXTCOL72,
7396 TEXTCOL73,
7397 TEXTCOL74,
7398 TEXTCOL75,
7399 TEXTCOL76,
7400 TEXTCOL77,
7401 TEXTCOL78,
7402 TEXTCOL79,
7403 TEXTCOL80,
7404 TEXTCOL81,
7405 TEXTCOL82,
7406 TEXTCOL83,
7407 TEXTCOL84,
7408 TEXTCOL85,
7409 TEXTCOL86,
7410 TEXTCOL87,
7411 TEXTCOL88,
7412 TEXTCOL89,
7413 TEXTCOL90,
7414 TEXTCOL91,
7415 TEXTCOL92,
7416 TEXTCOL93,
7417 TEXTCOL94,
7418 TEXTCOL95,
7419 TEXTCOL96,
7420 TEXTCOL97,
7421 TEXTCOL98,
7422 TEXTCOL99,
7423 TEXTCOL100,
7424 TEXTCOL101,
7425 TEXTCOL102,
7426 TEXTCOL103,
7427 TEXTCOL104,
7428 TEXTCOL105,
7429 TEXTCOL106,
7430 TEXTCOL107,
7431 TEXTCOL108,
7432 TEXTCOL109,
7433 TEXTCOL110,
7434 TEXTCOL111,
7435 TEXTCOL112,
7436 TEXTCOL113,
7437 TEXTCOL114,
7438 TEXTCOL115,
7439 TEXTCOL116,
7440 TEXTCOL117,
7441 TEXTCOL118,
7442 TEXTCOL119,
7443 TEXTCOL120,
7444 TEXTCOL121,
7445 TEXTCOL122,
7446 TEXTCOL123,
7447 TEXTCOL124,
7448 TEXTCOL125,
7449 TEXTCOL126,
7450 TEXTCOL127,
7451 TEXTCOL128,
7452 TEXTCOL129,
7453 TEXTCOL130,
7454 TEXTCOL131,
7455 TEXTCOL132,
7456 TEXTCOL133,
7457 TEXTCOL134,
7458 TEXTCOL135,
7459 TEXTCOL136,
7460 TEXTCOL137,
7461 TEXTCOL138,
7462 TEXTCOL139,
7463 TEXTCOL140,
7464 TEXTCOL141,
7465 TEXTCOL142,
7466 TEXTCOL143,
7467 TEXTCOL144,
7468 TEXTCOL145,
7469 TEXTCOL146,
7470 TEXTCOL147,
7471 TEXTCOL148,
7472 TEXTCOL149,
7473 TEXTCOL150,
7474 TEXTCOL151,
7475 TEXTCOL152,
7476 TEXTCOL153,
7477 TEXTCOL154,
7478 TEXTCOL155,
7479 TEXTCOL156,
7480 TEXTCOL157,
7481 TEXTCOL158,
7482 TEXTCOL159,
7483 TEXTCOL160,
7484 TEXTCOL161,
7485 TEXTCOL162,
7486 TEXTCOL163,
7487 TEXTCOL164,
7488 TEXTCOL165,
7489 TEXTCOL166,
7490 TEXTCOL167,
7491 TEXTCOL168,
7492 TEXTCOL169,
7493 TEXTCOL170,
7494 TEXTCOL171,
7495 TEXTCOL172,
7496 TEXTCOL173,
7497 TEXTCOL174,
7498 TEXTCOL175,
7499 TEXTCOL176,
7500 TEXTCOL177,
7501 TEXTCOL178,
7502 TEXTCOL179,
7503 TEXTCOL180,
7504 TEXTCOL181,
7505 TEXTCOL182,
7506 TEXTCOL183,
7507 TEXTCOL184,
7508 TEXTCOL185,
7509 TEXTCOL186,
7510 TEXTCOL187,
7511 TEXTCOL188,
7512 TEXTCOL189,
7513 TEXTCOL190,
7514 TEXTCOL191,
7515 TEXTCOL192,
7516 TEXTCOL193,
7517 TEXTCOL194,
7518 TEXTCOL195,
7519 TEXTCOL196,
7520 TEXTCOL197,
7521 TEXTCOL198,
7522 TEXTCOL199,
7523 TEXTCOL200,
7524 TEXTCOL201,
7525 TEXTCOL202,
7526 TEXTCOL203,
7527 TEXTCOL204,
7528 TEXTCOL205,
7529 TEXTCOL206,
7530 TEXTCOL207,
7531 TEXTCOL208,
7532 TEXTCOL209,
7533 TEXTCOL210,
7534 TEXTCOL211,
7535 TEXTCOL212,
7536 TEXTCOL213,
7537 TEXTCOL214,
7538 TEXTCOL215,
7539 TEXTCOL216,
7540 TEXTCOL217,
7541 TEXTCOL218,
7542 TEXTCOL219,
7543 TEXTCOL220,
7544 TEXTCOL221,
7545 TEXTCOL222,
7546 TEXTCOL223,
7547 TEXTCOL224,
7548 TEXTCOL225,
7549 TEXTCOL226,
7550 TEXTCOL227,
7551 TEXTCOL228,
7552 TEXTCOL229,
7553 TEXTCOL230,
7554 TEXTCOL231,
7555 TEXTCOL232,
7556 TEXTCOL233,
7557 TEXTCOL234,
7558 TEXTCOL235,
7559 TEXTCOL236,
7560 TEXTCOL237,
7561 TEXTCOL238,
7562 TEXTCOL239,
7563 TEXTCOL240,
7564 TEXTCOL241,
7565 TEXTCOL242,
7566 TEXTCOL243,
7567 TEXTCOL244,
7568 TEXTCOL245,
7569 TEXTCOL246,
7570 TEXTCOL247,
7571 TEXTCOL248,
7572 TEXTCOL249,
7573 TEXTCOL250,
7574 DATECOL1,
7575 DATECOL2,
7576 DATECOL3,
7577 DATECOL4,
7578 DATECOL5,
7579 DATECOL6,
7580 DATECOL7,
7581 DATECOL8,
7582 DATECOL9,
7583 DATECOL10,
7584 DATECOL11,
7585 DATECOL12,
7586 DATECOL13,
7587 DATECOL14,
7588 DATECOL15,
7589 DATECOL16,
7590 DATECOL17,
7591 DATECOL18,
7592 DATECOL19,
7593 DATECOL20,
7594 DATECOL21,
7595 DATECOL22,
7596 DATECOL23,
7597 DATECOL24,
7598 DATECOL25,
7599 DATECOL26,
7600 DATECOL27,
7601 DATECOL28,
7602 DATECOL29,
7603 DATECOL30,
7604 DATECOL31,
7605 DATECOL32,
7606 DATECOL33,
7607 DATECOL34,
7608 DATECOL35,
7609 DATECOL36,
7610 DATECOL37,
7611 DATECOL38,
7612 DATECOL39,
7613 DATECOL40,
7614 DATECOL41,
7615 DATECOL42,
7616 DATECOL43,
7617 DATECOL44,
7618 DATECOL45,
7619 DATECOL46,
7620 DATECOL47,
7621 DATECOL48,
7622 DATECOL49,
7623 DATECOL50,
7624 NUMBERCOL1,
7625 NUMBERCOL2,
7626 NUMBERCOL3,
7627 NUMBERCOL4,
7628 NUMBERCOL5,
7629 NUMBERCOL6,
7630 NUMBERCOL7,
7631 NUMBERCOL8,
7632 NUMBERCOL9,
7633 NUMBERCOL10,
7634 NUMBERCOL11,
7635 NUMBERCOL12,
7636 NUMBERCOL13,
7637 NUMBERCOL14,
7638 NUMBERCOL15,
7639 NUMBERCOL16,
7640 NUMBERCOL17,
7641 NUMBERCOL18,
7642 NUMBERCOL19,
7643 NUMBERCOL20,
7644 NUMBERCOL21,
7645 NUMBERCOL22,
7646 NUMBERCOL23,
7647 NUMBERCOL24,
7648 NUMBERCOL25,
7649 NUMBERCOL26,
7650 NUMBERCOL27,
7651 NUMBERCOL28,
7652 NUMBERCOL29,
7653 NUMBERCOL30,
7654 NUMBERCOL31,
7655 NUMBERCOL32,
7656 NUMBERCOL33,
7657 NUMBERCOL34,
7658 NUMBERCOL35,
7659 NUMBERCOL36,
7660 NUMBERCOL37,
7661 NUMBERCOL38,
7662 NUMBERCOL39,
7663 NUMBERCOL40,
7664 NUMBERCOL41,
7665 NUMBERCOL42,
7666 NUMBERCOL43,
7667 NUMBERCOL44,
7668 NUMBERCOL45,
7669 NUMBERCOL46,
7670 NUMBERCOL47,
7671 NUMBERCOL48,
7672 NUMBERCOL49,
7673 NUMBERCOL50,
7674 CREATION_DATE,
7675 CREATED_BY,
7676 LAST_UPDATE_DATE,
7677 LAST_UPDATED_BY,
7678 LAST_UPDATE_LOGIN
7679 )
7680 VALUES
7681 (
7682 l_new_field_values_fk,
7683 field_value.FORM_ID,
7684 'PON_AUCTION_HEADERS_ALL',
7685 p_new_entity_pk1,
7686 field_value.SECTION_ID,
7687 p_new_parent_field_values_fk,
7688 field_value.TEXTCOL1,
7689 field_value.TEXTCOL2,
7690 field_value.TEXTCOL3,
7691 field_value.TEXTCOL4,
7692 field_value.TEXTCOL5,
7693 field_value.TEXTCOL6,
7694 field_value.TEXTCOL7,
7695 field_value.TEXTCOL8,
7696 field_value.TEXTCOL9,
7697 field_value.TEXTCOL10,
7698 field_value.TEXTCOL11,
7699 field_value.TEXTCOL12,
7700 field_value.TEXTCOL13,
7701 field_value.TEXTCOL14,
7702 field_value.TEXTCOL15,
7703 field_value.TEXTCOL16,
7704 field_value.TEXTCOL17,
7705 field_value.TEXTCOL18,
7706 field_value.TEXTCOL19,
7707 field_value.TEXTCOL20,
7708 field_value.TEXTCOL21,
7709 field_value.TEXTCOL22,
7710 field_value.TEXTCOL23,
7711 field_value.TEXTCOL24,
7712 field_value.TEXTCOL25,
7713 field_value.TEXTCOL26,
7714 field_value.TEXTCOL27,
7715 field_value.TEXTCOL28,
7716 field_value.TEXTCOL29,
7717 field_value.TEXTCOL30,
7718 field_value.TEXTCOL31,
7719 field_value.TEXTCOL32,
7720 field_value.TEXTCOL33,
7721 field_value.TEXTCOL34,
7722 field_value.TEXTCOL35,
7723 field_value.TEXTCOL36,
7724 field_value.TEXTCOL37,
7725 field_value.TEXTCOL38,
7726 field_value.TEXTCOL39,
7727 field_value.TEXTCOL40,
7728 field_value.TEXTCOL41,
7729 field_value.TEXTCOL42,
7730 field_value.TEXTCOL43,
7731 field_value.TEXTCOL44,
7732 field_value.TEXTCOL45,
7733 field_value.TEXTCOL46,
7734 field_value.TEXTCOL47,
7735 field_value.TEXTCOL48,
7736 field_value.TEXTCOL49,
7737 field_value.TEXTCOL50,
7738 field_value.TEXTCOL51,
7739 field_value.TEXTCOL52,
7740 field_value.TEXTCOL53,
7741 field_value.TEXTCOL54,
7742 field_value.TEXTCOL55,
7743 field_value.TEXTCOL56,
7744 field_value.TEXTCOL57,
7745 field_value.TEXTCOL58,
7746 field_value.TEXTCOL59,
7747 field_value.TEXTCOL60,
7748 field_value.TEXTCOL61,
7749 field_value.TEXTCOL62,
7750 field_value.TEXTCOL63,
7751 field_value.TEXTCOL64,
7752 field_value.TEXTCOL65,
7753 field_value.TEXTCOL66,
7754 field_value.TEXTCOL67,
7755 field_value.TEXTCOL68,
7756 field_value.TEXTCOL69,
7757 field_value.TEXTCOL70,
7758 field_value.TEXTCOL71,
7759 field_value.TEXTCOL72,
7760 field_value.TEXTCOL73,
7761 field_value.TEXTCOL74,
7762 field_value.TEXTCOL75,
7763 field_value.TEXTCOL76,
7764 field_value.TEXTCOL77,
7765 field_value.TEXTCOL78,
7766 field_value.TEXTCOL79,
7767 field_value.TEXTCOL80,
7768 field_value.TEXTCOL81,
7769 field_value.TEXTCOL82,
7770 field_value.TEXTCOL83,
7771 field_value.TEXTCOL84,
7772 field_value.TEXTCOL85,
7773 field_value.TEXTCOL86,
7774 field_value.TEXTCOL87,
7775 field_value.TEXTCOL88,
7776 field_value.TEXTCOL89,
7777 field_value.TEXTCOL90,
7778 field_value.TEXTCOL91,
7779 field_value.TEXTCOL92,
7780 field_value.TEXTCOL93,
7781 field_value.TEXTCOL94,
7782 field_value.TEXTCOL95,
7783 field_value.TEXTCOL96,
7784 field_value.TEXTCOL97,
7785 field_value.TEXTCOL98,
7786 field_value.TEXTCOL99,
7787 field_value.TEXTCOL100,
7788 field_value.TEXTCOL101,
7789 field_value.TEXTCOL102,
7790 field_value.TEXTCOL103,
7791 field_value.TEXTCOL104,
7792 field_value.TEXTCOL105,
7793 field_value.TEXTCOL106,
7794 field_value.TEXTCOL107,
7795 field_value.TEXTCOL108,
7796 field_value.TEXTCOL109,
7797 field_value.TEXTCOL110,
7798 field_value.TEXTCOL111,
7799 field_value.TEXTCOL112,
7800 field_value.TEXTCOL113,
7801 field_value.TEXTCOL114,
7802 field_value.TEXTCOL115,
7803 field_value.TEXTCOL116,
7804 field_value.TEXTCOL117,
7805 field_value.TEXTCOL118,
7806 field_value.TEXTCOL119,
7807 field_value.TEXTCOL120,
7808 field_value.TEXTCOL121,
7809 field_value.TEXTCOL122,
7810 field_value.TEXTCOL123,
7811 field_value.TEXTCOL124,
7812 field_value.TEXTCOL125,
7813 field_value.TEXTCOL126,
7814 field_value.TEXTCOL127,
7815 field_value.TEXTCOL128,
7816 field_value.TEXTCOL129,
7817 field_value.TEXTCOL130,
7818 field_value.TEXTCOL131,
7819 field_value.TEXTCOL132,
7820 field_value.TEXTCOL133,
7821 field_value.TEXTCOL134,
7822 field_value.TEXTCOL135,
7823 field_value.TEXTCOL136,
7824 field_value.TEXTCOL137,
7825 field_value.TEXTCOL138,
7826 field_value.TEXTCOL139,
7827 field_value.TEXTCOL140,
7828 field_value.TEXTCOL141,
7829 field_value.TEXTCOL142,
7830 field_value.TEXTCOL143,
7831 field_value.TEXTCOL144,
7832 field_value.TEXTCOL145,
7833 field_value.TEXTCOL146,
7834 field_value.TEXTCOL147,
7835 field_value.TEXTCOL148,
7836 field_value.TEXTCOL149,
7837 field_value.TEXTCOL150,
7838 field_value.TEXTCOL151,
7839 field_value.TEXTCOL152,
7840 field_value.TEXTCOL153,
7841 field_value.TEXTCOL154,
7842 field_value.TEXTCOL155,
7843 field_value.TEXTCOL156,
7844 field_value.TEXTCOL157,
7845 field_value.TEXTCOL158,
7846 field_value.TEXTCOL159,
7847 field_value.TEXTCOL160,
7848 field_value.TEXTCOL161,
7849 field_value.TEXTCOL162,
7850 field_value.TEXTCOL163,
7851 field_value.TEXTCOL164,
7852 field_value.TEXTCOL165,
7853 field_value.TEXTCOL166,
7854 field_value.TEXTCOL167,
7855 field_value.TEXTCOL168,
7856 field_value.TEXTCOL169,
7857 field_value.TEXTCOL170,
7858 field_value.TEXTCOL171,
7859 field_value.TEXTCOL172,
7860 field_value.TEXTCOL173,
7861 field_value.TEXTCOL174,
7862 field_value.TEXTCOL175,
7863 field_value.TEXTCOL176,
7864 field_value.TEXTCOL177,
7865 field_value.TEXTCOL178,
7866 field_value.TEXTCOL179,
7867 field_value.TEXTCOL180,
7868 field_value.TEXTCOL181,
7869 field_value.TEXTCOL182,
7870 field_value.TEXTCOL183,
7871 field_value.TEXTCOL184,
7872 field_value.TEXTCOL185,
7873 field_value.TEXTCOL186,
7874 field_value.TEXTCOL187,
7875 field_value.TEXTCOL188,
7876 field_value.TEXTCOL189,
7877 field_value.TEXTCOL190,
7878 field_value.TEXTCOL191,
7879 field_value.TEXTCOL192,
7880 field_value.TEXTCOL193,
7881 field_value.TEXTCOL194,
7882 field_value.TEXTCOL195,
7883 field_value.TEXTCOL196,
7884 field_value.TEXTCOL197,
7885 field_value.TEXTCOL198,
7886 field_value.TEXTCOL199,
7887 field_value.TEXTCOL200,
7888 field_value.TEXTCOL201,
7889 field_value.TEXTCOL202,
7890 field_value.TEXTCOL203,
7891 field_value.TEXTCOL204,
7892 field_value.TEXTCOL205,
7893 field_value.TEXTCOL206,
7894 field_value.TEXTCOL207,
7895 field_value.TEXTCOL208,
7896 field_value.TEXTCOL209,
7897 field_value.TEXTCOL210,
7898 field_value.TEXTCOL211,
7899 field_value.TEXTCOL212,
7900 field_value.TEXTCOL213,
7901 field_value.TEXTCOL214,
7902 field_value.TEXTCOL215,
7903 field_value.TEXTCOL216,
7904 field_value.TEXTCOL217,
7905 field_value.TEXTCOL218,
7906 field_value.TEXTCOL219,
7907 field_value.TEXTCOL220,
7908 field_value.TEXTCOL221,
7909 field_value.TEXTCOL222,
7910 field_value.TEXTCOL223,
7911 field_value.TEXTCOL224,
7912 field_value.TEXTCOL225,
7913 field_value.TEXTCOL226,
7914 field_value.TEXTCOL227,
7915 field_value.TEXTCOL228,
7916 field_value.TEXTCOL229,
7917 field_value.TEXTCOL230,
7918 field_value.TEXTCOL231,
7919 field_value.TEXTCOL232,
7920 field_value.TEXTCOL233,
7921 field_value.TEXTCOL234,
7922 field_value.TEXTCOL235,
7923 field_value.TEXTCOL236,
7924 field_value.TEXTCOL237,
7925 field_value.TEXTCOL238,
7926 field_value.TEXTCOL239,
7927 field_value.TEXTCOL240,
7928 field_value.TEXTCOL241,
7929 field_value.TEXTCOL242,
7930 field_value.TEXTCOL243,
7931 field_value.TEXTCOL244,
7932 field_value.TEXTCOL245,
7933 field_value.TEXTCOL246,
7934 field_value.TEXTCOL247,
7935 field_value.TEXTCOL248,
7936 field_value.TEXTCOL249,
7937 field_value.TEXTCOL250,
7938 field_value.DATECOL1,
7939 field_value.DATECOL2,
7940 field_value.DATECOL3,
7941 field_value.DATECOL4,
7942 field_value.DATECOL5,
7943 field_value.DATECOL6,
7944 field_value.DATECOL7,
7945 field_value.DATECOL8,
7946 field_value.DATECOL9,
7947 field_value.DATECOL10,
7948 field_value.DATECOL11,
7949 field_value.DATECOL12,
7950 field_value.DATECOL13,
7951 field_value.DATECOL14,
7952 field_value.DATECOL15,
7953 field_value.DATECOL16,
7954 field_value.DATECOL17,
7955 field_value.DATECOL18,
7956 field_value.DATECOL19,
7957 field_value.DATECOL20,
7958 field_value.DATECOL21,
7959 field_value.DATECOL22,
7960 field_value.DATECOL23,
7961 field_value.DATECOL24,
7962 field_value.DATECOL25,
7963 field_value.DATECOL26,
7964 field_value.DATECOL27,
7965 field_value.DATECOL28,
7966 field_value.DATECOL29,
7967 field_value.DATECOL30,
7968 field_value.DATECOL31,
7969 field_value.DATECOL32,
7970 field_value.DATECOL33,
7971 field_value.DATECOL34,
7972 field_value.DATECOL35,
7973 field_value.DATECOL36,
7974 field_value.DATECOL37,
7975 field_value.DATECOL38,
7976 field_value.DATECOL39,
7977 field_value.DATECOL40,
7978 field_value.DATECOL41,
7979 field_value.DATECOL42,
7980 field_value.DATECOL43,
7981 field_value.DATECOL44,
7982 field_value.DATECOL45,
7983 field_value.DATECOL46,
7984 field_value.DATECOL47,
7985 field_value.DATECOL48,
7986 field_value.DATECOL49,
7987 field_value.DATECOL50,
7988 field_value.NUMBERCOL1,
7989 field_value.NUMBERCOL2,
7990 field_value.NUMBERCOL3,
7991 field_value.NUMBERCOL4,
7992 field_value.NUMBERCOL5,
7993 field_value.NUMBERCOL6,
7994 field_value.NUMBERCOL7,
7995 field_value.NUMBERCOL8,
7996 field_value.NUMBERCOL9,
7997 field_value.NUMBERCOL10,
7998 field_value.NUMBERCOL11,
7999 field_value.NUMBERCOL12,
8000 field_value.NUMBERCOL13,
8001 field_value.NUMBERCOL14,
8002 field_value.NUMBERCOL15,
8003 field_value.NUMBERCOL16,
8004 field_value.NUMBERCOL17,
8005 field_value.NUMBERCOL18,
8006 field_value.NUMBERCOL19,
8007 field_value.NUMBERCOL20,
8008 field_value.NUMBERCOL21,
8009 field_value.NUMBERCOL22,
8010 field_value.NUMBERCOL23,
8011 field_value.NUMBERCOL24,
8012 field_value.NUMBERCOL25,
8013 field_value.NUMBERCOL26,
8014 field_value.NUMBERCOL27,
8015 field_value.NUMBERCOL28,
8016 field_value.NUMBERCOL29,
8017 field_value.NUMBERCOL30,
8018 field_value.NUMBERCOL31,
8019 field_value.NUMBERCOL32,
8020 field_value.NUMBERCOL33,
8021 field_value.NUMBERCOL34,
8022 field_value.NUMBERCOL35,
8023 field_value.NUMBERCOL36,
8024 field_value.NUMBERCOL37,
8025 field_value.NUMBERCOL38,
8026 field_value.NUMBERCOL39,
8027 field_value.NUMBERCOL40,
8028 field_value.NUMBERCOL41,
8029 field_value.NUMBERCOL42,
8030 field_value.NUMBERCOL43,
8031 field_value.NUMBERCOL44,
8032 field_value.NUMBERCOL45,
8033 field_value.NUMBERCOL46,
8034 field_value.NUMBERCOL47,
8035 field_value.NUMBERCOL48,
8036 field_value.NUMBERCOL49,
8037 field_value.NUMBERCOL50,
8038 SYSDATE,
8039 p_user_id,
8040 SYSDATE,
8041 p_user_id,
8042 p_user_id);
8043
8044 --
8045 -- Recursive calls to copy nested children
8046 --
8047 COPY_FORM_FIELD_CHILDREN (
8048 p_orig_parent_fld_values_fk => field_value.FORM_FIELD_VALUE_ID,
8049 p_new_parent_field_values_fk => l_new_field_values_fk,
8050 p_user_id => p_user_id,
8051 p_new_entity_pk1 => p_new_entity_pk1,
8052 p_form_id => p_form_id,
8053 p_old_entity_pk1 => p_old_entity_pk1);
8054 -- }
8055 END LOOP;
8056
8057
8058 END;
8059 -- } End of COPY_FORM_FIELD_CHILDREN
8060
8061 --This procedure copies all the attributes of an auction except the
8062 --header, which should have been already created by calling COPY_HEADER
8063 --procedure before calling this procedure.That is to say, a call to
8064 --this procedure must succeed the one to COPY_HEADER
8065 PROCEDURE COPY_LINES_AND_CHILDREN(
8066 p_api_version IN NUMBER,
8067 p_init_msg_list IN VARCHAR2,
8068 p_source_auction_header_id IN NUMBER,
8069 p_destination_auction_hdr_id IN NUMBER,
8070 p_trading_partner_id IN NUMBER ,
8071 p_trading_partner_contact_id IN NUMBER ,
8072 p_language IN VARCHAR2,
8073 p_user_id IN NUMBER,
8074 p_doctype_id IN NUMBER,
8075 p_copy_type IN VARCHAR2,
8076 p_is_award_approval_reqd IN VARCHAR2,
8077 p_user_name IN VARCHAR2,
8078 p_mgr_id IN NUMBER,
8079 p_retain_clause IN VARCHAR2,
8080 p_update_clause IN VARCHAR2,
8081 p_retain_attachments IN VARCHAR2,
8082 p_tpc_name IN VARCHAR2,
8083 p_tp_name IN VARCHAR2,
8084 p_source_doctype_id IN NUMBER,
8085 p_org_id IN NUMBER,
8086 p_round_number IN NUMBER,
8087 p_last_amendment_number IN NUMBER,
8088 p_source_doc_num IN VARCHAR2,
8089 p_style_id IN NUMBER,
8090 x_return_status OUT NOCOPY VARCHAR2,
8091 x_msg_count OUT NOCOPY NUMBER,
8092 x_msg_data OUT NOCOPY VARCHAR2
8093 )
8094 IS
8095 CALL_COPY_PF_SUPPLIER_VALUES VARCHAR2(25):='FALSE' ;
8096 CALL_PON_LRG_DRAFT_TO_ORD_PF VARCHAR2(25):='FALSE';
8097 CALL_PON_LRG_DRAFT_TO_LRG_PF VARCHAR2(25):='FALSE';
8098 CALL_PON_ORD_DRAFT_TO_LRG_PF VARCHAR2(25) := 'FALSE';
8099 CURRENT_STATUS VARCHAR2(25);
8100 IS_LARGE_SOURCE VARCHAR2(1);
8101 IS_LARGE_DESTINATION VARCHAR2(1);
8102 l_auction_header_id NUMBER := p_destination_auction_hdr_id;
8103 l_tp_id NUMBER := p_trading_partner_id;
8104 l_tp_contact_id NUMBER := p_trading_partner_contact_id;
8105 l_tp_name HZ_PARTIES.PARTY_NAME%TYPE := NULL;
8106 l_tpc_name HZ_PARTIES.PARTY_NAME%TYPE := NULL;
8107 l_user_id NUMBER := p_user_id;
8108 l_source_doctype_id NUMBER := p_source_doctype_id;
8109 l_round_number NUMBER := p_round_number;
8110 L_SOURCE_DOC_NUM VARCHAR2(25) := p_source_doc_num;
8111 L_ORG_ID NUMBER := p_org_id;
8112 L_LAST_AMENDMENT_NUMBER NUMBER := p_last_amendment_number;
8113 L_IS_AMENDMENT VARCHAR2(20);
8114 L_RETAIN_ATTACHMENTS VARCHAR2(1);
8115 l_error_code_update VARCHAR2(2000);
8116 l_error_msg_update VARCHAR2(2000);
8117 l_max_line_number NUMBER := NULL;
8118 l_batch_end NUMBER := NULL;
8119 l_batch_start NUMBER := NULL;
8120
8121 l_name PON_NEG_COPY_DATATYPES_GRP.VARCHAR100_TYPE;
8122 l_inactive_pe_name VARCHAR2(4000);
8123 l_return_status VARCHAR2(1);
8124 l_batch_size NUMBER;
8125 l_last_line_number NUMBER;
8126 l_number_of_lines NUMBER;
8127
8128 l_s_pe_enabled_flag VARCHAR2(1);
8129 l_s_bid_ranking VARCHAR2(240);
8130 l_s_line_attr_enabled_flag VARCHAR2(1);
8131 l_s_rfi_line_enabled_flag VARCHAR2(1);
8132 l_s_doctype_name VARCHAR2(240);
8133 l_s_pf_type_allowed VARCHAR2(25);
8134 l_s_contract_type PON_AUCTION_HEADERS_ALL.CONTRACT_TYPE%TYPE;
8135 l_s_global_agmt_flag VARCHAR2(1);
8136 l_s_lot_enabled_flag VARCHAR2(1);
8137 l_s_grp_enabled_flag VARCHAR2(1);
8138 l_s_has_hdr_attr_flag VARCHAR2(1);
8139 l_s_hdr_attr_enabled_flag VARCHAR2(1);
8140 l_s_attributes_exist VARCHAR2(240);
8141
8142 l_d_mas_enabled_flag VARCHAR2(1);
8143 l_d_line_attr_enabled_flag VARCHAR2(1);
8144 l_d_rfi_line_enabled_flag VARCHAR2(1);
8145 l_d_doctype_name VARCHAR2(240);
8146 l_d_pe_enabled_flag VARCHAR2(1); --styles flag for PE
8147 l_d_po_style_id pon_auction_headers_all.po_style_id%type;
8148 l_d_pb_enabled_flag VARCHAR2(1); --styles flag for PB
8149 l_d_pd_enabled_flag VARCHAR2(1); --styles flag for PD
8150 l_contract_type PON_AUCTION_HEADERS_ALL.CONTRACT_TYPE%TYPE;
8151 l_d_lot_enabled_flag VARCHAR2(1);
8152 l_d_grp_enabled_flag VARCHAR2(1);
8153 l_d_hdr_attr_enabled_flag VARCHAR2(1);
8154
8155 l_dummy1 VARCHAR2(240);
8156 l_dummy2 VARCHAR2(240);
8157 l_dummy3 VARCHAR2(30);
8158 l_dummy4 VARCHAR2(30);
8159 l_dummy5 VARCHAR2(1);
8160 l_dummy6 VARCHAR2(1);
8161 l_dummy7 VARCHAR2(1);
8162 l_dummy8 VARCHAR2(1);
8163 l_dummy9 VARCHAR2(30);
8164
8165 l_hdr_attributes_allowed boolean;
8166 l_line_attributes_allowed boolean;
8167 l_hdr_attr_scores_allowed boolean;
8168 l_line_attr_scores_allowed boolean;
8169 l_price_elements_allowed boolean;
8170 l_price_breaks_allowed boolean;
8171 l_price_differentials_allowed boolean;
8172
8173 --staggered closing changes
8174 l_staggered_closing_interval NUMBER;
8175
8176 BEGIN
8177 --{ Start of COPY_LINES_AND_CHILDREN
8178
8179 LOG_MESSAGE('copy_lines_and_children','in COPY_LINES_AND_CHILDREN for '|| p_source_auction_header_id ||' to '||p_destination_auction_hdr_id);
8180 l_tp_name := p_tp_name;
8181 l_tpc_name := p_tpc_name;
8182 L_RETAIN_ATTACHMENTS := p_retain_attachments;
8183
8184 --QUERY THE STYLES TABLE TO KNOW IF THE DESTINATION AUCTION IS A LARGE ONE OR
8185 --NOT
8186
8187
8188 select nvl(headers.LARGE_NEG_ENABLED_FLAG,'N'),
8189 headers.AUCTION_STATUS,
8190 nvl(styles.LARGE_NEG_ENABLED_FLAG,'N'),
8191 staggered_closing_interval into IS_LARGE_SOURCE,CURRENT_STATUS,IS_LARGE_DESTINATION,l_staggered_closing_interval
8192 from
8193 PON_AUCTION_HEADERS_ALL headers,
8194 PON_NEGOTIATION_STYLES styles
8195 where
8196 headers.AUCTION_HEADER_ID = p_source_auction_header_id and
8197 styles.STYLE_ID = p_style_id;
8198
8199 LOG_MESSAGE('copy_lines_and_children','IS_LARGE_DESTINATION = '||IS_LARGE_DESTINATION);
8200
8201 ----------------------------------------------------------------------------------
8202 --HANDLE THE IMPACT OF STYLES HERE
8203 ----------------------------------------------------------------------------------
8204
8205 LOG_MESSAGE('copy_lines_and_children','Handling the impact of styles on cross copy; selecting the flags for destination auction');
8206
8207 --
8208 --Collect the style related information for
8209 --the destination auction
8210 --
8211
8212 SELECT
8213 NVL(hdr.LINE_MAS_ENABLED_FLAG, 'Y'),
8214 NVL (hdr.LINE_ATTRIBUTE_ENABLED_FLAG, 'Y'),
8215 NVL (hdr.RFI_LINE_ENABLED_FLAG, 'Y'),
8216 NVL(hdr.PRICE_ELEMENT_ENABLED_FLAG, 'Y'),
8217 NVL(hdr.po_style_id, -9999),
8218 doctypes.DOCTYPE_GROUP_NAME,
8219 NVL(hdr.HDR_ATTRIBUTE_ENABLED_FLAG,'Y')
8220 INTO
8221 l_d_mas_enabled_flag,
8222 l_d_line_attr_enabled_flag,
8223 l_d_rfi_line_enabled_flag,
8224 l_d_pe_enabled_flag,
8225 l_d_po_style_id,
8226 l_d_doctype_name,
8227 l_d_hdr_attr_enabled_flag
8228 FROM
8229 PON_AUCTION_HEADERS_ALL hdr,
8230 PON_AUC_DOCTYPES doctypes
8231 WHERE
8232 hdr.auction_header_id = l_auction_header_id AND
8233 doctypes.DOCTYPE_ID = p_doctype_id;
8234
8235 LOG_MESSAGE('copy_lines_and_children','Calling PO_DOC_STYLE_GRP.GET_DOCUMENT_STYLE_SETTINGS for destination auction here');
8236
8237 IF (l_d_po_style_id > 0) THEN
8238
8239 LOG_MESSAGE('copy_lines_and_children','l_d_po_style_id is not null; l_d_po_style_id : ' || l_d_po_style_id);
8240
8241
8242 PO_DOC_STYLE_GRP.GET_DOCUMENT_STYLE_SETTINGS(
8243 P_API_VERSION => 1.0,
8244 P_STYLE_ID => l_d_po_style_id,
8245 X_STYLE_NAME => l_dummy1,
8246 X_STYLE_DESCRIPTION => l_dummy2,
8247 X_STYLE_TYPE => l_dummy3,
8248 X_STATUS => l_dummy4,
8249 X_ADVANCES_FLAG => l_dummy5,
8250 X_RETAINAGE_FLAG => l_dummy6,
8251 X_PRICE_BREAKS_FLAG => l_d_pb_enabled_flag,
8252 X_PRICE_DIFFERENTIALS_FLAG => l_d_pd_enabled_flag,
8253 X_PROGRESS_PAYMENT_FLAG => l_dummy7,
8254 X_CONTRACT_FINANCING_FLAG => l_dummy8,
8255 X_LINE_TYPE_ALLOWED => l_dummy9);
8256 --this is for testing
8257 -- l_d_pb_enabled_flag := 'Y';
8258 -- l_d_pd_enabled_flag := 'Y';
8259
8260 ELSE
8261 LOG_MESSAGE('copy_lines_and_children','l_d_po_style_id is NULL');
8262 l_d_pb_enabled_flag := 'Y';
8263 l_d_pd_enabled_flag := 'Y';
8264 END IF;
8265
8266 LOG_MESSAGE('copy_lines_and_children','Flag Status for destination auction is -- l_d_mas_enabled_flag : ' || l_d_mas_enabled_flag ||
8267 '; l_d_line_attr_enabled_flag : ' || l_d_line_attr_enabled_flag ||
8268 '; l_d_rfi_line_enabled_flag : ' || l_d_rfi_line_enabled_flag ||
8269 '; l_d_pe_enabled_flag : ' || l_d_pe_enabled_flag ||
8270 '; l_d_po_style_id : ' || l_d_po_style_id ||
8271 '; l_d_doctype_name : ' || l_d_doctype_name ||
8272 '; l_d_pb_enabled_flag : ' || l_d_pb_enabled_flag ||
8273 '; l_d_pd_enabled_flag : ' || l_d_pd_enabled_flag ||
8274 '; l_d_hdr_attr_enabled_flag : ' || l_d_hdr_attr_enabled_flag ||
8275 '; Now Collecting flags for the source auction');
8276
8277 --
8278 --Collect the style related information for
8279 --the source auction
8280 --
8281
8282 SELECT
8283 hdr.BID_RANKING,
8284 NVL(hdr.LINE_ATTRIBUTE_ENABLED_FLAG, 'Y'),
8285 NVL(hdr.RFI_LINE_ENABLED_FLAG, 'Y'),
8286 NVL(hdr.PF_TYPE_ALLOWED, 'BOTH'),
8287 hdr.CONTRACT_TYPE,
8288 NVL(hdr.GLOBAL_AGREEMENT_FLAG, 'N'),
8289 hdr.ATTRIBUTES_EXIST,
8290 doctypes.DOCTYPE_GROUP_NAME,
8291 NVL(hdr.HAS_HDR_ATTR_FLAG,'N'),
8292 NVL(hdr.HDR_ATTRIBUTE_ENABLED_FLAG,'Y'),
8293 NVL(hdr.PRICE_ELEMENT_ENABLED_FLAG,'Y')
8294 INTO
8295 l_s_bid_ranking,
8296 l_s_line_attr_enabled_flag,
8297 l_s_rfi_line_enabled_flag,
8298 l_s_pf_type_allowed,
8299 l_s_contract_type,
8300 l_s_global_agmt_flag,
8301 l_s_attributes_exist,
8302 l_s_doctype_name,
8303 l_s_has_hdr_attr_flag,
8304 l_s_hdr_attr_enabled_flag,
8305 l_s_pe_enabled_flag
8306 FROM
8307 PON_AUCTION_HEADERS_ALL hdr,
8308 PON_AUC_DOCTYPES doctypes
8309 WHERE
8310 auction_header_id = p_source_auction_header_id AND
8311 doctypes.DOCTYPE_ID = hdr.DOCTYPE_ID;
8312
8313
8314 LOG_MESSAGE('copy_lines_and_children','Flag Status for source auction is -- l_s_bid_ranking : ' || l_s_bid_ranking ||
8315 '; l_s_line_attr_enabled_flag : ' || l_s_line_attr_enabled_flag ||
8316 '; l_s_rfi_line_enabled_flag : ' || l_s_rfi_line_enabled_flag ||
8317 '; l_s_pf_type_allowed : ' || l_s_pf_type_allowed ||
8318 '; l_s_contract_type : ' || l_s_contract_type ||
8319 '; l_s_global_agmt_flag : ' || l_s_global_agmt_flag ||
8320 '; l_s_attributes_exist : ' || l_s_attributes_exist ||
8321 '; l_s_doctype_name : ' || l_s_doctype_name ||
8322 '; l_s_has_hdr_attr_flag : ' || l_s_has_hdr_attr_flag ||
8323 '; l_s_hdr_attr_enabled_flag : ' || l_s_hdr_attr_enabled_flag ||
8324 '; Now Collecting flags for the source auction');
8325 --initialise the boolean to true till the open issues are closed
8326
8327 --
8328 --setting l_hdr_attributes_allowed
8329 --
8330 IF ( CURRENT_STATUS = 'DRAFT' AND l_s_hdr_attr_enabled_flag = 'Y' AND l_d_hdr_attr_enabled_flag = 'Y' ) THEN
8331
8332 LOG_MESSAGE('copy_lines_and_children','Source is a DRAFT; Setting l_hdr_attributes_allowed to TRUE and l_hdr_attr_scores_allowed to TRUE');
8333 l_hdr_attributes_allowed := true;
8334 l_hdr_attr_scores_allowed := true;
8335 ELSIF ( CURRENT_STATUS <> 'DRAFT' AND l_s_has_hdr_attr_flag = 'Y' AND l_d_hdr_attr_enabled_flag = 'Y' ) THEN
8336
8337 LOG_MESSAGE('copy_lines_and_children','Source is a DRAFT; Setting l_hdr_attributes_allowed to TRUE and l_hdr_attr_scores_allowed to TRUE');
8338 l_hdr_attributes_allowed := true;
8339 l_hdr_attr_scores_allowed := true;
8340 ELSE
8341
8342 LOG_MESSAGE('copy_lines_and_children','Source is a DRAFT; Setting l_hdr_attributes_allowed to FALSE and l_hdr_attr_scores_allowed to FALSE');
8343 l_hdr_attributes_allowed := false;
8344 l_hdr_attr_scores_allowed := false;
8345 END IF;
8346
8347
8348 --
8349 --setting l_line_attr_scores_allowed
8350 --
8351 IF (l_s_bid_ranking = 'MULTI_ATTRIBUTE_SCORING' AND l_d_mas_enabled_flag = 'Y') THEN
8352 LOG_MESSAGE('copy_lines_and_children','Setting l_line_attr_scores_allowed to TRUE');
8353 l_line_attr_scores_allowed := true;
8354 ELSE
8355 LOG_MESSAGE('copy_lines_and_children','Setting l_line_attr_scores_allowed to FALSE');
8356 l_line_attr_scores_allowed := false;
8357 END IF;
8358
8359 --
8360 --setting l_line_attributes_allowed
8361 --
8362 IF ( CURRENT_STATUS = 'DRAFT' AND l_s_line_attr_enabled_flag = 'Y' AND l_d_line_attr_enabled_flag = 'Y' ) THEN
8363 LOG_MESSAGE('copy_lines_and_children','Source is a DRAFT; Setting l_line_attributes_allowed to TRUE');
8364 l_line_attributes_allowed := true;
8365 ELSIF ( CURRENT_STATUS <> 'DRAFT' AND l_s_attributes_exist <> 'NONE' AND l_d_line_attr_enabled_flag = 'Y' ) THEN
8366 LOG_MESSAGE('copy_lines_and_children','Source is not a DRAFT; Setting l_line_attributes_allowed to TRUE');
8367 l_line_attributes_allowed := true;
8368 ELSE
8369 LOG_MESSAGE('copy_lines_and_children','Setting l_line_attributes_allowed to FALSE');
8370 l_line_attributes_allowed := false;
8371 END IF;
8372
8373 --
8374 --setting l_price_elements_allowed
8375 --
8376 IF ( l_s_pe_enabled_flag = 'Y' AND
8377 l_s_pf_type_allowed <> 'NONE' AND
8378 l_d_pe_enabled_flag = 'Y'
8379 ) THEN
8380 LOG_MESSAGE('copy_lines_and_children','Setting l_price_elements_allowed to TRUE');
8381 l_price_elements_allowed := true;
8382 ELSE
8383 LOG_MESSAGE('copy_lines_and_children','Setting l_price_elements_allowed to FALSE');
8384 l_price_elements_allowed := false;
8385 END IF;
8386
8387 --
8388 --setting l_price_breaks_allowed
8389 -- PRICE BREAKS are always allowed
8390 --
8391 LOG_MESSAGE('copy_lines_and_children','Setting l_price_breaks_allowed to TRUE');
8392 l_price_breaks_allowed := true;
8393
8394 --
8395 --setting l_price_differentials_allowed
8396 --
8397 IF ( (l_s_doctype_name = g_rfi OR l_s_global_agmt_flag = 'Y') AND
8398 l_d_pd_enabled_flag = 'Y'
8399 ) THEN
8400 LOG_MESSAGE('copy_lines_and_children','Setting l_price_differentials_allowed to TRUE');
8401 l_price_differentials_allowed := true;
8402 ELSE
8403 LOG_MESSAGE('copy_lines_and_children','Setting l_price_differentials_allowed to FALSE');
8404 l_price_differentials_allowed := false;
8405 END IF;
8406
8407
8408 ----------------------------------------------------------------------------------
8409 --HANDLE THE IMPACT OF STYLES TILL HERE
8410 ----------------------------------------------------------------------------------
8411
8412 if l_price_elements_allowed then
8413
8414 if CURRENT_STATUS = 'DRAFT' then
8415
8416 if IS_LARGE_SOURCE = 'Y' then
8417
8418 if IS_LARGE_DESTINATION = 'Y' then
8419
8420 LOG_MESSAGE('copy_lines_and_children','Setting CALL_PON_LRG_DRAFT_TO_LRG_PF to TRUE');
8421 CALL_PON_LRG_DRAFT_TO_LRG_PF := 'TRUE';
8422 else
8423
8424 --Destination Auction is a normal auction
8425 CALL_PON_LRG_DRAFT_TO_ORD_PF := 'TRUE';
8426
8427 end if;
8428
8429 else
8430 --the source auction is a normal auction in draft stage
8431
8432 if IS_LARGE_DESTINATION = 'Y' then
8433 --Destination Auction is a LARGE auction
8434 --call CALL_PON_ORD_DRAFT_TO_LRG_PF
8435
8436 CALL_PON_ORD_DRAFT_TO_LRG_PF := 'TRUE';
8437
8438
8439 else
8440 --Destination Auction is a normal auction
8441 --PROCEED WITH THE CURRENT FLOW
8442
8443 CALL_COPY_PF_SUPPLIER_VALUES := 'TRUE';
8444
8445
8446 end if;
8447
8448 end if;
8449 else
8450 --The autcion is NOT in DRAFT stage
8451
8452 if IS_LARGE_SOURCE = 'Y' then
8453
8454 if IS_LARGE_DESTINATION = 'Y' then
8455
8456 LOG_MESSAGE('copy_lines_and_children','This is an ordinary auction; Selecting the flags from styles table');
8457 CALL_PON_LRG_DRAFT_TO_LRG_PF := 'TRUE';
8458
8459 else
8460 --Destination Auction is a normal auction
8461
8462 CALL_COPY_PF_SUPPLIER_VALUES := 'TRUE';
8463
8464 end if;
8465
8466 else
8467 --the source auction is a normal auction NOT in draft stage
8468
8469 if IS_LARGE_DESTINATION = 'Y' then
8470 --Destination Auction is a LARGE auction
8471 --call CALL_PON_ORD_DRAFT_TO_LRG_PF
8472
8473 CALL_PON_ORD_DRAFT_TO_LRG_PF := 'TRUE';
8474
8475 else
8476 --Destination Auction is a normal auction
8477 --PROCEED WITH THE CURRENT FLOW
8478
8479 CALL_COPY_PF_SUPPLIER_VALUES := 'TRUE';
8480
8481 end if;
8482
8483 end if;
8484 end if;
8485
8486 else
8487 LOG_MESSAGE('copy_lines_and_children','PF values are not allowed to be copied, so setting each of CALL_COPY_PF_SUPPLIER_VALUES, CALL_SYNC_PFVAL_BIDDING_PRTY and CALL_PON_LRG_DRAFT_TO_LRG_PF to FALSE');
8488
8489 CALL_COPY_PF_SUPPLIER_VALUES := 'FALSE';
8490 CALL_PON_ORD_DRAFT_TO_LRG_PF := 'FALSE';
8491 CALL_PON_LRG_DRAFT_TO_LRG_PF := 'FALSE';
8492 CALL_PON_LRG_DRAFT_TO_ORD_PF := 'FALSE';
8493
8494 end if;
8495
8496 -- if style disables PE, PE not copied.
8497 IF (g_neg_style_control.price_element_enabled_flag = 'N') THEN
8498 CALL_COPY_PF_SUPPLIER_VALUES :='FALSE' ;
8499 END IF;
8500
8501 LOG_MESSAGE('copy_lines_and_children','CALL_COPY_PF_SUPPLIER_VALUES : '||CALL_COPY_PF_SUPPLIER_VALUES ||
8502 '; CALL_PON_ORD_DRAFT_TO_LRG_PF : ' || CALL_PON_ORD_DRAFT_TO_LRG_PF ||
8503 '; CALL_PON_LRG_DRAFT_TO_LRG_PF : ' || CALL_PON_LRG_DRAFT_TO_LRG_PF ||
8504 '; CALL_PON_LRG_DRAFT_TO_ORD_PF : ' || CALL_PON_LRG_DRAFT_TO_ORD_PF);
8505
8506 --BELOW CODE ALREADY EXISTS
8507 --COPIED FROM COPY_NEGOTIATION
8508 --IT STARTS HERE
8509
8510 LOG_MESSAGE('copy_lines_and_children','Copy Lines is starting');
8511
8512 LOG_MESSAGE('copy_negotiation','Copy Currency is starting');
8513
8514 --
8515 -- And Not to forget the Currency List
8516 --
8517 COPY_CURRENCIES ( p_source_auction_header_id => p_source_auction_header_id,
8518 p_auction_header_id => l_auction_header_id,
8519 p_tp_id => l_tp_id,
8520 p_tp_contact_id => l_tp_contact_id,
8521 p_tp_name => l_tp_name,
8522 p_tpc_name => l_tpc_name,
8523 p_user_id => l_user_id,
8524 p_doctype_id => p_doctype_id,
8525 p_copy_type => p_copy_type
8526 );
8527
8528 g_err_loc := '9. After Copying Currency List';
8529
8530
8531
8532 LOG_MESSAGE('copy_lines_and_children','Copy Invitation List is starting');
8533
8534 --
8535 -- And the Invitation List
8536 --
8537 COPY_INVITEES ( p_source_auction_header_id => p_source_auction_header_id,
8538 p_auction_header_id => l_auction_header_id,
8539 p_tp_id => l_tp_id,
8540 p_tp_contact_id => l_tp_contact_id,
8541 p_tp_name => l_tp_name,
8542 p_tpc_name => l_tpc_name,
8543 p_user_id => l_user_id,
8544 p_doctype_id => p_doctype_id,
8545 p_copy_type => p_copy_type,
8546 p_org_id => l_org_id,
8547 p_round_number => l_round_number
8548 );
8549
8550 g_err_loc := '10. After Copying Invitation List';
8551
8552
8553 --
8554 -- Where are the list of members who created the negotiation?
8555 --
8556
8557 IF (g_neg_style_control.neg_team_enabled_flag = 'Y') THEN
8558 LOG_MESSAGE('copy_lines_and_children','Copy Neg Team Members is starting');
8559
8560 COPY_NEG_TEAM (p_source_auction_header_id => p_source_auction_header_id,
8561 p_auction_header_id => l_auction_header_id,
8562 p_tp_id => l_tp_id,
8563 p_tp_contact_id => l_tp_contact_id,
8564 p_tp_name => l_tp_name,
8565 p_tpc_name => l_tpc_name,
8566 p_user_id => l_user_id,
8567 p_doctype_id => p_doctype_id,
8568 p_copy_type => p_copy_type,
8569 p_user_name => p_user_name,
8570 p_mgr_id => p_mgr_id);
8571 else
8572 LOG_MESSAGE('copy_lines_and_children','Neg teams are not allowed');
8573
8574 END IF;
8575
8576 g_err_loc := '11. After Copying Neg team Members';
8577
8578
8579 LOG_MESSAGE('copy_lines_and_children','Copy Form and section data is starting');
8580 --
8581 -- Copy the Event Abstract related data
8582 --
8583 COPY_FORM_DATA (
8584 p_source_auction_header_id => p_source_auction_header_id,
8585 p_auction_header_id => l_auction_header_id,
8586 p_user_id => l_user_id,
8587 p_doctype_id => p_doctype_id,
8588 p_source_doctype_id => l_source_doctype_id,
8589 p_copy_type => p_copy_type);
8590
8591 g_err_loc := '14. After Copying FORM FIELDS data';
8592
8593 --
8594 --Copy the header attributes here
8595 --
8596
8597 IF (l_hdr_attributes_allowed) THEN
8598
8599 LOG_MESSAGE('copy_lines_and_children','Copy Header Attributes is starting');
8600
8601 --
8602 -- Copy item attributes and Header Attributes
8603 --
8604 COPY_HEADER_ATTRIBUTE ( p_source_auction_header_id => p_source_auction_header_id,
8605 p_auction_header_id => l_auction_header_id,
8606 p_tp_id => l_tp_id,
8607 p_tp_contact_id => l_tp_contact_id,
8608 p_tp_name => l_tp_name,
8609 p_tpc_name => l_tpc_name,
8610 p_user_id => l_user_id,
8611 p_source_doctype_id => l_source_doctype_id,
8612 p_doctype_id => p_doctype_id,
8613 p_copy_type => p_copy_type);
8614
8615
8616 ELSE
8617
8618 LOG_MESSAGE('copy_lines_and_children','Header attributes are not allowed');
8619
8620 END IF;
8621
8622 g_err_loc := '3. After Copying the Header Attributes';
8623
8624
8625 --
8626 --Copy the header attributes scores here
8627 --
8628
8629 IF (l_hdr_attr_scores_allowed) THEN
8630
8631 LOG_MESSAGE('copy_lines_and_children','Copy Header Attribute Score is starting');
8632
8633 --
8634 -- And the item attribute scores
8635 --
8636 COPY_HEADER_ATTRIBUTE_SCORE ( p_source_auction_header_id => p_source_auction_header_id,
8637 p_auction_header_id => l_auction_header_id,
8638 p_tp_id => l_tp_id,
8639 p_tp_contact_id => l_tp_contact_id,
8640 p_tp_name => l_tp_name,
8641 p_tpc_name => l_tpc_name,
8642 p_user_id => l_user_id,
8643 p_source_doctype_id => l_source_doctype_id,
8644 p_doctype_id => p_doctype_id,
8645 p_copy_type => p_copy_type
8646 );
8647 else
8648
8649 LOG_MESSAGE('copy_lines_and_children','Header Attribute Scores are not allowed');
8650
8651 END IF;
8652
8653 g_err_loc := '4. After Copying Header Attribute Scores';
8654
8655
8656 --------------------------------------------------------------------------------------------------------------
8657 --BATCHING STARTS HERE
8658 --------------------------------------------------------------------------------------------------------------
8659
8660 if(CURRENT_STATUS = 'DRAFT') then
8661
8662 LOG_MESSAGE('copy_negotiation','The source auction is a in DRAFT stage; querying PON_AUCTION_ITEM_PRICES_ALL for l_max_line_number');
8663
8664 select nvl(max(line_number),0) into l_max_line_number from PON_AUCTION_ITEM_PRICES_ALL
8665 where auction_header_id = p_source_auction_header_id;
8666 else
8667
8668 LOG_MESSAGE('copy_negotiation','The source auction is not in DRAFT stage; so querying MAX_INTERNAL_LINE_NUM field in PON_AUCTION_HEADERS_ALL for l_max_line_number');
8669
8670 select nvl(max_internal_line_num,0) into l_max_line_number from PON_AUCTION_HEADERS_ALL
8671 where auction_header_id = p_source_auction_header_id;
8672 end if;
8673
8674
8675 IF (l_max_line_number) > 0 then
8676 -- Draft with no lines, or RFI,CPA with no lines we need to skip batching
8677 -- its build into the loop logic but just to be explicit about this condition
8678
8679 -- Get the batch size
8680 l_batch_size := PON_LARGE_AUCTION_UTIL_PKG.BATCH_SIZE;
8681
8682 --for testing purpose
8683 --l_batch_size := 2;
8684
8685 -- Define the initial batch range (line numbers are indexed from 1)
8686 l_batch_start := 1;
8687
8688 IF (l_max_line_number <l_batch_size) THEN
8689 l_batch_end := l_max_line_number;
8690 ELSE
8691 l_batch_end := l_batch_size;
8692 END IF;
8693
8694
8695 LOG_MESSAGE('copy_lines_and_children','Batching starting; Max(line_number) for the auction = '|| l_max_line_number);
8696
8697 WHILE (l_batch_start <= l_max_line_number) LOOP
8698
8699 --
8700 -- Copy items
8701 --
8702
8703 IF (g_neg_style_control.rfi_line_enabled_flag = 'Y' or p_doctype_id <> g_rfi_doctype_id) THEN
8704
8705 LOG_MESSAGE('copy_lines_and_children','Copy Lines is starting');
8706
8707 COPY_LINES (p_source_auction_header_id => p_source_auction_header_id,
8708 p_auction_header_id => l_auction_header_id,
8709 p_tp_id => l_tp_id,
8710 p_tp_contact_id => l_tp_contact_id,
8711 p_tp_name => l_tp_name,
8712 p_tpc_name => l_tpc_name,
8713 p_user_id => l_user_id,
8714 p_source_doctype_id => l_source_doctype_id,
8715 p_doctype_id => p_doctype_id,
8716 p_copy_type => p_copy_type,
8717 p_round_number => l_round_number,
8718 p_last_amendment_number => l_last_amendment_number,
8719 p_retain_attachments => l_retain_attachments,
8720 p_staggered_closing_interval => l_staggered_closing_interval,
8721 p_from_line_number => l_batch_start,
8722 p_to_line_number => l_batch_end
8723 );
8724 else
8725 LOG_MESSAGE('copy_lines_and_children','Lines are not allowed');
8726 END IF;
8727
8728
8729 LOG_MESSAGE('copy_lines_and_children','lines copied fsuccessfully');
8730 g_err_loc := '5. After Copying Items';
8731
8732
8733 LOG_MESSAGE('copy_lines_and_children','Copy Section is starting');
8734
8735 --check here if the attributes are allowed for the destination auction
8736 --if they are not, skip the call to COPY_ATTRIBUTE
8737
8738 IF (l_line_attributes_allowed) THEN
8739
8740 LOG_MESSAGE('copy_lines_and_children','Copy Line Atrributes is starting');
8741
8742 --
8743 -- Copy item attributes and Header Attributes
8744 --
8745 COPY_LINE_ATTRIBUTE ( p_source_auction_header_id => p_source_auction_header_id,
8746 p_auction_header_id => l_auction_header_id,
8747 p_tp_id => l_tp_id,
8748 p_tp_contact_id => l_tp_contact_id,
8749 p_tp_name => l_tp_name,
8750 p_tpc_name => l_tpc_name,
8751 p_user_id => l_user_id,
8752 p_source_doctype_id => l_source_doctype_id,
8753 p_doctype_id => p_doctype_id,
8754 p_copy_type => p_copy_type,
8755 p_from_line_number => l_batch_start,
8756 p_to_line_number => l_batch_end
8757 );
8758 else
8759
8760 LOG_MESSAGE('copy_lines_and_children','Line Attributes are not allowed');
8761
8762 END IF;
8763
8764 g_err_loc := '3. After Copying Attributes';
8765
8766 IF (l_line_attr_scores_allowed) THEN
8767
8768 LOG_MESSAGE('copy_lines_and_children','Copy Line Attribute Score is starting');
8769
8770 --
8771 -- And the item attribute scores
8772 --
8773 COPY_LINE_ATTRIBUTE_SCORE ( p_source_auction_header_id => p_source_auction_header_id,
8774 p_auction_header_id => l_auction_header_id,
8775 p_tp_id => l_tp_id,
8776 p_tp_contact_id => l_tp_contact_id,
8777 p_tp_name => l_tp_name,
8778 p_tpc_name => l_tpc_name,
8779 p_user_id => l_user_id,
8780 p_source_doctype_id => l_source_doctype_id,
8781 p_doctype_id => p_doctype_id,
8782 p_copy_type => p_copy_type,
8783 p_from_line_number => l_batch_start,
8784 p_to_line_number => l_batch_end
8785 );
8786 else
8787
8788 LOG_MESSAGE('copy_lines_and_children','Line Attribute Scores are not allowed');
8789
8790 END IF;
8791
8792 g_err_loc := '4. After Copying Line Attribute Scores';
8793
8794 if l_price_differentials_allowed then
8795
8796 LOG_MESSAGE('copy_lines_and_children','Copy Price Differential is starting');
8797
8798 --
8799 -- And those small price differentials
8800 --
8801 COPY_PRICE_DIFF ( p_source_auction_header_id => p_source_auction_header_id,
8802 p_auction_header_id => l_auction_header_id,
8803 p_tp_id => l_tp_id,
8804 p_tp_contact_id => l_tp_contact_id,
8805 p_tp_name => l_tp_name,
8806 p_tpc_name => l_tpc_name,
8807 p_user_id => l_user_id,
8808 p_doctype_id => p_doctype_id,
8809 p_copy_type => p_copy_type,
8810 p_from_line_number => l_batch_start,
8811 p_to_line_number => l_batch_end
8812 );
8813
8814 else
8815
8816 LOG_MESSAGE('copy_lines_and_children','Copy Price Differential is starting');
8817
8818 end if;
8819
8820 g_err_loc := '5. After Copying Price Differentials';
8821
8822 LOG_MESSAGE('copy_lines_and_children','Copy Payments is starting');
8823
8824 --
8825 -- And those associated payments
8826 --
8827 COPY_PAYMENTS ( p_source_auction_header_id => p_source_auction_header_id,
8828 p_auction_header_id => l_auction_header_id,
8829 p_user_id => l_user_id,
8830 p_doctype_id => p_doctype_id,
8831 p_source_doctype_id => l_source_doctype_id,
8832 p_retain_attachments => p_retain_attachments,
8833 p_from_line_number => l_batch_start,
8834 p_to_line_number => l_batch_end
8835 );
8836
8837 g_err_loc := '6. After Copying Payments';
8838
8839 if l_price_breaks_allowed then
8840
8841 LOG_MESSAGE('copy_lines_and_children','Copy Shipments is starting');
8842
8843 --
8844 -- And those associated shipments
8845 --
8846 COPY_SHIPMENTS ( p_source_auction_header_id => p_source_auction_header_id,
8847 p_auction_header_id => l_auction_header_id,
8848 p_tp_id => l_tp_id,
8849 p_tp_contact_id => l_tp_contact_id,
8850 p_tp_name => l_tp_name,
8851 p_tpc_name => l_tpc_name,
8852 p_user_id => l_user_id,
8853 p_doctype_id => p_doctype_id,
8854 p_source_doctype_id => l_source_doctype_id,
8855 p_copy_type => p_copy_type,
8856 p_from_line_number => l_batch_start,
8857 p_to_line_number => l_batch_end
8858 );
8859
8860 else
8861
8862 LOG_MESSAGE('copy_lines_and_children','Shipments are not allowed');
8863
8864 end if;
8865
8866 g_err_loc := '7. After Copying Shipments';
8867
8868 if l_price_elements_allowed then
8869
8870 LOG_MESSAGE('copy_lines_and_children','Copy Price Elements is starting');
8871
8872 --
8873 -- And those elementary price elements
8874 --
8875 COPY_PRICE_ELEMENTS ( p_source_auction_header_id => p_source_auction_header_id,
8876 p_auction_header_id => l_auction_header_id,
8877 p_tp_id => l_tp_id,
8878 p_tp_contact_id => l_tp_contact_id,
8879 p_tp_name => l_tp_name,
8880 p_tpc_name => l_tpc_name,
8881 p_user_id => l_user_id,
8882 p_source_doctype_id => l_source_doctype_id,
8883 p_doctype_id => p_doctype_id,
8884 p_copy_type => p_copy_type,
8885 p_source_doc_num => l_source_doc_num,
8886 p_from_line_number => l_batch_start,
8887 p_to_line_number => l_batch_end
8888 );
8889 else
8890
8891 LOG_MESSAGE('copy_lines_and_children','Price elements are not allowed');
8892
8893 end if;
8894
8895 g_err_loc := '8. After Copying Price Elements';
8896
8897
8898 LOG_MESSAGE('copy_lines_and_children','Copy PON_PARTY_LINE_EXCLUSIONS table data is starting;' ||
8899 'g_neg_style_control.rfi_line_enabled_flag : ' || g_neg_style_control.rfi_line_enabled_flag ||
8900 'p_doctype_id : ' || p_doctype_id ||
8901 'IS_LARGE_SOURCE : ' || IS_LARGE_SOURCE ||
8902 'IS_LARGE_DESTINATION : ' || IS_LARGE_DESTINATION);
8903
8904 --
8905 -- Here comes the Lot based bidding project related table PON_PARTY_LINE_EXCLUSIONS
8906 --
8907 --Do not copy party exclusions in case of either the source or the destination auction being a large one
8908 IF ( (g_neg_style_control.rfi_line_enabled_flag = 'Y' or p_doctype_id <> g_rfi_doctype_id) and
8909 IS_LARGE_SOURCE <> 'Y' and IS_LARGE_DESTINATION <> 'Y') THEN
8910
8911 LOG_MESSAGE('copy_lines_and_children','Party exclusions are allowed for this auction');
8912
8913 COPY_PARTY_LINE_EXCLUSIONS (
8914 p_source_auction_header_id => p_source_auction_header_id,
8915 p_auction_header_id => l_auction_header_id,
8916 p_user_id => l_user_id,
8917 p_doctype_id => p_doctype_id,
8918 p_copy_type => p_copy_type,
8919 p_from_line_number => l_batch_start,
8920 p_to_line_number => l_batch_end);
8921 else
8922
8923 LOG_MESSAGE('copy_lines_and_children','Party exclusions are not allowed');
8924
8925 END IF;
8926
8927 g_err_loc := '12. After Copying PON_PARTY_LINE_EXCLUSIONS data';
8928
8929 LOG_MESSAGE('copy_lines_and_children','Copy PON_PF_SUPPLIER_VALUES table data is starting');
8930
8931 --
8932 -- Here comes the Tranformation project related table PON_PF_SUPPLIER_VALUES
8933 --
8934
8935 --The values of CALL_COPY_PF_SUPPLIER_VALUES and CALL_PON_LRG_DRAFT_TO_ORD_PF
8936 --are set based on l_price_elements_allowed. So we need not check if
8937 --price factors values need to be copied of not explicitly here
8938
8939 if CALL_COPY_PF_SUPPLIER_VALUES = 'TRUE' then
8940
8941 LOG_MESSAGE('copy_lines_and_children','Calling COPY_PF_SUPPLIER_VALUES for '||p_source_auction_header_id||' to '||l_auction_header_id);
8942
8943 COPY_PF_SUPPLIER_VALUES (
8944 p_source_auction_header_id => p_source_auction_header_id,
8945 p_auction_header_id => l_auction_header_id,
8946 p_user_id => l_user_id,
8947 p_doctype_id => p_doctype_id,
8948 p_copy_type => p_copy_type,
8949 p_from_line_number => l_batch_start,
8950 p_to_line_number => l_batch_end);
8951
8952
8953 elsif CALL_PON_LRG_DRAFT_TO_ORD_PF = 'TRUE' then
8954
8955 LOG_MESSAGE('copy_lines_and_children','Calling PON_LRG_DRAFT_TO_ORD_PF_COPY for '||p_source_auction_header_id||' to '||l_auction_header_id);
8956 PON_LRG_DRAFT_TO_ORD_PF_COPY(
8957 p_source_auction_hdr_id => p_source_auction_header_id,
8958 p_destination_auction_hdr_id => p_destination_auction_hdr_id,
8959 p_user_id => l_user_id,
8960 p_from_line_number => l_batch_start,
8961 p_to_line_number => l_batch_end
8962 );
8963
8964 end if;
8965
8966 g_err_loc := '13. After Copying PON_PF_SUPPLIER_VALUES data';
8967
8968 -- remove lots and groups if disabled by style
8969 -- this code is separated from main copy routines as this is a corner case.
8970 REMOVE_LOT_AND_GROUP (p_auction_header_id => l_auction_header_id,
8971 p_lot_enabled => g_neg_style_control.lot_enabled_flag,
8972 p_group_enabled => g_neg_style_control.group_enabled_flag,
8973 p_from_line_number => l_batch_start,
8974 p_to_line_number => l_batch_end);
8975
8976
8977 --COMMIT the above DML transactions to
8978 --free the buffer
8979 LOG_MESSAGE('copy_lines_and_children','Trying to COMMIT...');
8980
8981 COMMIT;
8982
8983 LOG_MESSAGE('copy_lines_and_children','COMMITED successfully; Batching done for the line_numbers in the range '|| l_batch_start ||' to '||l_batch_end||' (inclusive); computing window for the next batch');
8984
8985 l_batch_start := l_batch_end + 1;
8986
8987 IF (l_batch_end + l_batch_size > l_max_line_number) THEN
8988 l_batch_end := l_max_line_number;
8989 ELSE
8990 l_batch_end := l_batch_end + l_batch_size;
8991 END IF;
8992
8993 LOG_MESSAGE('copy_lines_and_children','Computed the window for next batch to be ' || l_batch_start || ' to ' || l_batch_end || ' (inclusive) ' );
8994
8995 END LOOP;
8996 END IF;
8997 --------------------------------------------------------------------------------------------------------------
8998 --BATCHING ENDS HERE
8999 --------------------------------------------------------------------------------------------------------------
9000
9001 -- Team Scoring
9002 -- Copy scoring teams, members and assignments.
9003 IF (g_neg_style_control.team_scoring_enabled_flag = 'Y') THEN
9004
9005 LOG_MESSAGE('copy_lines_and_children','4219729. Copy Scoring Teams Start');
9006
9007 COPY_SCORING_TEAMS(
9008 p_source_auction_header_id => p_source_auction_header_id,
9009 p_auction_header_id => l_auction_header_id,
9010 p_user_id => l_user_id
9011 );
9012 else
9013
9014 LOG_MESSAGE('copy_lines_and_children','4219729. Scoring Teams are not allowed');
9015
9016 END IF;
9017 g_err_loc := '4219729. After copying Scoring teams, members and assignments';
9018
9019 --
9020 -- if the source document is an amendment or multiround document and
9021 -- the new document is not, then we must renumber_lines() to remove any
9022 -- gaps in the display sequence.
9023 --
9024 -- if lot or group is deleted due to style, and is not an amendment or multiround document
9025 -- need to renumber as well
9026 --
9027 if (NOT(p_copy_type = g_amend_copy OR
9028 (p_copy_type = g_new_rnd_copy AND l_source_doctype_id = p_doctype_id))) and
9029 (l_round_number > 1 or l_last_amendment_number > 0 or g_line_deleted = 'Y') then
9030 renumber_lines(l_auction_header_id);
9031 end if;
9032
9033
9034
9035 LOG_MESSAGE('copy_lines_and_children','IS_LARGE_DESTINATION : ' || IS_LARGE_DESTINATION ||
9036 '; CALL_PON_LRG_DRAFT_TO_LRG_PF ' || CALL_PON_LRG_DRAFT_TO_LRG_PF ||
9037 '; CALL_PON_ORD_DRAFT_TO_LRG_PF : ' || CALL_PON_ORD_DRAFT_TO_LRG_PF );
9038
9039 IF (CALL_PON_LRG_DRAFT_TO_LRG_PF = 'TRUE') THEN
9040
9041 --
9042 --Call PON_LRG_DRAFT_TO_LRG_PF_COPY routines here
9043 --to add empty rows for the suppliers in large_neg_pf_values table
9044 --
9045
9046 LOG_MESSAGE('copy_lines_and_children','Calling PON_LRG_DRAFT_TO_LRG_PF_COPY');
9047
9048 PON_LRG_DRAFT_TO_LRG_PF_COPY(
9049 p_source_auction_hdr_id => p_source_auction_header_id,
9050 p_destination_auction_hdr_id => p_destination_auction_hdr_id,
9051 p_user_id => p_user_id
9052 );
9053
9054 ELSIF (CALL_PON_ORD_DRAFT_TO_LRG_PF = 'TRUE') THEN
9055
9056 --
9057 --Call PON_ORD_DRAFT_TO_LRG_PF_COPY routines here
9058 --to add empty rows for the suppliers in large_neg_pf_values table
9059 --
9060
9061 LOG_MESSAGE('copy_lines_and_children','Calling PON_ORD_DRAFT_TO_LRG_PF_COPY');
9062
9063 PON_ORD_DRAFT_TO_LRG_PF_COPY(
9064 p_source_auction_hdr_id => p_source_auction_header_id,
9065 p_destination_auction_hdr_id => p_destination_auction_hdr_id,
9066 p_user_id => p_user_id
9067 );
9068
9069 END IF; --CALL_PON_LRG_DRAFT_TO_LRG_PF = 'TRUE'
9070
9071 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
9072 THEN
9073 x_return_status := l_return_status;
9074 x_msg_count := 1;
9075 x_msg_data := l_error_msg_update;
9076 LOG_MESSAGE('copy_lines_and_children','Returning with status : '||x_return_status||'; mesg_cnt : '||x_msg_count||';mesg_data : '||x_msg_data);
9077 return;
9078 END IF;
9079
9080
9081
9082 -- Could be a sanity check....
9083 -- Delete all attribute scores where there is no parent attribute
9084
9085 SELECT contract_type
9086 INTO l_contract_type
9087 FROM pon_auction_headers_all
9088 WHERE auction_header_id = l_auction_header_id;
9089
9090 IF (l_contract_type in ('BLANKET', 'CONTRACT') and
9091 p_copy_type in (g_active_neg_copy, g_draft_neg_copy) and
9092 p_doctype_id <> g_rfi_doctype_id) THEN
9093
9094 DELETE FROM pon_attribute_scores pas
9095 WHERE pas.auction_header_id = l_auction_header_id and
9096 not exists (select null
9097 from pon_auction_attributes
9098 where auction_header_id = pas.auction_header_id and
9099 line_number = pas.line_number and
9100 sequence_number = pas.attribute_sequence_number);
9101
9102 END IF;
9103
9104
9105 --
9106 -- Now, we have to put all the inactive Price Elements of the source
9107 -- negotiation document in a message so that they can be displayed
9108 -- as invalid Price Elements on the Negotiation Creation Header page
9109 -- subsequently.
9110 -- We are relying on the g_has_inactive_pe_flag variable to decide if
9111 -- had any such Price Elements in this call.
9112 --
9113 IF (g_has_inactive_pe_flag = 'Y') THEN
9114 -- Add the inactive Price Elements in a list
9115
9116 LOG_MESSAGE('copy_lines_and_children','Copy PE: 1. Has got some inactive PE');
9117
9118 SELECT
9119 DISTINCT VL.NAME
9120 BULK COLLECT
9121 INTO
9122 l_name
9123 FROM PON_PRICE_ELEMENTS P, PON_PRICE_ELEMENT_TYPES_VL VL
9124 WHERE P.AUCTION_HEADER_ID = p_source_auction_header_id
9125 AND P.PRICE_ELEMENT_TYPE_ID = VL.PRICE_ELEMENT_TYPE_ID
9126 AND VL.ENABLED_FLAG = 'N';
9127
9128 IF (l_name.COUNT <> 0) THEN
9129 FND_MESSAGE.SET_NAME('PON','PON_AUC_INACTIVE_PE_W'||'_'||g_message_suffix);
9130 FND_MESSAGE.SET_TOKEN('AUCTION_NUMBER',p_source_doc_num);
9131 l_inactive_pe_name := '; 1. '||l_name(1);
9132 LOG_MESSAGE('copy_lines_and_children','Copy PE: 2. l_inactive_pe_name:'||l_inactive_pe_name);
9133
9134 FOR x IN 2..l_name.COUNT
9135 LOOP
9136 l_inactive_pe_name := l_inactive_pe_name||' '||x||'. '|| l_name(x);
9137 END LOOP;
9138 -- The way I am adding this error may get changed in the future.
9139 -- So, please be aware of that
9140 LOG_MESSAGE('copy_lines_and_children','Copy PE: 3. l_inactive_pe_name:'||l_inactive_pe_name);
9141 FND_MESSAGE.SET_TOKEN('LIST',l_inactive_pe_name);
9142 FND_MSG_PUB.ADD;
9143 END IF;
9144 END IF;
9145
9146
9147 --
9148 -- Set the OUT parameters one by one
9149 --
9150
9151 --
9152 -- Now update the original negotiation document as required for New Round and Amendment
9153 --
9154 IF (p_copy_type = g_new_rnd_copy OR
9155 p_copy_type = g_amend_copy ) THEN
9156
9157 IF (p_copy_type = g_amend_copy) THEN
9158 l_is_amendment := 'CREATE_AMENDMENT';
9159 ELSE
9160 l_is_amendment := 'CREATE_NEW_ROUND';
9161 END IF;
9162
9163 PON_NEG_UPDATE_PKG.UPDATE_TO_NEW_DOCUMENT(
9164 p_auction_header_id_curr_doc => l_auction_header_id,
9165 p_doc_number_curr_doc => g_neg_doc_number,
9166 p_auction_header_id_prev_doc => p_source_auction_header_id,
9167 p_auction_origination_code => g_auc_origination_code,
9168 p_is_new => 'Y',
9169 p_is_publish => 'N',
9170 p_transaction_type => l_is_amendment,
9171 p_user_id => l_user_id,
9172 x_error_code => l_error_code_update,
9173 x_error_msg => l_error_msg_update);
9174
9175 IF (l_error_code_update <> 'SUCCESS' ) THEN
9176 -- The way I am adding this error may get changed in the future.
9177 -- So, please be aware of that
9178 FND_MESSAGE.SET_NAME('PON','PON_GENERIC_ERR');
9179 FND_MESSAGE.SET_TOKEN('TOKEN',l_error_code_update||' - '||l_error_msg_update);
9180 FND_MSG_PUB.ADD;
9181 LOG_MESSAGE('copy_lines_and_children','Error while updating source negotiation. Error:'||l_error_msg_update);
9182 RAISE FND_API.G_EXC_ERROR;
9183 END IF;
9184
9185 END IF;
9186
9187 --
9188 --Update the LAST_LINE_NUMBER and NUMBER_OF_LINES fields in pon_auction_headers_all
9189 --
9190 LOG_MESSAGE('copy_negotiation','Querying for NUMBER_OF_LINES and LAST_LINE_NUMBER');
9191
9192 SELECT
9193 COUNT(LINE_NUMBER) number_of_lines, MAX (DECODE (GROUP_TYPE, 'LOT_LINE', 0, 'GROUP_LINE', 0, SUB_LINE_SEQUENCE_NUMBER)) last_line_number
9194 INTO l_number_of_lines, l_last_line_number
9195 FROM PON_AUCTION_ITEM_PRICES_ALL
9196 WHERE
9197 AUCTION_HEADER_ID = l_auction_header_id;
9198
9199 LOG_MESSAGE('copy_lines_and_children','l_number_of_lines : ' || l_number_of_lines || ' ; l_last_line_number : ' || l_last_line_number);
9200
9201 UPDATE pon_auction_headers_all
9202 SET number_of_lines = l_number_of_lines, LAST_LINE_NUMBER = l_last_line_number
9203 WHERE
9204 AUCTION_HEADER_ID = l_auction_header_id;
9205
9206 LOG_MESSAGE('copy_lines_and_children','Updated NUMBER_OF_LINES and LAST_LINE_NUMBER fields in PON_AUCTION_HEADERS_ALL');
9207
9208 --
9209 -- Now get message count to initialize the OUT variable (x_msg_count)
9210 --
9211 FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
9212 p_data => x_msg_data
9213 );
9214
9215 --
9216 -- Set the return status
9217 --
9218 x_return_status := g_return_status;
9219
9220 --
9221 --COMMIT the above sanity and house keeping DML transactions
9222 --
9223 LOG_MESSAGE('copy_lines_and_children','Trying to COMMIT the sanity checks and house keeping DML transactions...');
9224 COMMIT;
9225
9226 LOG_MESSAGE('copy_lines_and_children','Returning with status:'||x_return_status);
9227
9228 EXCEPTION
9229 WHEN FND_API.G_EXC_ERROR THEN
9230 ROLLBACK TO PON_NEGOTIATION_COPY_GRP;
9231 x_return_status := FND_API.G_RET_STS_ERROR ;
9232 FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
9233 p_data => x_msg_data
9234 );
9235
9236 LOG_MESSAGE('copy_lines_and_children','An error in the procedure. Error at:'||g_err_loc || ' :' || SQLCODE || ' :' || SQLERRM);
9237
9238 -- Why another block? We can have only one block. Let me see
9239 WHEN OTHERS THEN
9240 ROLLBACK TO PON_NEGOTIATION_COPY_GRP;
9241 x_return_status := FND_API.G_RET_STS_ERROR;
9242 FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
9243 p_data => x_msg_data
9244 );
9245 LOG_MESSAGE('copy_lines_and_children','An error in the procedure. Error at:'||g_err_loc || ' :' || SQLCODE || ' :' || SQLERRM);
9246
9247 --ABOVE CODE ALREADY EXISTS
9248 --COPIED FROM COPY_NEGOTIATION
9249 --IT ENDS HERE
9250 END COPY_LINES_AND_CHILDREN;
9251 --} End of COPY_LINES_AND_CHILDREN
9252
9253
9254
9255 FUNCTION GET_HDR_CROSS_COPY_DATA ( p_source_auction_header_id IN NUMBER,
9256 p_auction_header_id IN NUMBER,
9257 p_doctype_id IN NUMBER,
9258 p_copy_type IN VARCHAR2,
9259 p_source_doctype_id IN NUMBER,
9260 p_tp_id IN NUMBER) RETURN AUC_HDR_TYPE_BASE_DATA
9261 IS
9262 --{ Start of GET_HDR_CROSS_COPY_DATA
9263 t_record AUC_HDR_TYPE_BASE_DATA;
9264 l_rfi_doctype_id NUMBER;
9265 l_rfq_doctype_id NUMBER;
9266 l_auction_doctype_id NUMBER;
9267
9268 l_pref_rank_indicator VARCHAR2(300);
9269 l_pref_unused_1 VARCHAR2(300);
9270 l_pref_unused_2 VARCHAR2(300);
9271 l_pref_unused_3 VARCHAR2(300);
9272
9273 l_pref_pf_type VARCHAR2(300);
9274 l_pref_pf_unused_1 VARCHAR2(300);
9275 l_pref_pf_unused_2 VARCHAR2(300);
9276 l_pref_pf_unused_3 VARCHAR2(300);
9277
9278 l_temp_labor_count NUMBER;
9279
9280 l_default_currency_code PON_AUCTION_HEADERS_ALL.CURRENCY_CODE%TYPE;
9281 l_default_rate_type PON_AUCTION_HEADERS_ALL.RATE_TYPE%TYPE;
9282
9283
9284 BEGIN
9285
9286 g_err_loc := '1.1.1 Selecting Bizrules for doctype id:'||p_doctype_id||' and copy type:'||p_copy_type||' with source auc id:'||p_source_auction_header_id;
9287
9288 BEGIN --{
9289
9290 -- Check if the doctype_id of RFI
9291 BEGIN
9292 g_err_loc := '1.1.2 Checking if this is copy to RFI';
9293 SELECT DOCTYPE_ID
9294 INTO l_rfi_doctype_id
9295 FROM PON_AUC_DOCTYPES
9296 WHERE DOCTYPE_GROUP_NAME = 'REQUEST_FOR_INFORMATION';
9297 EXCEPTION
9298 WHEN OTHERS THEN
9299 -- The way I am adding this error may get changed in the future.
9300 -- So, please be aware of that
9301 FND_MESSAGE.SET_NAME('PON','PON_AUC_NO_DATA_EXISTS');
9302 FND_MSG_PUB.ADD;
9303 RAISE FND_API.G_EXC_ERROR;
9304 END;
9305
9306 g_rfi_doctype_id := l_rfi_doctype_id;
9307
9308 -- Check if the doctype_id of RFQ
9309 BEGIN
9310 g_err_loc := '1.1.2 Checking if this is copy to RFQ';
9311 SELECT DOCTYPE_ID
9312 INTO l_rfq_doctype_id
9313 FROM PON_AUC_DOCTYPES
9314 WHERE DOCTYPE_GROUP_NAME = 'REQUEST_FOR_QUOTE';
9315 EXCEPTION
9316 WHEN OTHERS THEN
9317 FND_MESSAGE.SET_NAME('PON','PON_AUC_NO_DATA_EXISTS');
9318 FND_MSG_PUB.ADD;
9319 RAISE FND_API.G_EXC_ERROR;
9320 END;
9321
9322 g_rfq_doctype_id := l_rfq_doctype_id;
9323
9324 -- Check if the doctype_id of Auction
9325 BEGIN
9326 g_err_loc := '1.1.2 Checking if this is copy to Auction';
9327 SELECT DOCTYPE_ID
9328 INTO l_auction_doctype_id
9329 FROM PON_AUC_DOCTYPES
9330 WHERE DOCTYPE_GROUP_NAME = 'BUYER_AUCTION';
9331 EXCEPTION
9332 WHEN OTHERS THEN
9333 FND_MESSAGE.SET_NAME('PON','PON_AUC_NO_DATA_EXISTS');
9334 FND_MSG_PUB.ADD;
9335 RAISE FND_API.G_EXC_ERROR;
9336 END;
9337
9338 g_auction_doctype_id := l_auction_doctype_id;
9339
9340 --
9341 -- First get the preferred value from Configuration page
9342 --
9343 -- 1. Rank Indicator value
9344 BEGIN
9345 PON_PROFILE_UTIL_PKG.RETRIEVE_PARTY_PREF_COVER(
9346 p_party_id => p_tp_id,
9347 p_app_short_name => 'PON',
9348 p_pref_name => 'RANK_INDICATOR',
9349 x_pref_value => l_pref_rank_indicator,
9350 x_pref_meaning => l_pref_unused_1,
9351 x_status => l_pref_unused_2,
9352 x_exception_msg => l_pref_unused_3);
9353
9354 IF (l_pref_unused_2 <> FND_API.G_RET_STS_SUCCESS) THEN
9355 -- Log Error
9356 LOG_MESSAGE('copy_negotiation','Could not retrieve RETRIEVE_PARTY_PREF_COVER for p_pref_name= RANK_INDICATOR . Exception msg =' || l_pref_unused_3);
9357 l_pref_rank_indicator := 'NONE';
9358 END IF;
9359
9360 EXCEPTION
9361 WHEN OTHERS THEN
9362 l_pref_rank_indicator := 'NONE';
9363 END;
9364 LOG_MESSAGE('copy_negotiation','Sysadmin set Rank Indicator value is - ' || l_pref_rank_indicator);
9365
9366
9367 --
9368 -- Get the Price Factor preferred value from Configuration page
9369 --
9370 -- Price Factor Type Value
9371 BEGIN
9372 PON_PROFILE_UTIL_PKG.RETRIEVE_PARTY_PREF_COVER(
9373 p_party_id => p_tp_id,
9374 p_app_short_name => 'PON',
9375 p_pref_name => 'PF_TYPE_ALLOWED',
9376 x_pref_value => l_pref_pf_type,
9377 x_pref_meaning => l_pref_pf_unused_1,
9378 x_status => l_pref_pf_unused_2,
9379 x_exception_msg => l_pref_pf_unused_3);
9380
9381 IF (l_pref_pf_unused_2 <> FND_API.G_RET_STS_SUCCESS) THEN
9382 -- Log Error
9383 LOG_MESSAGE('copy_negotiation','Could not retrieve RETRIEVE_PARTY_PREF_COVER for p_pref_name= PF_TYPE_ALLOWED . Exception msg =' || l_pref_pf_unused_3);
9384 l_pref_pf_type := 'NONE';
9385
9386 END IF;
9387
9388 EXCEPTION
9389 WHEN OTHERS THEN
9390 l_pref_pf_type := 'NONE';
9391 END;
9392 LOG_MESSAGE('copy_negotiation','Sysadmin set Price Factor value is - ' || l_pref_pf_type);
9393
9394
9395 --
9396 -- Get all the doctype_based bizrule values for all attributes of
9397 -- AUC_HDR_TYPE_BASE_DATA type.
9398 --
9399 -- The basic logic of each of the block is as follows -
9400 --
9401 -- 1. If the bizrule for an attribute is applicable for the target doctype
9402 -- 1.1 Check if the attribute is displayable for the target doctype_id
9403 -- 1.1.1 Carry on the value in that case (generally). May perform
9404 -- a nvl check if required for some required attributes.
9405 -- 1.2 <Not Displayable for target doctype_id>
9406 -- 1.2.1 Check if there is some fixed value for the attribute
9407 -- 1.2.1.1 Set the value of the attribute to the fixed value
9408 -- 1.2.2 <No Fixed Value>
9409 -- 1.2.2.1 Check if there is some default value for the attribute
9410 -- 1.2.2.1.1 Set the value of the attribute to the default value
9411 -- 1.2.2.2 <No Default Value>
9412 -- 1.2.2.2.1 Set the value of the attribute to
9413 -- same attribute value from the original negotiation or
9414 -- some hard coded derivation of that (if required) or NULL
9415 -- 2. Set the value of the attribute to NULL or to the same attribute value from
9416 -- the original negotiation or some hard coded derivation of that (if required)
9417 --
9418 SELECT
9419 --
9420 -- If the bizrule is not applied to a doctype then default it to
9421 -- OPEN_BIDDING.
9422 -- It keeps the source document value if the target doctype_id
9423 -- is same as before. It always sets the value as per the
9424 -- bizrule dictates if it is a cross doctype copy and the original value
9425 -- was OPEN_BIDDING. It will carry over the value in all other cases.
9426 --
9427 decode (R_BID_VISIB.VALIDITY_FLAG,
9428 'N','OPEN_BIDDING',
9429 'Y', decode( p_doctype_id, p_source_doctype_id,
9430 A.BID_VISIBILITY_CODE,
9431 -- So, we are copying accross doctype id
9432 decode(A.BID_VISIBILITY_CODE,
9433 'OPEN_BIDDING', decode( NVL(R_BID_VISIB.FIXED_VALUE,'-1'),
9434 '-1', decode(NVL(R_BID_VISIB.DEFAULT_VALUE,'-1'),
9435 '-1', A.BID_VISIBILITY_CODE,
9436 R_BID_VISIB.DEFAULT_VALUE),
9437 R_BID_VISIB.FIXED_VALUE),
9438 A.BID_VISIBILITY_CODE)
9439 )) BID_VISIBILITY_CODE,
9440 --
9441 -- The BID_SCOPE_CODE code will be defaulted to LINE_LEVEL_BIDDING
9442 -- when it is not applicable to a document scenario. Otherwise the source document value
9443 -- is carried forwarded if it is displayed in the target doctype and defaulted by bizrule
9444 -- only if the source BID_SCOPE_CODE value is NULL (Draft Negotiation Copy).
9445 -- The value will be defaulted to the doctype default when the attribute is not
9446 -- displayable
9447 --
9448 decode (R_BID_SCOPE.VALIDITY_FLAG,
9449 'N','LINE_LEVEL_BIDDING',
9450 'Y', decode( R_BID_SCOPE.display_flag,
9451 'Y', NVL(A.BID_SCOPE_CODE, R_BID_SCOPE.DEFAULT_VALUE),
9452 'N', decode(NVL(R_BID_SCOPE.FIXED_VALUE,'-1'),
9453 '-1', R_BID_SCOPE.DEFAULT_VALUE,
9454 R_BID_SCOPE.FIXED_VALUE))
9455 ) BID_SCOPE_CODE,
9456 --
9457 -- CONTRACT_TYPE Column is not applicable for RFI. So, it is NULL
9458 -- by the seeded bizrule (We are not hardcoding it to NULL as before).
9459 -- If it is applicable for the target doctype then check if it was displayable
9460 -- for source doctype_id. If it is true then carry on the old value. If it is false then
9461 -- set it to STANDARD if fixed and default
9462 -- values are NULL for a doctype. This was the logic implemented in
9463 -- the initialize() method of AuctionHeaderALLEOImpl
9464 --
9465 decode (R_CNTRCT.VALIDITY_FLAG,
9466 'N',NULL,
9467 'Y', decode(R_OLD_CNTRCT.display_flag,
9468 'Y', A.CONTRACT_TYPE,
9469 decode(NVL(R_CNTRCT.FIXED_VALUE,'-1'),
9470 '-1', decode(NVL(R_CNTRCT.DEFAULT_VALUE,'-1'),
9471 '-1', 'STANDARD',
9472 R_CNTRCT.DEFAULT_VALUE),
9473 R_CNTRCT.FIXED_VALUE))) CONTRACT_TYPE,
9474 --
9475 -- The PO_START_DATE will be defaulted to NULLwhen it is not applicable to the target
9476 -- document. Otherwise the source document value is carried forwarded if it is displayed
9477 -- in the target doctype scenario. The value will be set to NULL when the attribute is not
9478 -- displayable in the target doctype scenario
9479 --
9480 decode (R_AGRMNT_DATE.VALIDITY_FLAG,
9481 'N',NULL,
9482 'Y',decode(R_AGRMNT_DATE.display_flag,
9483 'Y', A.PO_START_DATE,
9484 'N', NULL)) PO_START_DATE,
9485 --
9486 -- The PO_END_DATE will be defaulted to NULLwhen it is not applicable to the target
9487 -- document. Otherwise the source document value is carried forwarded if it is displayed
9488 -- in the target doctype scenario. The value will be set to NULL when the attribute is not
9489 -- displayable in the target doctype scenario
9490 --
9491 decode (R_AGRMNT_END_DATE.VALIDITY_FLAG,
9492 'N',NULL,
9493 'Y',decode(R_AGRMNT_END_DATE.display_flag,
9494 'Y', A.PO_END_DATE,
9495 'N', NULL)) PO_END_DATE,
9496 decode (R_AGRMNT_AMNT.VALIDITY_FLAG,
9497 'N',NULL,
9498 'Y',decode(R_AGRMNT_AMNT.display_flag,
9499 'Y', A.PO_AGREED_AMOUNT,
9500 'N', NULL)) PO_AGREED_AMOUNT,
9501 --
9502 -- If the bizrule is not applied to a doctype then default it to N
9503 -- It keeps the source document value if the target doctype_id
9504 -- has the display flag on. Otherwise it is always set as per the
9505 -- bizrule dictates. If the bizrule value is NULL then it is set to source
9506 -- document attribute value for simplicity.
9507 --
9508 decode (R_MAN_CLOSE.VALIDITY_FLAG,
9509 'N','N',
9510 'Y',decode( R_MAN_CLOSE.display_flag,
9511 'Y', A.MANUAL_CLOSE_FLAG,
9512 'N', decode(NVL(R_MAN_CLOSE.FIXED_VALUE,'-1'),
9513 '-1', decode(NVL(R_MAN_CLOSE.DEFAULT_VALUE,'-1'),
9514 '-1', A.MANUAL_CLOSE_FLAG,
9515 R_MAN_CLOSE.DEFAULT_VALUE),
9516 R_MAN_CLOSE.FIXED_VALUE))) MANUAL_CLOSE_FLAG,
9517 --
9518 -- If the bizrule is not applied to a doctype then default it to N
9519 -- It keeps the source document value if the target doctype_id
9520 -- has the display flag on. Otherwise it is always set as per the
9521 -- bizrule dictates. If the bizrule value is NULL then it is set to source
9522 -- document attribute value for simplicity.
9523 --
9524 decode (R_MAN_EXTND.VALIDITY_FLAG,
9525 'N','N',
9526 'Y',decode( R_MAN_EXTND.display_flag,
9527 'Y', A.MANUAL_EXTEND_FLAG,
9528 'N', decode(NVL(R_MAN_EXTND.FIXED_VALUE,'-1'),
9529 '-1', decode(NVL(R_MAN_EXTND.DEFAULT_VALUE,'-1'),
9530 '-1', A.MANUAL_EXTEND_FLAG,
9531 R_MAN_EXTND.DEFAULT_VALUE),
9532 R_MAN_EXTND.FIXED_VALUE))) MANUAL_EXTEND_FLAG,
9533 --
9534 -- If the bizrule is not applied to a doctype then default it to N
9535 -- It keeps the source document value if the target doctype_id
9536 -- has the display flag on. Otherwise it is always set as per the
9537 -- bizrule dictates. If the bizrule value is NULL then it is set to source
9538 -- document attribute value for simplicity.
9539 --
9540 decode (R_SHOW_NOTES.VALIDITY_FLAG,
9541 'N','N',
9542 'Y', decode( R_SHOW_NOTES.display_flag,
9543 'Y', A.SHOW_BIDDER_NOTES,
9544 'N', decode(NVL(R_SHOW_NOTES.FIXED_VALUE,'-1'),
9545 '-1', decode(NVL(R_SHOW_NOTES.DEFAULT_VALUE,'-1'),
9546 '-1', A.SHOW_BIDDER_NOTES,
9547 R_SHOW_NOTES.DEFAULT_VALUE),
9548 R_SHOW_NOTES.FIXED_VALUE))) SHOW_BIDDER_NOTES,
9549 --
9550 -- The MULTIPLE_ROUNDS_FLAG flag will be defaulted to N if not applicable to
9551 -- a doctype_id. It keeps the source document value if the target doctype_id
9552 -- has the display flag on. Otherwise it is always set as per the
9553 -- bizrule dictates. If the bizrule value is NULL then it is set to N.
9554 --
9555 decode (R_MULI_ROUND.VALIDITY_FLAG,
9556 'N','N',
9557 'Y', decode( R_MULI_ROUND.display_flag,
9558 'Y', nvl(A.MULTIPLE_ROUNDS_FLAG,'N'),
9559 'N', decode(NVL(R_MULI_ROUND.FIXED_VALUE,'-1'), -- It has got a problem, fixed and default values are different
9560 '-1', decode(NVL(R_MULI_ROUND.DEFAULT_VALUE,'-1'),
9561 '-1', nvl(A.MULTIPLE_ROUNDS_FLAG,'N'),
9562 R_MULI_ROUND.DEFAULT_VALUE),
9563 decode(R_MULI_ROUND.FIXED_VALUE,
9564 'MULTIPLE', 'Y',
9565 'SINGLE', 'N'))
9566 )
9567 ) MULTIPLE_ROUNDS_FLAG, -- It is SINGLE for RFQ which seems to be wrong
9568 --
9569 -- The AUTO_EXTEND_FLAG flag will be defaulted to N if not applicable to
9570 -- a doctype_id. It keeps the source document value if the target doctype_id
9571 -- has the display flag on. Otherwise it is always set as per the
9572 -- bizrule dictates. If the bizrule value is NULL then it is set to N.
9573 --
9574 -- also check for neg style
9575 -- if style disables auto extension, set the flag to N
9576 decode (R_AUTO_EXTND.VALIDITY_FLAG,
9577 'N','N',
9578 'Y', decode(g_neg_style_control.auto_extend_enabled_flag,
9579 'N', 'N',
9580 'Y', decode( R_AUTO_EXTND.display_flag,
9581 'Y', A.AUTO_EXTEND_FLAG,
9582 'N', decode(NVL(R_AUTO_EXTND.FIXED_VALUE,'-1'),
9583 '-1', decode(NVL(R_AUTO_EXTND.DEFAULT_VALUE,'-1'),
9584 '-1', 'N',
9585 R_AUTO_EXTND.DEFAULT_VALUE),
9586 R_AUTO_EXTND.FIXED_VALUE)))) AUTO_EXTEND_FLAG,
9587 --
9588 -- The AUTO_EXTEND_ALL_LINES_FLAG flag will be defaulted to N if not applicable to
9589 -- a doctype_id. It keeps the source document value if the target doctype_id
9590 -- has the display flag on. Otherwise it is always set as per the
9591 -- bizrule dictates. If the bizrule value is NULL then it is set to N.
9592 --
9593 decode (R_AUTO_XTN_ALL.VALIDITY_FLAG,
9594 'N','N',
9595 'Y', decode( R_AUTO_XTN_ALL.display_flag,
9596 'Y', A.AUTO_EXTEND_ALL_LINES_FLAG,
9597 'N', decode(NVL(R_AUTO_XTN_ALL.FIXED_VALUE,'-1'),
9598 '-1', decode(NVL(R_AUTO_XTN_ALL.DEFAULT_VALUE,'-1'),
9599 '-1', 'N',
9600 R_AUTO_XTN_ALL.DEFAULT_VALUE),
9601 R_AUTO_XTN_ALL.FIXED_VALUE))) AUTO_EXTEND_ALL_LINES_FLAG,
9602 -- AUTO_EXTEND_MIN_TRIGGER_RANK will be defaulted to 1 if autoextend is not
9603 -- applicable. we do not have a seperate bizrule for this. Instead we use the
9604 -- generic bizrule for the autoextend.
9605 --
9606 decode (R_AUTO_XTN_ALL.VALIDITY_FLAG,
9607 'N',1, A.AUTO_EXTEND_MIN_TRIGGER_RANK) AUTO_EXTEND_MIN_TRIGGER_RANK,
9608 --
9609 -- The AUTO_EXTEND_DURATION flag will be defaulted to NULL if not applicable to
9610 -- a doctype_id. It keeps the source document value if the target doctype_id
9611 -- has the display flag on. Otherwise it is always set as per the
9612 -- bizrule dictates. If the bizrule value is NULL then it is set to the source attribute
9613 -- value.
9614 --
9615 decode (R_AUTO_XTN_LENGTH.VALIDITY_FLAG,
9616 'N',NULL,
9617 'Y',decode( R_AUTO_XTN_LENGTH.display_flag,
9618 'Y', A.AUTO_EXTEND_DURATION,
9619 'N', decode(NVL(R_AUTO_XTN_LENGTH.FIXED_VALUE,'-1'),
9620 '-1', decode(NVL(R_AUTO_XTN_LENGTH.DEFAULT_VALUE,'-1'),
9621 '-1', NULL,
9622 R_AUTO_XTN_LENGTH.DEFAULT_VALUE),
9623 R_AUTO_XTN_LENGTH.FIXED_VALUE))) AUTO_EXTEND_DURATION, -- It is 30 min default hence 20 not hard coded
9624 --
9625 -- The AUTO_EXTEND_TYPE_FLAG flag will be defaulted to NULL if not applicable to
9626 -- a doctype_id. It keeps the source document value if the target doctype_id
9627 -- has the display flag on. Otherwise it is always set as per the
9628 -- bizrule dictates. If the bizrule value is NULL then it is set to the source attribute
9629 -- value.
9630 --
9631 decode (R_AUTO_XTN_TYPE.VALIDITY_FLAG,
9632 'N',NULL,
9633 'Y', decode( R_AUTO_XTN_TYPE.display_flag,
9634 'Y', A.AUTO_EXTEND_TYPE_FLAG,
9635 'N', decode(NVL(R_AUTO_XTN_TYPE.FIXED_VALUE,'-1'),
9636 '-1', decode(NVL(R_AUTO_XTN_TYPE.DEFAULT_VALUE,'-1'),
9637 '-1', NULL,
9638 R_AUTO_XTN_TYPE.DEFAULT_VALUE),
9639 R_AUTO_XTN_TYPE.FIXED_VALUE))) AUTO_EXTEND_TYPE_FLAG, -- It should have some default value
9640 --
9641 -- The GLOBAL_AGREEMENT_FLAG flag will be defaulted to NULL if not applicable to
9642 -- a doctype_id. It keeps the source document value if the target doctype_id
9643 -- has the display flag on. Otherwise it is always set as per the
9644 -- bizrule dictates. If the bizrule value is NULL then it is set to the source attribute
9645 -- value. It is set to NULL in case of RFI later on.
9646 --
9647 decode (R_GLBL_AGREMNT.VALIDITY_FLAG,
9648 'N',NULL,
9649 'Y', decode( R_GLBL_AGREMNT.display_flag,
9650 'Y', A.GLOBAL_AGREEMENT_FLAG,
9651 'N', decode(NVL(R_GLBL_AGREMNT.FIXED_VALUE,'-1'),
9652 '-1', decode(NVL(R_GLBL_AGREMNT.DEFAULT_VALUE,'-1'),
9653 '-1', NULL,
9654 R_GLBL_AGREMNT.DEFAULT_VALUE),
9655 R_GLBL_AGREMNT.FIXED_VALUE))) GLOBAL_AGREEMENT_FLAG,
9656 --
9657 -- The PO_MIN_REL_AMOUNT flag will be defaulted to NULL if not applicable to
9658 -- a doctype_id. It keeps the source document value if the target doctype_id
9659 -- ihas the display flag on. Otherwise it is always set as per the
9660 -- bizrule dictates. If the bizrule value is NULL then it is set to NULL.
9661 -- It is later set to NULL if the current Contract type is STANDARD
9662 --
9663 decode (R_MIN_REL_AMT.VALIDITY_FLAG,
9664 'N',NULL,
9665 'Y', decode( R_MIN_REL_AMT.display_flag,
9666 'Y', A.PO_MIN_REL_AMOUNT,
9667 'N', decode(NVL(R_MIN_REL_AMT.FIXED_VALUE,'-1'),
9668 '-1', decode(NVL(R_MIN_REL_AMT.DEFAULT_VALUE,'-1'),
9669 '-1', NULL,
9670 R_MIN_REL_AMT.DEFAULT_VALUE),
9671 R_MIN_REL_AMT.FIXED_VALUE))) PO_MIN_REL_AMOUNT,
9672 decode (R_ALLOW_EVENT.VALIDITY_FLAG,
9673 'N',NULL,
9674 'Y',A.EVENT_ID) EVENT_ID,
9675 decode (R_ALLOW_EVENT.VALIDITY_FLAG,
9676 'N',NULL,
9677 'Y',A.EVENT_TITLE) EVENT_TITLE,
9678 --
9679 -- The BID_RANKING flag will be defaulted to PRICE_ONLY if not applicable to
9680 -- a doctype_id. It keeps the source document value if the target document
9681 -- still shows the UI for this control. Otherwise it is always set as per the
9682 -- bizrule dictates. If the bizrule value is NULL then it is set to PRICE_ONLY
9683 -- if style disables line MAS, bid_ranking is PRICE_ONLY
9684 decode (R_BID_RANK.VALIDITY_FLAG,
9685 'N','PRICE_ONLY',
9686 'Y',decode(NVL(g_neg_style_control.line_mas_enabled_flag,'N'),
9687 'N', 'PRICE_ONLY',
9688 'Y', decode( R_BID_RANK.display_flag,
9689 'Y', A.BID_RANKING,
9690 'N', decode(NVL(R_BID_RANK.FIXED_VALUE,'-1'),
9691 '-1', decode(NVL(R_BID_RANK.DEFAULT_VALUE,'-1'),
9692 '-1', 'PRICE_ONLY',
9693 R_BID_RANK.DEFAULT_VALUE),
9694 R_BID_RANK.FIXED_VALUE)))) BID_RANKING,
9695 decode (R_BILL_LOC.VALIDITY_FLAG,
9696 'N',NULL,
9697 'Y', decode(R_OLD_BILL_LOC.display_flag,
9698 'Y', A.BILL_TO_LOCATION_ID,
9699 'N', decode(NVL(R_BILL_LOC.FIXED_VALUE,'-1'),
9700 '-1', decode(NVL(R_BILL_LOC.DEFAULT_VALUE,'-1'),
9701 '-1', NULL,
9702 R_BILL_LOC.DEFAULT_VALUE),
9703 R_BILL_LOC.FIXED_VALUE))) BILL_TO_LOCATION_ID, -- Though I feel no one defaults the bill or ship loc id still keeping it
9704 decode (R_SHIP_LOC.VALIDITY_FLAG,
9705 'N',NULL,
9706 'Y', decode(R_OLD_SHIP_LOC.display_flag,
9707 'Y', A.SHIP_TO_LOCATION_ID,
9708 'N', decode(NVL(R_SHIP_LOC.FIXED_VALUE,'-1'),
9709 '-1', decode(NVL(R_SHIP_LOC.DEFAULT_VALUE,'-1'),
9710 '-1', NULL,
9711 R_SHIP_LOC.DEFAULT_VALUE),
9712 R_SHIP_LOC.FIXED_VALUE))) SHIP_TO_LOCATION_ID, -- 22 rule id
9713 decode (R_CARRIER.VALIDITY_FLAG,
9714 'N',NULL,
9715 'Y',decode(R_CARRIER.display_flag,
9716 'Y', A.CARRIER_CODE,
9717 'N', decode(NVL(R_CARRIER.FIXED_VALUE,'-1'),
9718 '-1', decode(NVL(R_CARRIER.DEFAULT_VALUE,'-1'),
9719 '-1', NULL,
9720 R_CARRIER.DEFAULT_VALUE),
9721 R_CARRIER.FIXED_VALUE))) CARRIER_CODE, -- 23 rule id
9722 decode (R_FRIEIGHT_TERMS.VALIDITY_FLAG,
9723 'N',NULL,
9724 'Y', decode(R_FRIEIGHT_TERMS.display_flag,
9725 'Y', A.FREIGHT_TERMS_CODE,
9726 'N', decode(NVL(R_FRIEIGHT_TERMS.FIXED_VALUE,'-1'),
9727 '-1', decode(NVL(R_FRIEIGHT_TERMS.DEFAULT_VALUE,'-1'),
9728 '-1', NULL,
9729 R_FRIEIGHT_TERMS.DEFAULT_VALUE),
9730 R_FRIEIGHT_TERMS.FIXED_VALUE))) FREIGHT_TERMS_CODE,
9731 decode (R_FOB_CODE.VALIDITY_FLAG,
9732 'N',NULL,
9733 'Y', decode(R_FOB_CODE.display_flag,
9734 'Y', A.FOB_CODE,
9735 'N', decode(NVL(R_FOB_CODE.FIXED_VALUE,'-1'),
9736 '-1', decode(NVL(R_FOB_CODE.DEFAULT_VALUE,'-1'),
9737 '-1', NULL,
9738 R_FOB_CODE.DEFAULT_VALUE),
9739 R_FOB_CODE.FIXED_VALUE))) FOB_CODE,
9740 --
9741 -- Defaulted to PUBLIC_BID_LIST if not applicable for any doctype.
9742 -- The value of BID_LIST_TYPE is always taken from the bizrule
9743 -- only if it was displayable in the source document. It is defaulted
9744 -- from bizrule otherwise
9745 --
9746 decode (R_BID_LIST.VALIDITY_FLAG,
9747 'N','PUBLIC_BID_LIST',
9748 'Y', decode( R_BID_LIST.display_flag,
9749 'Y', A.BID_LIST_TYPE,
9750 'N',decode(NVL(R_BID_LIST.FIXED_VALUE,'-1'),
9751 '-1', decode(NVL(R_BID_LIST.DEFAULT_VALUE,'-1'),
9752 '-1', 'PUBLIC_BID_LIST',
9753 R_BID_LIST.DEFAULT_VALUE),
9754 R_BID_LIST.FIXED_VALUE))) BID_LIST_TYPE,
9755 --
9756 -- The BID_FREQUENCY_CODE code will be defaulted to MULTIPLE_BIDS_ALLOWED
9757 -- when it is not applicable to a document. Otherwise the source document value
9758 -- is carried forwarded if displayable and is defaulted by bizrule only if it is not displayable.
9759 -- It is set to the doctype default value when it is NULL but displayable (Draft Negotiation Copy)
9760 --
9761 decode (R_BID_FREQ_CODE.VALIDITY_FLAG,
9762 'N','MULTIPLE_BIDS_ALLOWED',
9763 'Y', decode( R_BID_FREQ_CODE.display_flag,
9764 'Y', NVL(A.BID_FREQUENCY_CODE, R_BID_FREQ_CODE.DEFAULT_VALUE),
9765 'N', decode(NVL(R_BID_FREQ_CODE.FIXED_VALUE,'-1'),
9766 '-1', decode(NVL(R_BID_FREQ_CODE.DEFAULT_VALUE,'-1'),
9767 '-1', 'MULTIPLE_BIDS_ALLOWED',
9768 R_BID_FREQ_CODE.DEFAULT_VALUE),
9769 R_BID_FREQ_CODE.FIXED_VALUE))) BID_FREQUENCY_CODE,
9770 --
9771 -- The FULL_QUANTITY_BID_CODE code will be defaulted to PARTIAL_QTY_BIDS_ALLOWED
9772 -- when it is not applicable to a document. It will be carried over if it is displayable in the
9773 -- destination document.
9774 -- Otherwise it is defaulted to the fixed value of the business rule
9775 -- if there is any (if not displayable)
9776 -- Or else it is carried forwarded and defaulted to default value
9777 -- if the source document value is NULL
9778 --
9779 decode (R_BID_QTY_SCOPE.VALIDITY_FLAG,
9780 'N','FULL_QTY_BIDS_REQD',
9781 'Y', decode( R_BID_QTY_SCOPE.display_flag,
9782 'Y', NVL(A.FULL_QUANTITY_BID_CODE, R_BID_QTY_SCOPE.DEFAULT_VALUE),
9783 'N', decode(NVL(R_BID_QTY_SCOPE.FIXED_VALUE,'-1'),
9784 '-1', decode(NVL(R_BID_QTY_SCOPE.DEFAULT_VALUE,'-1'),
9785 '-1', 'FULL_QTY_BIDS_REQD',
9786 R_BID_QTY_SCOPE.DEFAULT_VALUE),
9787 R_BID_QTY_SCOPE.FIXED_VALUE))) FULL_QUANTITY_BID_CODE,
9788 --
9789 -- The RANK_INDICATOR flag will be defaulted to NONE if not applicable to
9790 -- a doctype_id. It keeps the source document value if it is Amendment.
9791 -- Otherwise it is always set as per the Admin setting. If the doctype is RFI
9792 -- then the value is set to NONE
9793 --
9794 decode (R_RANK_INDICATOR.VALIDITY_FLAG,
9795 'N','NONE',
9796 'Y', A.RANK_INDICATOR) RANK_INDICATOR,
9797 --
9798 -- The SHOW_BIDDER_SCORES code will be carried over.
9799 -- It will be changed to NONE if the BID_RANKING is PRICE_ONLY.
9800 -- But this logic is implemented in the COPY_HEADER_BASIC procedure.
9801 -- It is set to NONE if the destination if RFI later on this procedure.
9802 --
9803 A.SHOW_BIDDER_SCORES ,
9804 --
9805 --
9806 -- The PF_TYPE_ALLOWED column will be defaulted to NONE if not applicable to
9807 -- a doctype_id.
9808 -- If applicable, use the source value if control was applicable in source
9809 -- Otherwise set as per the Admin setting.
9810 --
9811 decode (R_ALLOW_PE.VALIDITY_FLAG,
9812 'N','NONE',
9813 'Y', decode(g_neg_style_control.price_element_enabled_flag,
9814 'N', 'NONE', A.PF_TYPE_ALLOWED)) PF_TYPE_ALLOWED,
9815 --
9816 --
9817 -- There is no direct bizrule for PRICE_DRIVEN_AUCTION_FLAG. Hence it is
9818 -- indirectly populated from BID_CHANGE_TYPE bizrule. Defaulted to N if
9819 -- not applicable for any doctype. It is inherited from the last document if
9820 -- the doctype_ids are same. It is carried over from last document if
9821 -- it is still applicable for the target doctype_id and the target BID_RANKING
9822 -- is not MULTI_ATTRIBUTE_SCORING.
9823 --
9824 decode( p_doctype_id,
9825 p_source_doctype_id, A.PRICE_DRIVEN_AUCTION_FLAG,
9826 decode(R_MIN_BID_CHANGE_TYPE.VALIDITY_FLAG,
9827 'N', 'N',
9828 decode (BID_RANKING,
9829 'MULTI_ATTRIBUTE_SCORING', 'N',
9830 A.PRICE_DRIVEN_AUCTION_FLAG))) PRICE_DRIVEN_AUCTION_FLAG,
9831 --
9832 -- Defaulted to AMOUNT if not applicable for any doctype.
9833 -- The value of MIN_BID_CHANGE_TYPE is always taken from the bizrule
9834 -- only if the source and target doctype_id are different. Set to AMOUNT
9835 -- if it is applicable and there is no bizrule dictated value
9836 --
9837 decode (R_MIN_BID_CHANGE_TYPE.VALIDITY_FLAG,
9838 'N','AMOUNT',
9839 'Y', decode( R_MIN_BID_CHANGE_TYPE.display_flag,
9840 'Y', NVL(A.MIN_BID_CHANGE_TYPE,'AMOUNT'),
9841 'N', decode(NVL(R_MIN_BID_CHANGE_TYPE.FIXED_VALUE,'-1'),
9842 '-1', decode(NVL(R_MIN_BID_CHANGE_TYPE.DEFAULT_VALUE,'-1'),
9843 '-1', 'AMOUNT',
9844 R_MIN_BID_CHANGE_TYPE.DEFAULT_VALUE),
9845 R_MIN_BID_CHANGE_TYPE.FIXED_VALUE))) MIN_BID_CHANGE_TYPE,
9846 decode (R_PAY_TERMS.VALIDITY_FLAG,
9847 'N',NULL,
9848 'Y', decode(R_PAY_TERMS.display_flag,
9849 'Y', A.PAYMENT_TERMS_ID,
9850 'N', decode(NVL(R_PAY_TERMS.FIXED_VALUE,'-1'),
9851 '-1', decode(NVL(R_PAY_TERMS.DEFAULT_VALUE,'-1'),
9852 '-1', NULL,
9853 R_PAY_TERMS.DEFAULT_VALUE),
9854 R_PAY_TERMS.FIXED_VALUE))) PAYMENT_TERMS_ID,
9855 --
9856 -- Defaulted to N if validity flag is NULL.
9857 -- The validity flag is used to decide if the price element
9858 -- is allowed or not
9859 --
9860 decode (nvl(R_ALLOW_PE.VALIDITY_FLAG , 'N'),
9861 'N','N',
9862 'Y') ALLOW_PRICE_ELEMENT,
9863 --
9864 -- Defaulted to N if not applicable for any doctype.
9865 -- if it is applicable and if is displayable then it is set to Y. It is set to N
9866 -- otherwise
9867 --
9868 decode (R_NO_PRICE_QTY.VALIDITY_FLAG,
9869 'N','N',
9870 'Y', decode(NVL(R_NO_PRICE_QTY.DISPLAY_FLAG,'N'),
9871 'Y','Y',
9872 'N')) NO_PRICE_QTY_ITEMS_POSSIBLE,
9873 --
9874 -- Defaulted to N if not applicable for any doctype.
9875 -- if it is applicable and if is displayable then it is set to Y. It is set to N
9876 -- otherwise for all price and price break
9877 --
9878 decode (R_START_PRICE.VALIDITY_FLAG,
9879 'N','N',
9880 'Y', decode(R_START_PRICE.DISPLAY_FLAG,
9881 'Y','Y',
9882 'N')) START_PRICE,
9883 decode (R_RESERVE_PRICE.VALIDITY_FLAG,
9884 'N','N',
9885 'Y', decode(R_RESERVE_PRICE.DISPLAY_FLAG,
9886 'Y','Y',
9887 'N')) RESERVE_PRICE,
9888 decode (R_TARGET_PRICE.VALIDITY_FLAG,
9889 'N','N',
9890 'Y', decode(R_TARGET_PRICE.DISPLAY_FLAG,
9891 'Y','Y',
9892 'N')) TARGET_PRICE,
9893 decode (R_CURRENT_PRICE.VALIDITY_FLAG,
9894 'N','N',
9895 'Y', decode(R_CURRENT_PRICE.DISPLAY_FLAG,
9896 'Y','Y',
9897 'N')) CURRENT_PRICE,
9898 decode (R_BEST_PRICE.VALIDITY_FLAG,
9899 'N','N',
9900 'Y', decode(R_BEST_PRICE.DISPLAY_FLAG,
9901 'Y','Y',
9902 'N')) BEST_PRICE,
9903 decode (R_PRICE_BREAK.VALIDITY_FLAG,
9904 'N','N',
9905 'Y', decode(R_PRICE_BREAK.DISPLAY_FLAG,
9906 'Y','Y',
9907 'N')) PRICE_BREAK,
9908 decode (R_ALLOW_PRICE_DIFF.VALIDITY_FLAG,
9909 'N','N',
9910 'Y', decode(R_ALLOW_PRICE_DIFF.DISPLAY_FLAG,
9911 'Y','Y',
9912 'N')) ALLOW_PRICE_DIFFERENTIAL,
9913 NVL(A.NUMBER_OF_BIDS,0),
9914 --
9915 -- Just check the Fixed Value of the AWARD_TYPE bizrule for the source (not
9916 -- the current one) document type
9917 --
9918 R_AWARD_TYPE.FIXED_VALUE,
9919 A.CURRENCY_CODE,
9920 A.RATE_TYPE,
9921 A.FIRST_LINE_CLOSE_DATE,
9922 A.STAGGERED_CLOSING_INTERVAL,
9923 A.QTY_PRICE_TIERS_ENABLED_FLAG,
9924 A.PRICE_TIERS_INDICATOR
9925 INTO
9926 t_record.BID_VISIBILITY_CODE,
9927 t_record.BID_SCOPE_CODE,
9928 t_record.CONTRACT_TYPE,
9929 t_record.PO_START_DATE,
9930 t_record.PO_END_DATE,
9931 t_record.PO_AGREED_AMOUNT,
9932 t_record.MANUAL_CLOSE_FLAG,
9933 t_record.MANUAL_EXTEND_FLAG,
9934 t_record.SHOW_BIDDER_NOTES,
9935 t_record.MULTIPLE_ROUNDS_FLAG,
9936 t_record.AUTO_EXTEND_FLAG,
9937 t_record.AUTO_EXTEND_ALL_LINES_FLAG,
9938 t_record.AUTO_EXTEND_MIN_TRIGGER_RANK,
9939 t_record.AUTO_EXTEND_DURATION,
9940 t_record.AUTO_EXTEND_TYPE_FLAG,
9941 t_record.GLOBAL_AGREEMENT_FLAG,
9942 t_record.PO_MIN_REL_AMOUNT,
9943 t_record.EVENT_ID,
9944 t_record.EVENT_TITLE,
9945 t_record.BID_RANKING,
9946 t_record.BILL_TO_LOCATION_ID,
9947 t_record.SHIP_TO_LOCATION_ID,
9948 t_record.CARRIER_CODE,
9949 t_record.FREIGHT_TERMS_CODE,
9950 t_record.FOB_CODE,
9951 t_record.BID_LIST_TYPE,
9952 t_record.BID_FREQUENCY_CODE,
9953 t_record.FULL_QUANTITY_BID_CODE,
9954 t_record.RANK_INDICATOR,
9955 t_record.SHOW_BIDDER_SCORES,
9956 t_record.PF_TYPE_ALLOWED,
9957 t_record.PRICE_DRIVEN_AUCTION_FLAG,
9958 t_record.MIN_BID_CHANGE_TYPE,
9959 t_record.PAYMENT_TERMS_ID,
9960 t_record.ALLOW_PRICE_ELEMENT,
9961 t_record.NO_PRICE_QTY_ITEMS_POSSIBLE,
9962 t_record.START_PRICE,
9963 t_record.RESERVE_PRICE,
9964 t_record.TARGET_PRICE,
9965 t_record.CURRENT_PRICE,
9966 t_record.BEST_PRICE,
9967 t_record.PRICE_BREAK,
9968 t_record.ALLOW_PRICE_DIFFERENTIAL,
9969 t_record.NUMBER_OF_BIDS,
9970 t_record.AWARD_TYPE_RULE_FIXED_VALUE,
9971 t_record.CURRENCY_CODE,
9972 t_record.RATE_TYPE,
9973 t_record.FIRST_LINE_CLOSE_DATE,
9974 t_record.STAGGERED_CLOSING_INTERVAL,
9975 t_record.QTY_PRICE_TIERS_ENABLED_FLAG,
9976 t_record.PRICE_TIERS_INDICATOR
9977 FROM PON_AUCTION_HEADERS_ALL A,
9978 PON_AUC_BIZRULES BID_VISIB,
9979 PON_AUC_DOCTYPE_RULES R_BID_VISIB,
9980 PON_AUC_BIZRULES BID_SCOPE,
9981 PON_AUC_DOCTYPE_RULES R_BID_SCOPE,
9982 PON_AUC_BIZRULES CNTRCT,
9983 PON_AUC_DOCTYPE_RULES R_CNTRCT,
9984 PON_AUC_DOCTYPE_RULES R_OLD_CNTRCT,
9985 PON_AUC_BIZRULES AGRMNT_DATE,
9986 PON_AUC_DOCTYPE_RULES R_AGRMNT_DATE,
9987 PON_AUC_BIZRULES AGRMNT_END_DATE,
9988 PON_AUC_DOCTYPE_RULES R_AGRMNT_END_DATE,
9989 PON_AUC_BIZRULES AGRMNT_AMNT,
9990 PON_AUC_DOCTYPE_RULES R_AGRMNT_AMNT,
9991 PON_AUC_BIZRULES MAN_CLOSE,
9992 PON_AUC_DOCTYPE_RULES R_MAN_CLOSE,
9993 PON_AUC_BIZRULES MAN_EXTND,
9994 PON_AUC_DOCTYPE_RULES R_MAN_EXTND,
9995 PON_AUC_BIZRULES SHOW_NOTES,
9996 PON_AUC_DOCTYPE_RULES R_SHOW_NOTES,
9997 PON_AUC_BIZRULES MULI_ROUND,
9998 PON_AUC_DOCTYPE_RULES R_MULI_ROUND,
9999 PON_AUC_BIZRULES AUTO_EXTND,
10000 PON_AUC_DOCTYPE_RULES R_AUTO_EXTND,
10001 PON_AUC_BIZRULES AUTO_XTN_ALL,
10002 PON_AUC_DOCTYPE_RULES R_AUTO_XTN_ALL,
10003 PON_AUC_BIZRULES AUTO_XTN_LENGTH,
10004 PON_AUC_DOCTYPE_RULES R_AUTO_XTN_LENGTH,
10005 PON_AUC_BIZRULES AUTO_XTN_TYPE,
10006 PON_AUC_DOCTYPE_RULES R_AUTO_XTN_TYPE,
10007 PON_AUC_BIZRULES GLBL_AGREMNT,
10008 PON_AUC_DOCTYPE_RULES R_GLBL_AGREMNT,
10009 PON_AUC_BIZRULES MIN_REL_AMT,
10010 PON_AUC_DOCTYPE_RULES R_MIN_REL_AMT,
10011 PON_AUC_BIZRULES ALLOW_EVENT,
10012 PON_AUC_DOCTYPE_RULES R_ALLOW_EVENT,
10013 PON_AUC_BIZRULES BID_RANK,
10014 PON_AUC_DOCTYPE_RULES R_BID_RANK,
10015 PON_AUC_BIZRULES BILL_LOC,
10016 PON_AUC_DOCTYPE_RULES R_BILL_LOC,
10017 PON_AUC_DOCTYPE_RULES R_OLD_BILL_LOC,
10018 PON_AUC_BIZRULES SHIP_LOC,
10019 PON_AUC_DOCTYPE_RULES R_SHIP_LOC,
10020 PON_AUC_DOCTYPE_RULES R_OLD_SHIP_LOC,
10021 PON_AUC_BIZRULES CARRIER,
10022 PON_AUC_DOCTYPE_RULES R_CARRIER,
10023 PON_AUC_BIZRULES FRIEIGHT_TERMS,
10024 PON_AUC_DOCTYPE_RULES R_FRIEIGHT_TERMS,
10025 PON_AUC_BIZRULES FOB_CODE,
10026 PON_AUC_DOCTYPE_RULES R_FOB_CODE,
10027 PON_AUC_BIZRULES BID_LIST,
10028 PON_AUC_DOCTYPE_RULES R_BID_LIST,
10029 PON_AUC_BIZRULES BID_FREQ_CODE,
10030 PON_AUC_DOCTYPE_RULES R_BID_FREQ_CODE,
10031 PON_AUC_BIZRULES BID_QTY_SCOPE,
10032 PON_AUC_DOCTYPE_RULES R_BID_QTY_SCOPE,
10033 PON_AUC_BIZRULES RANK_INDICATOR,
10034 PON_AUC_DOCTYPE_RULES R_RANK_INDICATOR,
10035 PON_AUC_BIZRULES SHOW_SCORE,
10036 PON_AUC_DOCTYPE_RULES R_SHOW_SCORE,
10037 PON_AUC_BIZRULES MIN_BID_CHANGE_TYPE,
10038 PON_AUC_DOCTYPE_RULES R_MIN_BID_CHANGE_TYPE,
10039 PON_AUC_BIZRULES PAY_TERMS,
10040 PON_AUC_DOCTYPE_RULES R_PAY_TERMS,
10041 PON_AUC_BIZRULES ALLOW_PE,
10042 PON_AUC_DOCTYPE_RULES R_ALLOW_PE,
10043 PON_AUC_BIZRULES NO_PRICE_QTY,
10044 PON_AUC_DOCTYPE_RULES R_NO_PRICE_QTY,
10045 PON_AUC_BIZRULES START_PRICE,
10046 PON_AUC_DOCTYPE_RULES R_START_PRICE,
10047 PON_AUC_BIZRULES RESERVE_PRICE,
10048 PON_AUC_DOCTYPE_RULES R_RESERVE_PRICE,
10049 PON_AUC_BIZRULES TARGET_PRICE,
10050 PON_AUC_DOCTYPE_RULES R_TARGET_PRICE,
10051 PON_AUC_BIZRULES CURRENT_PRICE,
10052 PON_AUC_DOCTYPE_RULES R_CURRENT_PRICE,
10053 PON_AUC_BIZRULES BEST_PRICE,
10054 PON_AUC_DOCTYPE_RULES R_BEST_PRICE,
10055 PON_AUC_BIZRULES PRICE_BREAK,
10056 PON_AUC_DOCTYPE_RULES R_PRICE_BREAK,
10057 PON_AUC_BIZRULES ALLOW_PRICE_DIFF,
10058 PON_AUC_DOCTYPE_RULES R_ALLOW_PRICE_DIFF,
10059 PON_AUC_BIZRULES AWARD_TYPE,
10060 PON_AUC_DOCTYPE_RULES R_AWARD_TYPE
10061 WHERE A.AUCTION_HEADER_ID = p_source_auction_header_id
10062 AND R_BID_VISIB.DOCTYPE_ID = p_doctype_id
10063 AND BID_VISIB.BIZRULE_ID = R_BID_VISIB.BIZRULE_ID
10064 AND BID_VISIB.NAME = 'BID_VISIBILITY'
10065 AND R_BID_SCOPE.DOCTYPE_ID = p_doctype_id
10066 AND BID_SCOPE.BIZRULE_ID = R_BID_SCOPE.BIZRULE_ID
10067 AND BID_SCOPE.NAME = 'BID_SCOPE'
10068 AND R_CNTRCT.DOCTYPE_ID = p_doctype_id
10069 AND CNTRCT.BIZRULE_ID = R_CNTRCT.BIZRULE_ID
10070 AND CNTRCT.NAME = 'CONTRACT_TYPE'
10071 AND R_OLD_CNTRCT.DOCTYPE_ID = p_source_doctype_id
10072 AND R_OLD_CNTRCT.BIZRULE_ID = CNTRCT.BIZRULE_ID
10073 AND BID_SCOPE.NAME = 'BID_SCOPE'
10074 AND R_AGRMNT_DATE.DOCTYPE_ID = p_doctype_id
10075 AND AGRMNT_DATE.BIZRULE_ID = R_AGRMNT_DATE.BIZRULE_ID
10076 AND AGRMNT_DATE.NAME = 'AGREEMENT_START_DATE'
10077 AND R_AGRMNT_END_DATE.DOCTYPE_ID = p_doctype_id
10078 AND AGRMNT_END_DATE.BIZRULE_ID = R_AGRMNT_END_DATE.BIZRULE_ID
10079 AND AGRMNT_END_DATE.NAME = 'AGREEMENT_END_DATE'
10080 AND R_AGRMNT_AMNT.DOCTYPE_ID = p_doctype_id
10081 AND AGRMNT_AMNT.BIZRULE_ID = R_AGRMNT_AMNT.BIZRULE_ID
10082 AND AGRMNT_AMNT.NAME = 'AGREEMENT_AMOUNT'
10083 AND R_MAN_CLOSE.DOCTYPE_ID = p_doctype_id
10084 AND MAN_CLOSE.BIZRULE_ID = R_MAN_CLOSE.BIZRULE_ID
10085 AND MAN_CLOSE.NAME = 'MANUAL_CLOSE'
10086 AND R_MAN_EXTND.DOCTYPE_ID = p_doctype_id
10087 AND MAN_EXTND.BIZRULE_ID = R_MAN_EXTND.BIZRULE_ID
10088 AND MAN_EXTND.NAME = 'MANUAL_EXTEND'
10089 AND R_SHOW_NOTES.DOCTYPE_ID = p_doctype_id
10090 AND SHOW_NOTES.BIZRULE_ID = R_SHOW_NOTES.BIZRULE_ID
10091 AND SHOW_NOTES.NAME = 'SHOW_BIDDER_NOTES'
10092 AND R_MULI_ROUND.DOCTYPE_ID = p_doctype_id
10093 AND MULI_ROUND.BIZRULE_ID = R_MULI_ROUND.BIZRULE_ID
10094 AND MULI_ROUND.NAME = 'ALLOW_MULTIPLE_ROUNDS'
10095 AND R_AUTO_EXTND.DOCTYPE_ID = p_doctype_id
10096 AND AUTO_EXTND.BIZRULE_ID = R_AUTO_EXTND.BIZRULE_ID
10097 AND AUTO_EXTND.NAME = 'AUTO_EXTENSION'
10098 AND R_AUTO_XTN_ALL.DOCTYPE_ID = p_doctype_id
10099 AND AUTO_XTN_ALL.BIZRULE_ID = R_AUTO_XTN_ALL.BIZRULE_ID
10100 AND AUTO_XTN_ALL.NAME = 'AUTO_EXTEND_ALLLINE'
10101 AND R_AUTO_XTN_LENGTH.DOCTYPE_ID = p_doctype_id
10102 AND AUTO_XTN_LENGTH.BIZRULE_ID = R_AUTO_XTN_LENGTH.BIZRULE_ID
10103 AND AUTO_XTN_LENGTH.NAME = 'AUTO_EXTEND_DURATION'
10104 AND R_AUTO_XTN_TYPE.DOCTYPE_ID = p_doctype_id
10105 AND AUTO_XTN_TYPE.BIZRULE_ID = R_AUTO_XTN_TYPE.BIZRULE_ID
10106 AND AUTO_XTN_TYPE.NAME = 'AUTO_EXTEND_START_TIME'
10107 AND R_GLBL_AGREMNT.DOCTYPE_ID = p_doctype_id
10108 AND GLBL_AGREMNT.BIZRULE_ID = R_GLBL_AGREMNT.BIZRULE_ID
10109 AND GLBL_AGREMNT.NAME = 'GLOBAL_AGREEMENT'
10110 AND R_MIN_REL_AMT.DOCTYPE_ID = p_doctype_id
10111 AND MIN_REL_AMT.BIZRULE_ID = R_MIN_REL_AMT.BIZRULE_ID
10112 AND MIN_REL_AMT.NAME = 'MIN_RELEASE_AMOUNT'
10113 AND R_ALLOW_EVENT.DOCTYPE_ID = p_doctype_id
10114 AND ALLOW_EVENT.BIZRULE_ID = R_ALLOW_EVENT.BIZRULE_ID
10115 AND ALLOW_EVENT.NAME = 'ALLOW_EVENTS'
10116 AND R_BID_RANK.DOCTYPE_ID = p_doctype_id
10117 AND BID_RANK.BIZRULE_ID = R_BID_RANK.BIZRULE_ID
10118 AND BID_RANK.NAME = 'BID_RANKING'
10119 AND R_BILL_LOC.DOCTYPE_ID = p_doctype_id
10120 AND BILL_LOC.BIZRULE_ID = R_BILL_LOC.BIZRULE_ID
10121 AND BILL_LOC.NAME = 'BILL_TO_LOCATION'
10122 AND R_OLD_BILL_LOC.DOCTYPE_ID = p_source_doctype_id
10123 AND R_OLD_BILL_LOC.BIZRULE_ID = BILL_LOC.BIZRULE_ID
10124 AND R_SHIP_LOC.DOCTYPE_ID = p_doctype_id
10125 AND SHIP_LOC.BIZRULE_ID = R_SHIP_LOC.BIZRULE_ID
10126 AND SHIP_LOC.NAME = 'SHIP_TO_LOCATION'
10127 AND R_OLD_SHIP_LOC.DOCTYPE_ID = p_source_doctype_id
10128 AND R_OLD_SHIP_LOC.BIZRULE_ID = SHIP_LOC.BIZRULE_ID
10129 AND R_CARRIER.DOCTYPE_ID = p_doctype_id
10130 AND CARRIER.BIZRULE_ID = R_CARRIER.BIZRULE_ID
10131 AND CARRIER.NAME = 'FREIGHT_CARRIER'
10132 AND R_FRIEIGHT_TERMS.DOCTYPE_ID = p_doctype_id
10133 AND FRIEIGHT_TERMS.BIZRULE_ID = R_FRIEIGHT_TERMS.BIZRULE_ID
10134 AND FRIEIGHT_TERMS.NAME = 'FREIGHT_TERMS'
10135 AND R_FOB_CODE.DOCTYPE_ID = p_doctype_id
10136 AND FOB_CODE.BIZRULE_ID = R_FOB_CODE.BIZRULE_ID
10137 AND FOB_CODE.NAME = 'FOB_TERMS'
10138 AND R_BID_LIST.DOCTYPE_ID = p_doctype_id
10139 AND BID_LIST.BIZRULE_ID = R_BID_LIST.BIZRULE_ID
10140 AND BID_LIST.NAME = 'BID_LIST_TYPE'
10141 AND R_BID_FREQ_CODE.DOCTYPE_ID = p_doctype_id
10142 AND BID_FREQ_CODE.BIZRULE_ID = R_BID_FREQ_CODE.BIZRULE_ID
10143 AND BID_FREQ_CODE.NAME = 'BID_FREQUENCY'
10144 AND R_BID_QTY_SCOPE.DOCTYPE_ID = p_doctype_id
10145 AND BID_QTY_SCOPE.BIZRULE_ID = R_BID_QTY_SCOPE.BIZRULE_ID
10146 AND BID_QTY_SCOPE.NAME = 'BID_QUANTITY_SCOPE'
10147 AND R_RANK_INDICATOR.DOCTYPE_ID = p_doctype_id
10148 AND RANK_INDICATOR.BIZRULE_ID = R_RANK_INDICATOR.BIZRULE_ID
10149 AND RANK_INDICATOR.NAME = 'RANK_INDICATOR'
10150 AND R_SHOW_SCORE.DOCTYPE_ID = p_doctype_id
10151 AND SHOW_SCORE.BIZRULE_ID = R_SHOW_SCORE.BIZRULE_ID
10152 AND SHOW_SCORE.NAME = 'RANK_INDICATOR'
10153 AND R_MIN_BID_CHANGE_TYPE.DOCTYPE_ID = p_doctype_id
10154 AND MIN_BID_CHANGE_TYPE.BIZRULE_ID = R_MIN_BID_CHANGE_TYPE.BIZRULE_ID
10155 AND MIN_BID_CHANGE_TYPE.NAME = 'BID_CHANGE_TYPE'
10156 AND R_PAY_TERMS.DOCTYPE_ID = p_doctype_id
10157 AND PAY_TERMS.BIZRULE_ID = R_PAY_TERMS.BIZRULE_ID
10158 AND PAY_TERMS.NAME = 'PAYMENT_TERMS'
10159 AND R_ALLOW_PE.DOCTYPE_ID = p_doctype_id
10160 AND ALLOW_PE.BIZRULE_ID = R_ALLOW_PE.BIZRULE_ID
10161 AND ALLOW_PE.NAME = 'ALLOW_PRICE_ELEMENT'
10162 AND R_NO_PRICE_QTY.DOCTYPE_ID = p_doctype_id
10163 AND NO_PRICE_QTY.BIZRULE_ID = R_NO_PRICE_QTY.BIZRULE_ID
10164 AND NO_PRICE_QTY.NAME = 'NO_PRICE_QUANTITY_ITEMS'
10165 AND R_START_PRICE.DOCTYPE_ID = p_doctype_id
10166 AND START_PRICE.BIZRULE_ID = R_START_PRICE.BIZRULE_ID
10167 AND START_PRICE.NAME = 'START_PRICE'
10168 AND R_RESERVE_PRICE.DOCTYPE_ID = p_doctype_id
10169 AND RESERVE_PRICE.BIZRULE_ID = R_RESERVE_PRICE.BIZRULE_ID
10170 AND RESERVE_PRICE.NAME = 'RESERVE_PRICE'
10171 AND R_TARGET_PRICE.DOCTYPE_ID = p_doctype_id
10172 AND TARGET_PRICE.BIZRULE_ID = R_TARGET_PRICE.BIZRULE_ID
10173 AND TARGET_PRICE.NAME = 'TARGET_PRICE'
10174 AND R_CURRENT_PRICE.DOCTYPE_ID = p_doctype_id
10175 AND CURRENT_PRICE.BIZRULE_ID = R_CURRENT_PRICE.BIZRULE_ID
10176 AND CURRENT_PRICE.NAME = 'CURRENT_PRICE'
10177 AND R_BEST_PRICE.DOCTYPE_ID = p_doctype_id
10178 AND BEST_PRICE.BIZRULE_ID = R_BEST_PRICE.BIZRULE_ID
10179 AND BEST_PRICE.NAME = 'BEST_PRICE'
10180 AND R_PRICE_BREAK.DOCTYPE_ID = p_doctype_id
10181 AND PRICE_BREAK.BIZRULE_ID = R_PRICE_BREAK.BIZRULE_ID
10182 AND PRICE_BREAK.NAME = 'PRICE_BREAK'
10183 AND R_ALLOW_PRICE_DIFF.DOCTYPE_ID = p_doctype_id
10184 AND ALLOW_PRICE_DIFF.BIZRULE_ID = R_ALLOW_PRICE_DIFF.BIZRULE_ID
10185 AND ALLOW_PRICE_DIFF.NAME = 'ALLOW_PRICE_DIFFERENTIAL'
10186 AND R_AWARD_TYPE.DOCTYPE_ID = p_source_doctype_id
10187 AND AWARD_TYPE.BIZRULE_ID = R_AWARD_TYPE.BIZRULE_ID
10188 AND AWARD_TYPE.NAME = 'AWARD_TYPE' ;
10189
10190 EXCEPTION --} End of Begin block
10191 WHEN OTHERS THEN
10192
10193 -- Log Error
10194 LOG_MESSAGE('copy_negotiation','Could not find all the bizrules. Please check the bizrule data.');
10195
10196 -- The way I am adding this error may get changed in the future.
10197 -- So, please be aware of that
10198 --
10199 FND_MESSAGE.SET_NAME('PON','PON_INVALID_BIZ_RULE');
10200 FND_MSG_PUB.ADD;
10201 RAISE FND_API.G_EXC_ERROR;
10202 END;
10203
10204 --
10205 -- If we are copying a draft created from PO then Currency Code can be null
10206 -- Set it to default value instead
10207 --
10208 IF (p_copy_type = g_draft_neg_copy) THEN
10209 IF (t_record.CURRENCY_CODE IS NULL) THEN
10210
10211 BEGIN
10212
10213 SELECT DISTINCT
10214 PSP.DEFAULT_RATE_TYPE,
10215 SOB.CURRENCY_CODE
10216 INTO
10217 l_default_rate_type,
10218 l_default_currency_code
10219 FROM PO_SYSTEM_PARAMETERS_ALL PSP,
10220 FINANCIALS_SYSTEM_PARAMS_ALL FSP,
10221 GL_SETS_OF_BOOKS SOB
10222 WHERE PSP.ORG_ID = FSP.ORG_ID (+)
10223 AND FSP.SET_OF_BOOKS_ID = SOB.SET_OF_BOOKS_ID (+)
10224 AND PSP.ORG_ID = FND_PROFILE.VALUE('ORG_ID');
10225
10226 EXCEPTION
10227 WHEN OTHERS THEN
10228 -- If control is here then either the Org Id is not properly set
10229 -- or some setup problem is present in PO tables
10230 -- thus setting default rate to user rate and currency to USD
10231 -- which will be never executed in any normal scenario
10232 l_default_currency_code := 'USD';
10233 l_default_rate_type := 'User';
10234
10235 END;
10236
10237 t_record.CURRENCY_CODE := l_default_currency_code;
10238 t_record.RATE_TYPE := l_default_rate_type;
10239 END IF;
10240
10241 END IF;
10242
10243 --
10244 -- Cross Copy Logic For Lines
10245 --
10246
10247 --
10248 -- Set SHOW_BIDDER_SCORES to NONE when cross copy to is RFI
10249 -- Set GLOBAL_AGREEMENT_FLAG to NULL in that case
10250 --
10251 IF (l_rfi_doctype_id = p_doctype_id AND
10252 p_doctype_id <> p_source_doctype_id) THEN
10253 t_record.SHOW_BIDDER_SCORES := 'NONE';
10254 t_record.GLOBAL_AGREEMENT_FLAG := NULL;
10255 g_err_loc := '1.1.3 It is a copy to RFI';
10256 END IF;
10257
10258 --
10259 -- Check if the source document was RFI and has got some Temp
10260 -- Labor line type lines. Set the contract to BPA in that case
10261 --
10262 IF (l_rfi_doctype_id = p_source_doctype_id AND
10263 p_doctype_id <> p_source_doctype_id) THEN
10264
10265 SELECT COUNT(1)
10266 INTO
10267 l_temp_labor_count
10268 FROM PON_AUCTION_ITEM_PRICES_ALL
10269 WHERE PURCHASE_BASIS = 'TEMP LABOR'
10270 AND AUCTION_HEADER_ID = p_source_auction_header_id;
10271
10272 IF (l_temp_labor_count > 0) THEN
10273 t_record.CONTRACT_TYPE := 'BLANKET';
10274 t_record.GLOBAL_AGREEMENT_FLAG := 'Y';
10275 END IF;
10276
10277 END IF;
10278
10279 --
10280 -- This is a safeguard for setting BPA related attributes to
10281 -- NULL.
10282 -- The Blanket related fields are set to NULL when it is
10283 -- a standard PO (setOutcomeAndDependentFields logic
10284 -- from AuctionHeadersALLEOImpl)
10285 --
10286 IF (t_record.CONTRACT_TYPE = 'STANDARD' ) THEN
10287 -- Bug 3973611, keep the GA Flag to N in case of SPO
10288 t_record.GLOBAL_AGREEMENT_FLAG := 'N';
10289 t_record.PO_START_DATE := NULL;
10290 t_record.PO_END_DATE := NULL;
10291 t_record.PO_AGREED_AMOUNT := NULL;
10292 t_record.PO_MIN_REL_AMOUNT := NULL;
10293 END IF;
10294
10295 --
10296 -- The Rank Indicator and Price Factor should be set to sysadmin set value for RFI to XXX
10297 -- Copy. It should retain the old value otherwise.
10298 -- The price tier indicator should be set to null to fire the defaulting action for RFI to XXX
10299 -- For XXX to RFI all the three attribute should be set to NONE
10300 --
10301 IF (l_rfi_doctype_id = p_source_doctype_id AND
10302 p_doctype_id <> p_source_doctype_id) THEN
10303 t_record.RANK_INDICATOR := l_pref_rank_indicator;
10304 t_record.PF_TYPE_ALLOWED := l_pref_pf_type;
10305 t_record.PRICE_TIERS_INDICATOR := null;
10306 END IF;
10307
10308 -- No Rank Indicator and Price Factor for RFI
10309 IF (l_rfi_doctype_id = p_doctype_id ) THEN
10310 t_record.RANK_INDICATOR := 'NONE'; t_record.PF_TYPE_ALLOWED := 'NONE';
10311 END IF;
10312
10313 -- No Price Tiers for RFI. If the destination doctype id is RFI
10314 -- make the qty based price tiers enabled flag to N
10315
10316 --Also there won't be price tiers if the style of the destination
10317 --auction doesn't allow quantity tiers.
10318 IF ((l_rfi_doctype_id = p_doctype_id ) OR (g_neg_style_control.qty_price_tiers_enabled_flag = 'N'
10319 AND t_record.PRICE_TIERS_INDICATOR = 'QUANTITY_BASED'))THEN
10320 t_record.QTY_PRICE_TIERS_ENABLED_FLAG := 'N';
10321 t_record.PRICE_TIERS_INDICATOR := null;
10322 END IF;
10323
10324 RETURN t_record;
10325 END;
10326 --} End of GET_HDR_CROSS_COPY_DATA
10327
10328
10329 PROCEDURE COPY_CONTRACTS_ATTACHMENTS (
10330 p_source_auction_header_id IN NUMBER,
10331 p_auction_header_id IN NUMBER,
10332 p_tp_id IN NUMBER,
10333 p_tp_contact_id IN NUMBER,
10334 p_tp_name IN VARCHAR2,
10335 p_tpc_name IN VARCHAR2,
10336 p_user_id IN NUMBER,
10337 p_source_doctype_id IN NUMBER,
10338 p_doctype_id IN NUMBER,
10339 p_copy_type IN VARCHAR2,
10340 p_org_id IN NUMBER,
10341 p_is_award_approval_reqd IN VARCHAR2,
10342 p_retain_clause IN VARCHAR2,
10343 p_update_clause IN VARCHAR2,
10344 p_retain_attachments IN VARCHAR2,
10345 p_contracts_doctype IN VARCHAR2,
10346 p_contract_type IN VARCHAR2,
10347 p_document_number IN VARCHAR2
10348 )
10349 IS
10350 l_source_doc_id NUMBER;
10351 l_auction_header_id NUMBER;
10352 l_contracts_doctype VARCHAR2(60);
10353 l_site_id PON_AUCTION_HEADERS_ALL.TRADING_PARTNER_ID%TYPE;
10354 l_auc_contact_id PON_AUCTION_HEADERS_ALL.TRADING_PARTNER_CONTACT_ID%TYPE;
10355 l_keep_version VARCHAR2(1);
10356 l_return_status VARCHAR2(1);
10357 l_msg_data VARCHAR2(400);
10358 l_msg_count NUMBER;
10359 l_error_code VARCHAR2(100);
10360 l_error_message VARCHAR2(400);
10361 l_is_reset_contracts VARCHAR2(1);
10362 l_copy_for_amendment VARCHAR2(1);
10363 l_po_doctype VARCHAR2(50);
10364 l_conterms_exist_flag pon_auction_headers_all.conterms_exist_flag%TYPE;
10365 l_copy_abstract_yn VARCHAR2(1);
10366 l_old_org_id NUMBER;
10367 l_old_policy VARCHAR2(2);
10368
10369 BEGIN --{ Start of COPY_CONTRACTS_ATTACHMENTS
10370
10371 l_auction_header_id := p_auction_header_id;
10372 --
10373 -- Default the value of l_keep_version
10374 --
10375 IF (p_update_clause = 'Y') THEN
10376 l_keep_version := 'N';
10377 ELSE
10378 l_keep_version := 'Y';
10379 END IF;
10380
10381 --
10382 -- For Amendment we have to keep this flag to Y as per the
10383 -- AuctionHeadersALLEOImpl. User will still have the choice of
10384 -- setting it to N for New Round Summary page flows
10385 --
10386 IF (p_copy_type = g_amend_copy) THEN
10387 l_keep_version := 'Y';
10388 END IF;
10389
10390 --
10391 -- Set this as amendment type variables in the AuctionHeadersALLEOImpl.
10392 --
10393 l_is_reset_contracts := 'Y';
10394 l_copy_for_amendment := 'N';
10395
10396 --
10397 -- The l_copy_for_amendment used to be N for New Round Copy also
10398 -- otherwise the attachment of deliverables were retained even if the
10399 -- p_retain_attachments is N. OKC API seems to copy the deliverable
10400 -- attachments without looking at the p_copy_del_attachments_yn flag
10401 -- when p_copy_for_amendment is set to Y. This issue is fixed by
10402 -- bug 4065134. Hence, the New Round block is merged with the amendment
10403 -- block
10404 --
10405 IF (p_copy_type = g_amend_copy OR p_copy_type = g_new_rnd_copy) THEN
10406 l_is_reset_contracts := 'N';
10407 l_copy_for_amendment := 'Y';
10408 END IF;
10409
10410 --
10411 -- To copy the Approval Abstract of Contracts Deviations.
10412 -- Only for amendment and new round we need to copy the Approval Abstract field.
10413 --
10414 IF (p_copy_type = g_new_rnd_copy OR p_copy_type = g_amend_copy ) THEN
10415 l_copy_abstract_yn := 'Y';
10416 ELSE
10417 l_copy_abstract_yn := 'N';
10418 END IF;
10419
10420 --
10421 -- Copy Contracts
10422 --
10423 IF (p_retain_clause = 'Y') THEN
10424 -- {
10425
10426 l_source_doc_id := p_source_auction_header_id;
10427
10428 LOG_MESSAGE('copy_negotiation','Copy Contracts: 1. SOURCE_DOC_ID is:' || l_source_doc_id);
10429
10430 --
10431 -- Get the Contract Doctype for the target doctype_id
10432 --
10433 l_contracts_doctype := PON_CONTERMS_UTL_PVT.GET_NEGOTIATION_DOC_TYPE(p_doctype_id);
10434
10435 LOG_MESSAGE('copy_negotiation','Copy Contracts: 2. Contract Doctype for the target doctype_id is:' || l_contracts_doctype);
10436
10437 --
10438 -- Determine the PO Doctype from the CONTRACT_TYPE of Negotiation
10439 -- This is a replica of ContractServerUtil.getPODocType logic
10440 --
10441 IF (p_contract_type = 'BLANKET') THEN
10442 l_po_doctype := 'PA_BLANKET';
10443 ELSIF (p_contract_type ='CONTRACT') THEN
10444 l_po_doctype := 'PA_CONTRACT';
10445 ELSIF (p_contract_type ='STANDARD') THEN
10446 l_po_doctype := 'PO_STANDARD';
10447 END IF;
10448
10449 --
10450 -- Get site ID for the enterprise
10451 --
10452 POS_ENTERPRISE_UTIL_PKG.GET_ENTERPRISE_PARTYID(l_site_id,
10453 l_error_code,
10454 l_error_message);
10455
10456 IF (l_error_code IS NOT NULL OR l_site_id IS NULL) THEN
10457 -- FLAG ERROR
10458 LOG_MESSAGE('copy_negotiation','Enterprise Party Id is NULL. Error returned by GET_ENTERPRISE_PARTYID method is - ' || SUBSTR(l_error_message,1,150));
10459 --
10460 -- The way I am adding this error may get changed in the future.
10461 -- So, please be aware of that
10462 FND_MESSAGE.SET_NAME('PON','PON_CONTRACT_COPY_ERR');
10463 FND_MESSAGE.SET_TOKEN('REASON',SUBSTR(l_error_message,1,300));
10464 FND_MSG_PUB.ADD;
10465 RAISE FND_API.G_EXC_ERROR;
10466 RETURN;
10467 END IF;
10468
10469 LOG_MESSAGE('copy_negotiation','Copy Contracts: 3. Contract Site Id is:' || l_site_id);
10470
10471 if (PON_CONTERMS_UTL_PVT.IS_CONTRACTS_INSTALLED() = 'T') then
10472 l_conterms_exist_flag := PON_CONTERMS_UTL_PVT.CONTRACT_TERMS_EXIST(p_contracts_doctype, l_source_doc_id);
10473 else
10474 l_conterms_exist_flag := 'N';
10475 end if;
10476
10477 LOG_MESSAGE('copy_negotiation','Copy Contracts: 3.1 conterms_exist:' || l_conterms_exist_flag);
10478
10479 IF (l_conterms_exist_flag = 'Y') THEN
10480 -- {
10481 --
10482 -- This logic of getting the contact id is based on the PON_SOURCING_OPENAPI_GRP
10483 -- API which is simpler version of the UserInfoVO
10484 --
10485 BEGIN
10486 SELECT FND_USER.EMPLOYEE_ID
10487 INTO l_auc_contact_id
10488 FROM FND_USER, HZ_RELATIONSHIPS
10489 WHERE FND_USER.USER_ID = FND_GLOBAL.USER_ID()
10490 AND HZ_RELATIONSHIPS.OBJECT_ID = l_site_id
10491 AND HZ_RELATIONSHIPS.SUBJECT_ID = FND_USER.PERSON_PARTY_ID
10492 AND HZ_RELATIONSHIPS.RELATIONSHIP_TYPE = 'POS_EMPLOYMENT'
10493 AND HZ_RELATIONSHIPS.RELATIONSHIP_CODE = 'EMPLOYEE_OF'
10494 AND HZ_RELATIONSHIPS.START_DATE <= SYSDATE
10495 AND HZ_RELATIONSHIPS.END_DATE >= SYSDATE;
10496 EXCEPTION
10497 WHEN OTHERS THEN
10498 l_auc_contact_id := NULL;
10499 -- Log Error
10500 LOG_MESSAGE('copy_negotiation','Could not determine contact_id for fnd_user_id ' || fnd_global.user_id());
10501 --
10502 -- The way I am adding this error may get changed in the future.
10503 -- So, please be aware of that
10504 FND_MESSAGE.SET_NAME('PON','PON_CONTRACT_COPY_ERR');
10505 FND_MESSAGE.SET_TOKEN('REASON','Could not determine contact_id for fnd_user_id ' || fnd_global.user_id());
10506 FND_MSG_PUB.ADD;
10507 RAISE FND_API.G_EXC_ERROR;
10508 RETURN;
10509 END;
10510
10511 --
10512 -- Get the current policy
10513 --
10514 l_old_policy := mo_global.get_access_mode();
10515 l_old_org_id := mo_global.get_current_org_id();
10516
10517
10518 -- Now start the copy using the Contracts API
10519 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4. Contract Copy Dpcument is starting');
10520 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1 Contract Copy Dpcument will be called with following parameters: -');
10521 LOG_MESSAGE('copy_negotiation','----------------------------------------------------------------------------------------');
10522 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_contracts_doctype:'||p_contracts_doctype||', p_source_doc_id:'||l_source_doc_id);
10523 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_target_doc_type:'||l_contracts_doctype||' , p_target_doc_id:'||l_auction_header_id);
10524 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_keep_version:'||l_keep_version||' , p_initialize_status_yn:'||l_is_reset_contracts);
10525 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_reset_fixed_date_yn:'||l_is_reset_contracts||' , p_internal_party_id:'||p_org_id);
10526 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_internal_contact_id:'||l_auc_contact_id||' , p_target_contractual_doctype:'||l_po_doctype);
10527 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_copy_del_attachments_yn:'||'Y'||' , p_copy_deliverables:'||'Y');
10528 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, p_document_number:'||p_document_number||' , p_copy_for_amendment:'||l_copy_for_amendment);
10529 LOG_MESSAGE('copy_negotiation','Copy Contracts: 4.1, l_old_policy:'||l_old_policy||' , l_old_org_id:'||l_old_org_id);
10530 LOG_MESSAGE('copy_negotiation','----------------------------------------------------------------------------------------');
10531
10532 --
10533 -- Set the connection policy context. Bug 5018076.
10534 --
10535 mo_global.set_policy_context('S', p_org_id);
10536
10537 OKC_TERMS_COPY_GRP.COPY_DOC(
10538 p_api_version => 1.0,
10539 p_init_msg_list => FND_API.G_FALSE,
10540 p_commit => FND_API.G_FALSE,
10541 p_source_doc_type => p_contracts_doctype,
10542 p_source_doc_id => l_source_doc_id,
10543 p_target_doc_type => l_contracts_doctype,
10544 p_target_doc_id => l_auction_header_id,
10545 p_keep_version => l_keep_version, -- (N= copy latest version),For amendment it should be Y
10546 p_article_effective_date => sysdate,
10547 p_initialize_status_yn => l_is_reset_contracts,
10548 p_reset_fixed_date_yn => l_is_reset_contracts,
10549 p_internal_party_id => p_org_id,
10550 p_internal_contact_id => l_auc_contact_id,
10551 p_target_contractual_doctype => l_po_doctype,
10552 p_copy_del_attachments_yn => p_retain_attachments,
10553 p_external_party_id => null, -- Hardcoded to NULL always
10554 p_external_contact_id => null, -- Hardcoded to NULL always
10555 p_copy_deliverables => 'Y', -- Hardcoded to Y always
10556 p_document_number => p_document_number,
10557 p_copy_for_amendment => l_copy_for_amendment, -- It is like amendment parameter in EO
10558 p_copy_doc_attachments => 'N', -- Hardcoded to N always
10559 p_allow_duplicate_terms => 'Y', -- Hardcoded to Y always
10560 p_copy_attachments_by_ref => l_copy_for_amendment, -- Pass Y for Amendment and N for all other cases, bug 4047332
10561 x_return_status => l_return_status, -- (S, E, U)
10562 x_msg_data => l_msg_data,
10563 x_msg_count => l_msg_count,
10564 p_external_party_site_id => null, -- Hardcoded to NULL always
10565 p_copy_abstract_yn => l_copy_abstract_yn -- Approval Abstract of Contracts Deviation.
10566
10567 );
10568 LOG_MESSAGE('copy_negotiation',' Returned from Contract Copy, x_return_status:'||l_return_status||' x_msg_count:'||l_msg_count);
10569 LOG_MESSAGE('copy_negotiation',' Resetting the policy context');
10570
10571 --
10572 -- Set the org context back
10573 --
10574 mo_global.set_policy_context(l_old_policy, l_old_org_id);
10575
10576 LOG_MESSAGE('copy_negotiation',' Policy context is reset');
10577
10578 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
10579 -- Log Error
10580 LOG_MESSAGE('copy_negotiation','Could not copy contracts for source_id =' || l_source_doc_id || ' to target document number =' || p_document_number );
10581 --
10582 -- The way I am adding this error may get changed in the future.
10583 -- So, please be aware of that
10584 --
10585 FND_MESSAGE.SET_NAME('PON','PON_CONTRACT_COPY_ERR');
10586 FND_MESSAGE.SET_TOKEN('REASON','Can not copy contracts for source_id =' || l_source_doc_id || '. Error returned by OKC_TERMS_COPY_GRP.COPY_DOC API is - ' || SUBSTR(l_msg_data,1,150));
10587 FND_MSG_PUB.ADD;
10588 RAISE FND_API.G_EXC_ERROR;
10589 RETURN;
10590 END IF;
10591 --}
10592 END IF;
10593 --}
10594 END IF;
10595 --
10596 -- Copy Attachments
10597 --
10598 IF (p_retain_attachments = 'Y') THEN
10599 --
10600 -- Copy Header and line level attachments here
10601 -- Using fnd_attached_documents2_pkg.copy_attachments
10602 -- for this purpose
10603 --
10604 -- Header Attachments copy
10605 --
10606 FND_ATTACHED_DOCUMENTS2_PKG.COPY_ATTACHMENTS (
10607 X_from_entity_name => 'PON_AUCTION_HEADERS_ALL',
10608 X_from_pk1_value => to_char(p_source_auction_header_id),
10609 X_to_entity_name => 'PON_AUCTION_HEADERS_ALL',
10610 X_to_pk1_value => to_char(p_auction_header_id), -- PK1_VALUE
10611 X_created_by => p_user_id, -- CREATED_BY
10612 X_last_update_login => fnd_global.login_id -- LAST_UPDATE_LOGIN
10613 );
10614 --
10615 -- Line Attachments will be copied in COPY_LINES procedure
10616 --
10617
10618
10619 END IF;
10620 LOG_MESSAGE('copy_negotiation','Returning from COPY_CONTRACTS_ATTACHMENTS...');
10621 END; --} End of COPY_CONTRACTS_ATTACHMENTS
10622
10623
10624 -- ======================================================================
10625 -- PROCEDURE : renumber_lines PRIVATE
10626 -- PARAMETERS:
10627 -- p_auction_header_id IN the auction_header_id of the document
10628 --
10629 -- COMMENT :
10630 -- Renumbers all lines in the negotiation removing any holes in the
10631 -- sub_line_sequence and document_disp_line_number sequence.
10632 --
10633 -- precondition:
10634 -- disp_line_number is correct for all lines
10635 --
10636 -- postcondition:
10637 -- document_disp_line_number is set appropriately
10638 -- sub_line_sequence_number is set relative to document or parent line
10639 -- ======================================================================
10640 procedure renumber_lines(p_auction_header_id IN NUMBER) is
10641 cursor c_lines is
10642 select
10643 line_number,
10644 disp_line_number,
10645 document_disp_line_number,
10646 parent_line_number,
10647 sub_line_sequence_number
10648 from
10649 pon_auction_item_prices_all
10650 where
10651 auction_header_id = p_auction_header_id
10652 order by
10653 disp_line_number;
10654 l_doc_sequence_number pon_auction_item_prices_all.sub_line_sequence_number%TYPE := 1;
10655 l_child_sequence_number pon_auction_item_prices_all.sub_line_sequence_number%TYPE;
10656 l_doc_disp_line_number pon_auction_item_prices_all.document_disp_line_number%TYPE;
10657 l_parent_doc_disp_line_number pon_auction_item_prices_all.document_disp_line_number%TYPE;
10658 l_sub_line_sequence_number pon_auction_item_prices_all.sub_line_sequence_number%TYPE;
10659
10660 begin
10661 log_message('renumber_lines', 'called');
10662 for line in c_lines loop
10663 if (line.parent_line_number is null) then
10664 l_sub_line_sequence_number := l_doc_sequence_number;
10665 l_doc_disp_line_number := to_char(l_sub_line_sequence_number);
10666 l_doc_sequence_number := l_doc_sequence_number + 1;
10667 l_child_sequence_number := 1;
10668 l_parent_doc_disp_line_number := l_doc_disp_line_number;
10669 else
10670 l_sub_line_sequence_number := l_child_sequence_number;
10671 l_doc_disp_line_number := l_parent_doc_disp_line_number || '.' || l_sub_line_sequence_number;
10672 l_child_sequence_number := l_child_sequence_number + 1;
10673 end if;
10674
10675 update pon_auction_item_prices_all
10676 set
10677 document_disp_line_number = l_doc_disp_line_number,
10678 sub_line_sequence_number = l_sub_line_sequence_number
10679 where
10680 auction_header_id = p_auction_header_id and
10681 line_number = line.line_number;
10682 end loop;
10683 end renumber_lines;
10684
10685
10686 -- ======================================================================
10687 -- PROCEDURE : LOG_MESSAGE PRIVATE
10688 -- PARAMETERS:
10689 -- p_module IN Pass the module name
10690 -- p_message IN the string to be logged
10691 --
10692 -- COMMENT : Common procedure to log messages in FND_LOG.
10693 -- ======================================================================
10694 PROCEDURE LOG_MESSAGE( p_module IN VARCHAR2, p_message IN VARCHAR2)
10695 IS
10696 BEGIN
10697 IF (g_debug_mode = 'Y') THEN
10698 IF (FND_LOG.level_statement >= FND_LOG.g_current_runtime_level) THEN
10699 FND_LOG.string(log_level => FND_LOG.level_statement,
10700 module => g_module_prefix || p_module,
10701 message => p_message);
10702 END IF;
10703 END IF;
10704 --dbms_output.put_line(p_module||' , '|| p_message);
10705 -- insert into s_temp values(p_module||' , '|| p_message);
10706 END LOG_MESSAGE;
10707
10708
10709 PROCEDURE SET_NEG_STYLE ( p_source_auction_header_id IN NUMBER,
10710 p_tp_id IN NUMBER,
10711 p_doctype_id IN NUMBER,
10712 p_copy_type IN VARCHAR2,
10713 p_style_id IN NUMBER)
10714
10715 IS
10716 l_val1 VARCHAR2(300) := NULL;
10717 l_val2 VARCHAR2(300) := NULL;
10718 l_val3 VARCHAR2(300) := NULL;
10719 l_val4 VARCHAR2(300) := NULL;
10720
10721
10722 BEGIN
10723 --
10724 -- Load style settings for the selected style to create parameters
10725 -- for subsequent procedure calls. The given style (p_style_id)
10726 -- should exist in the database.
10727 -- Raise an error with the PON_INVALID_STYLE_ID message
10728 -- to the caller in case of invalid p_style_id parameter
10729 --
10730 -- For amendment, use the same settings as the old negotiation
10731 if (p_copy_type <> g_amend_copy) then
10732 BEGIN
10733 SELECT STYLE_ID, LINE_ATTRIBUTE_ENABLED_FLAG, LINE_MAS_ENABLED_FLAG, PRICE_ELEMENT_ENABLED_FLAG,
10734 RFI_LINE_ENABLED_FLAG, LOT_ENABLED_FLAG, GROUP_ENABLED_FLAG, LARGE_NEG_ENABLED_FLAG,
10735 HDR_ATTRIBUTE_ENABLED_FLAG, NEG_TEAM_ENABLED_FLAG, PROXY_BIDDING_ENABLED_FLAG,
10736 POWER_BIDDING_ENABLED_FLAG, AUTO_EXTEND_ENABLED_FLAG, TEAM_SCORING_ENABLED_FLAG,
10737 QTY_PRICE_TIERS_ENABLED_FLAG
10738 INTO g_neg_style_raw
10739 FROM PON_NEGOTIATION_STYLES
10740 WHERE style_id = p_style_id;
10741 EXCEPTION
10742 WHEN NO_DATA_FOUND THEN
10743 FND_MESSAGE.SET_NAME('PON','PON_INVALID_STYLE_ID');
10744 FND_MSG_PUB.ADD;
10745 RAISE FND_API.G_EXC_ERROR;
10746 END;
10747
10748 else
10749
10750 BEGIN
10751 SELECT STYLE_ID, LINE_ATTRIBUTE_ENABLED_FLAG, LINE_MAS_ENABLED_FLAG, PRICE_ELEMENT_ENABLED_FLAG,
10752 RFI_LINE_ENABLED_FLAG, LOT_ENABLED_FLAG, GROUP_ENABLED_FLAG, LARGE_NEG_ENABLED_FLAG,
10753 HDR_ATTRIBUTE_ENABLED_FLAG, NEG_TEAM_ENABLED_FLAG, PROXY_BIDDING_ENABLED_FLAG,
10754 POWER_BIDDING_ENABLED_FLAG, AUTO_EXTEND_ENABLED_FLAG, TEAM_SCORING_ENABLED_FLAG,
10755 QTY_PRICE_TIERS_ENABLED_FLAG
10756 INTO g_neg_style_raw
10757 FROM PON_AUCTION_HEADERS_ALL
10758 WHERE auction_header_id = p_source_auction_header_id;
10759 EXCEPTION
10760 WHEN NO_DATA_FOUND THEN
10761 FND_MESSAGE.SET_NAME('PON','PON_INVALID_NEG_NUM');
10762 FND_MSG_PUB.ADD;
10763 RAISE FND_API.G_EXC_ERROR;
10764 END;
10765
10766 end if;
10767
10768 -- reconcile style settings
10769 g_neg_style_control := g_neg_style_raw;
10770
10771 IF(p_doctype_id = g_rfi_doctype_id) THEN
10772 --{
10773 --there are no tiers present for RFIs
10774 g_neg_style_control.qty_price_tiers_enabled_flag := 'N';
10775 IF (g_neg_style_control.rfi_line_enabled_flag = 'N') THEN
10776 --{
10777
10778 -- for RFI, if line is disabled, all line children are disabled
10779 g_neg_style_control.line_attribute_enabled_flag := 'N';
10780 g_neg_style_control.line_mas_enabled_flag := 'N';
10781 g_neg_style_control.price_element_enabled_flag := 'N';
10782 g_neg_style_control.lot_enabled_flag := 'N';
10783 g_neg_style_control.group_enabled_flag := 'N';
10784
10785 --}
10786 end if;
10787 --}
10788 end if;
10789
10790
10791 END SET_NEG_STYLE;
10792
10793
10794 PROCEDURE REMOVE_LOT_AND_GROUP (p_auction_header_id IN NUMBER,
10795 p_lot_enabled IN VARCHAR2,
10796 p_group_enabled IN VARCHAR2,
10797 p_from_line_number IN NUMBER,
10798 p_to_line_number IN NUMBER)
10799
10800
10801 IS
10802
10803 l_delete_count NUMBER;
10804
10805 BEGIN
10806
10807 if (p_lot_enabled = 'N' or p_group_enabled = 'N') then
10808
10809 select count(1)
10810 into l_delete_count
10811 from pon_auction_item_prices_all
10812 where auction_header_id = p_auction_header_id
10813 and line_number >= p_from_line_number
10814 and line_number <= p_to_line_number
10815 and (p_lot_enabled = 'N'
10816 and group_type in ('LOT', 'LOT_LINE')
10817 or p_group_enabled = 'N'
10818 and group_type in ('GROUP', 'GROUP_LINE'));
10819
10820 if (l_delete_count > 0) then -- {
10821
10822 g_line_deleted := 'Y';
10823
10824 delete from pon_auction_attributes
10825 where auction_header_id = p_auction_header_id
10826 and line_number in
10827 (select ip.line_number
10828 from pon_auction_item_prices_all ip
10829 where ip.auction_header_id = p_auction_header_id
10830 and ip.line_number >= p_from_line_number
10831 and ip.line_number <= p_to_line_number
10832 and (p_lot_enabled = 'N'
10833 and ip.group_type in ('LOT', 'LOT_LINE')
10834 or p_group_enabled = 'N'
10835 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10836
10837 delete from pon_attribute_scores
10838 where auction_header_id = p_auction_header_id
10839 and line_number in
10840 (select ip.line_number
10841 from pon_auction_item_prices_all ip
10842 where ip.auction_header_id = p_auction_header_id
10843 and ip.line_number >= p_from_line_number
10844 and ip.line_number <= p_to_line_number
10845 and (p_lot_enabled = 'N'
10846 and ip.group_type in ('LOT', 'LOT_LINE')
10847 or p_group_enabled = 'N'
10848 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10849
10850
10851 delete from pon_auction_shipments
10852 where auction_header_id = p_auction_header_id
10853 and line_number in
10854 (select ip.line_number
10855 from pon_auction_item_prices_all ip
10856 where ip.auction_header_id = p_auction_header_id
10857 and ip.line_number >= p_from_line_number
10858 and ip.line_number <= p_to_line_number
10859 and (p_lot_enabled = 'N'
10860 and ip.group_type in ('LOT', 'LOT_LINE')
10861 or p_group_enabled = 'N'
10862 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10863
10864 delete from pon_price_differentials
10865 where auction_header_id = p_auction_header_id
10866 and line_number in
10867 (select ip.line_number
10868 from pon_auction_item_prices_all ip
10869 where ip.auction_header_id = p_auction_header_id
10870 and ip.line_number >= p_from_line_number
10871 and ip.line_number <= p_to_line_number
10872 and (p_lot_enabled = 'N'
10873 and ip.group_type in ('LOT', 'LOT_LINE')
10874 or p_group_enabled = 'N'
10875 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10876
10877 delete from pon_price_elements
10878 where auction_header_id = p_auction_header_id
10879 and line_number in
10880 (select ip.line_number
10881 from pon_auction_item_prices_all ip
10882 where ip.auction_header_id = p_auction_header_id
10883 and ip.line_number >= p_from_line_number
10884 and ip.line_number <= p_to_line_number
10885 and (p_lot_enabled = 'N'
10886 and ip.group_type in ('LOT', 'LOT_LINE')
10887 or p_group_enabled = 'N'
10888 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10889
10890
10891 delete from pon_party_line_exclusions
10892 where auction_header_id = p_auction_header_id
10893 and line_number in
10894 (select ip.line_number
10895 from pon_auction_item_prices_all ip
10896 where ip.auction_header_id = p_auction_header_id
10897 and ip.line_number >= p_from_line_number
10898 and ip.line_number <= p_to_line_number
10899 and (p_lot_enabled = 'N'
10900 and ip.group_type in ('LOT', 'LOT_LINE')
10901 or p_group_enabled = 'N'
10902 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10903
10904
10905 delete from pon_pf_supplier_values
10906 where auction_header_id = p_auction_header_id
10907 and line_number in
10908 (select ip.line_number
10909 from pon_auction_item_prices_all ip
10910 where ip.auction_header_id = p_auction_header_id
10911 and ip.line_number >= p_from_line_number
10912 and ip.line_number <= p_to_line_number
10913 and (p_lot_enabled = 'N'
10914 and ip.group_type in ('LOT', 'LOT_LINE')
10915 or p_group_enabled = 'N'
10916 and ip.group_type in ('GROUP', 'GROUP_LINE')));
10917
10918
10919 delete from pon_auction_item_prices_all
10920 where auction_header_id = p_auction_header_id
10921 and line_number >= p_from_line_number
10922 and line_number <= p_to_line_number
10923 and (p_lot_enabled = 'N'
10924 and group_type in ('LOT', 'LOT_LINE')
10925 or p_group_enabled = 'N'
10926 and group_type in ('GROUP', 'GROUP_LINE'));
10927
10928 end if; -- }
10929
10930
10931 end if;
10932
10933 END REMOVE_LOT_AND_GROUP;
10934
10935
10936 --NEW PROCEDURES AS A PART OF LARGE AUCTION SUPPORT
10937 --ADDED FROM HERE
10938
10939 --PROCEDURE NAME: PON_LRG_DRAFT_TO_ORD_PF_COPY
10940 --
10941 --This procedure creates the relevant records for a normal destination
10942 --auction in the case of a cross copy from a large DRAFT to a normal auction.
10943 --This procedure willbe called even in the case of publish, and in this case
10944 --p_source_auction_hdr_id = p_destination_auction_hdr_id
10945 --
10946 --p_source_auction_hdr_id IN
10947 --DATATYPE: pon_large_neg_pf_values.AUCTION_HEADER_ID%type
10948 --This parameter is the auction_header_id of the source auction
10949 --
10950 --p_destination_auction_hdr_id IN
10951 --DATATYPE: pon_large_neg_pf_values.AUCTION_HEADER_ID%type
10952 --This parameter is the auction_header_id of the destination auction
10953 --
10954 --p_user_id IN
10955 --DATATYPE: NUMBER
10956 --This parameter is the id of the user invoking the procedure
10957
10958
10959 PROCEDURE PON_LRG_DRAFT_TO_ORD_PF_COPY (
10960 p_source_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
10961 p_destination_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
10962 p_user_id IN number,
10963 p_from_line_number IN NUMBER,
10964 p_to_line_number IN NUMBER)
10965 is
10966
10967 l_current_status pon_auction_headers_all.auction_status%type;
10968 l_is_large_neg_enabled pon_auction_headers_all.LARGE_NEG_ENABLED_FLAG%type;
10969 BEGIN
10970 --{ start of PON_LRG_DRAFT_TO_ORD_PF_COPY
10971 LOG_MESSAGE('PON_LRG_DRAFT_TO_ORD_PF_COPY',
10972 'Entered the procedure with p_source_auction_hdr_id : ' || p_source_auction_hdr_id ||
10973 '; p_destination_auction_hdr_id : ' || p_destination_auction_hdr_id ||
10974 '; p_from_line_number : ' || p_from_line_number ||
10975 '; p_to_line_number : ' || p_to_line_number );
10976
10977 IF (g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y' OR
10978 (p_source_auction_hdr_id = p_destination_auction_hdr_id) --if PUBLISH then proceed without any doubt
10979 ) THEN
10980
10981 select large_neg_enabled_flag, auction_status
10982 into l_is_large_neg_enabled, l_current_status
10983 from
10984 pon_auction_headers_all
10985 where
10986 auction_header_id = p_source_auction_hdr_id;
10987 if l_is_large_neg_enabled = 'Y' then
10988
10989 if l_current_status = 'DRAFT' then
10990
10991 LOG_MESSAGE('PON_LRG_DRAFT_TO_ORD_PF_COPY','inserting rows in pon_large_neg_pf_values for new auction : ' || p_destination_auction_hdr_id || ' whihc is getting copied from auction : ' || p_source_auction_hdr_id);
10992
10993 insert into pon_pf_supplier_values(
10994 auction_header_id,
10995 line_number,
10996 pf_seq_number,
10997 supplier_seq_number,
10998 value,
10999 creation_date,
11000 created_by,
11001 last_update_date,
11002 last_updated_by,
11003 last_update_login)
11004 select
11005 p_destination_auction_hdr_id,
11006 price_elements.LINE_NUMBER,
11007 price_elements.SEQUENCE_NUMBER,
11008 largeNegPFVal.SUPPLIER_SEQ_NUMBER,
11009 largeNegPFVal.VALUE,
11010 sysdate,
11011 p_user_id,
11012 sysdate,
11013 p_user_id,
11014 fnd_global.login_id
11015 from
11016 pon_price_elements price_elements,
11017 pon_large_neg_pf_values largeNegPFVal
11018 where
11019 price_elements.AUCTION_HEADER_ID = p_source_auction_hdr_id and
11020 largeNegPFVal.AUCTION_HEADER_ID = price_elements.AUCTION_HEADER_ID and
11021 price_elements.PRICE_ELEMENT_TYPE_ID = largeNegPFVal.PRICE_ELEMENT_TYPE_ID and
11022 price_elements.PRICING_BASIS = largeNegPFVal.PRICING_BASIS and
11023 largeNegPFVal.VALUE is not null and
11024 (price_elements.PRICE_ELEMENT_TYPE_ID, price_elements.PRICING_BASIS) in
11025 (
11026 select distinct PRICE_ELEMENT_TYPE_ID, PRICING_BASIS from
11027 pon_price_elements where auction_header_id = p_destination_auction_hdr_id
11028 --we need not have the below where condition because
11029 --because the large_neg_pf_values will have only
11030 --BUYER price factors and the outer select statement
11031 --always returns the BUYER price factor details. It
11032 --is added below in the comment for readability
11033
11034 --and price_elements.pf_type = 'BUYER'
11035 ) and
11036 price_elements.line_number >= p_from_line_number and
11037 price_elements.line_number <= p_to_line_number;
11038 end if;
11039
11040 end if;
11041
11042 END IF;
11043
11044 --} end of PON_LRG_DRAFT_TO_ORD_PF_COPY
11045 END PON_LRG_DRAFT_TO_ORD_PF_COPY;
11046
11047
11048
11049
11050 --PROCEDURE NAME: PON_LRG_DRAFT_TO_LRG_PF_COPY
11051 --
11052 --This procedure creates the relevant records for a large destination
11053 --auction in the case of a copy from a large DRAFT to a large auction.
11054 --
11055 --p_source_auction_hdr_id IN
11056 --DATATYPE: pon_large_neg_pf_values.AUCTION_HEADER_ID%type
11057 --This parameter is the auction_header_id of the source auction
11058 --
11059 --p_destination_auction_hdr_id IN
11060 --DATATYPE: pon_large_neg_pf_values.AUCTION_HEADER_ID%type
11061 --This parameter is the auction_header_id of the destination auction
11062 --
11063 --p_user_id IN
11064 --DATATYPE: NUMBER
11065 --This parameter is the id of the user invoking the procedure
11066
11067 PROCEDURE PON_LRG_DRAFT_TO_LRG_PF_COPY (
11068 p_source_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
11069 p_destination_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
11070 p_user_id IN number)
11071 is
11072 BEGIN
11073 --{ start of PON_LRG_DRAFT_TO_LRG_PF_COPY
11074
11075 IF (g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y') THEN
11076 -- {
11077
11078 LOG_MESSAGE('PON_LRG_DRAFT_TO_LRG_PF_COPY','inserting rows in pon_large_neg_pf_values for new auction : ' || p_destination_auction_hdr_id || ' whihc is getting copied from auction : ' || p_source_auction_hdr_id);
11079
11080 insert into pon_large_neg_pf_values(
11081 auction_header_id,
11082 price_element_type_id,
11083 pricing_basis,
11084 supplier_seq_number,
11085 value,
11086 creation_date,
11087 created_by,
11088 last_update_date,
11089 last_updated_by,
11090 last_update_login)
11091 (select
11092 p_destination_auction_hdr_id,
11093 p.price_element_type_id,
11094 p.pricing_basis,
11095 p.supplier_seq_number,
11096 p.value,
11097 sysdate,
11098 p_user_id,
11099 sysdate,
11100 p_user_id,
11101 fnd_global.login_id
11102 from pon_large_neg_pf_values p, pon_price_element_types_vl vl
11103 where
11104 p.auction_header_id = p_source_auction_hdr_id and
11105 p.price_element_type_id = vl.price_element_type_id and
11106 vl.enabled_flag = 'Y' and
11107 (p.price_element_type_id,p.pricing_basis) in
11108 (select distinct price_element_type_id,pricing_basis from pon_price_elements
11109 where auction_header_id = p_destination_auction_hdr_id and pf_type = 'BUYER')
11110 );
11111 -- }
11112 END IF;
11113 --} end of PON_LRG_DRAFT_TO_LRG_PF_COPY
11114 END PON_LRG_DRAFT_TO_LRG_PF_COPY;
11115
11116
11117
11118 --PROCEDURE NAME: PON_ORD_DRAFT_TO_LRG_PF_COPY
11119 --
11120 --This procedure creates the relevant records for a large destination
11121 --auction in the case of a copy from a normal DRAFT to a large auction.
11122 --
11123 --p_source_auction_hdr_id IN
11124 --DATATYPE: pon_large_neg_pf_values.AUCTION_HEADER_ID%type
11125 --This parameter is the auction_header_id of the source auction
11126 --
11127 --p_destination_auction_hdr_id IN
11128 --DATATYPE: pon_large_neg_pf_values.AUCTION_HEADER_ID%type
11129 --This parameter is the auction_header_id of the destination auction
11130 --
11131 --p_user_id IN
11132 --DATATYPE: NUMBER
11133 --This parameter is the id of the user invoking the procedure
11134
11135 PROCEDURE PON_ORD_DRAFT_TO_LRG_PF_COPY (
11136 p_source_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
11137 p_destination_auction_hdr_id IN pon_large_neg_pf_values.AUCTION_HEADER_ID%type,
11138 p_user_id IN number)
11139 is
11140 BEGIN
11141 --{ start of PON_ORD_DRAFT_TO_LRG_PF_COPY
11142
11143 IF (g_auc_doctype_rule_data.ALLOW_PRICE_ELEMENT = 'Y') THEN
11144 -- {
11145 LOG_MESSAGE('PON_ORD_DRAFT_TO_LRG_PF_COPY','inserting rows in pon_large_neg_pf_values for new auction : ' || p_destination_auction_hdr_id || ' whihc is getting copied from auction : ' || p_source_auction_hdr_id);
11146
11147 insert into pon_large_neg_pf_values(
11148 auction_header_id,
11149 price_element_type_id,
11150 pricing_basis,
11151 supplier_seq_number,
11152 value,
11153 creation_date,
11154 created_by,
11155 last_update_date,
11156 last_updated_by,
11157 last_update_login)
11158 (
11159 select distinct p_destination_auction_hdr_id,
11160 price_elements.PRICE_ELEMENT_TYPE_ID,
11161 price_elements.PRICING_BASIS,
11162 bidding_parties.sequence,
11163 null,
11164 sysdate,
11165 p_user_id,
11166 sysdate,
11167 p_user_id,
11168 fnd_global.login_id
11169 from
11170 pon_price_elements price_elements,
11171 pon_bidding_parties bidding_parties
11172 where
11173 price_elements.AUCTION_HEADER_ID = p_destination_auction_hdr_id and
11174 price_elements.AUCTION_HEADER_ID = bidding_parties.AUCTION_HEADER_ID and
11175 price_elements.PF_TYPE = 'BUYER'
11176 );
11177 -- }
11178 END IF;
11179 --} end of PON_ORD_DRAFT_TO_LRG_PF_COPY
11180 END PON_ORD_DRAFT_TO_LRG_PF_COPY;
11181
11182 --PROCEDURE FOR CONCURRENT COPY
11183 --This procedure will be called by the concurrent
11184 --manager. This inturn calls the COPY_NEGOTIATION
11185 --procedure
11186
11187
11188
11189 PROCEDURE PON_CONC_COPY_SUPER_LARGE_NEG (
11190 EFFBUF OUT NOCOPY VARCHAR2,
11191 RETCODE OUT NOCOPY VARCHAR2,
11192 p_api_version IN NUMBER,
11193 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE,
11194 p_source_auction_header_id IN NUMBER,
11195 p_trading_partner_id IN NUMBER ,
11196 p_trading_partner_contact_id IN NUMBER ,
11197 p_language IN VARCHAR2,
11198 p_user_id IN NUMBER,
11199 p_doctype_id IN NUMBER,
11200 p_copy_type IN VARCHAR2,
11201 p_is_award_approval_reqd IN VARCHAR2,
11202 p_user_name IN VARCHAR2,
11203 p_mgr_id IN NUMBER,
11204 p_retain_clause IN VARCHAR2,
11205 p_update_clause IN VARCHAR2,
11206 p_retain_attachments IN VARCHAR2,
11207 p_large_auction_header_id IN NUMBER,
11208 p_style_id IN NUMBER)
11209 IS
11210 l_auction_header_id NUMBER;
11211 l_document_number PON_AUCTION_HEADERS_ALL.DOCUMENT_NUMBER%TYPE;
11212 l_return_status VARCHAR2(1);
11213 l_msg_count NUMBER;
11214 l_msg_data VARCHAR2(400);
11215 l_request_id NUMBER := NULL;
11216 l_program_type_code VARCHAR2(30);
11217 l_message_suffix VARCHAR2(30);
11218 l_source_doc_num VARCHAR2(30);
11219 BEGIN
11220 --{Start of PON_CONC_COPY_SUPER_LARGE_NEG
11221
11222 --Choose the appropriate ProgramTypeCode
11223 if p_copy_type = 'NEW_ROUND' then
11224 l_program_type_code := 'NEG_MULTIROUND';
11225 elsif p_copy_type = 'AMENDMENT' then
11226 l_program_type_code := 'NEG_AMEND';
11227 else
11228 l_program_type_code := 'NEG_COPY';
11229 end if;
11230
11231 COPY_NEGOTIATION(
11232 p_api_version => p_api_version,
11233 p_init_msg_list => p_init_msg_list,
11234 p_is_conc_call => FND_API.G_TRUE,
11235 p_source_auction_header_id => p_source_auction_header_id,
11236 p_trading_partner_id => p_trading_partner_id,
11237 p_trading_partner_contact_id => p_trading_partner_contact_id,
11238 p_language => p_language,
11239 p_user_id => p_user_id,
11240 p_doctype_id => p_doctype_id,
11241 p_copy_type => p_copy_type,
11242 p_is_award_approval_reqd => p_is_award_approval_reqd,
11243 p_user_name => p_user_name,
11244 p_mgr_id => p_mgr_id,
11245 p_retain_clause => p_retain_clause,
11246 p_update_clause => p_update_clause,
11247 p_retain_attachments => p_retain_attachments,
11248 p_large_auction_header_id => p_large_auction_header_id,
11249 p_style_id => p_style_id,
11250 x_auction_header_id => l_auction_header_id,
11251 x_document_number => l_document_number,
11252 x_request_id => l_request_id,
11253 x_return_status => l_return_status,
11254 x_msg_count => l_msg_count,
11255 x_msg_data => l_msg_data
11256 );
11257 --
11258 --workflow calls
11259 --
11260 --get the request id for the new auction
11261 --for workflow calls
11262 --
11263 select request_id into l_request_id
11264 from pon_auction_headers_all
11265 where auction_header_id = p_large_auction_header_id;
11266
11267
11268 if l_return_status = 'E' then
11269 PON_WF_UTL_PKG.ReportConcProgramStatus (
11270 p_request_id => l_request_id,
11271 p_messagetype => 'E',
11272 p_RecepientUsername => p_user_name,
11273 p_recepientType => 'BUYER',
11274 p_auction_header_id => p_large_auction_header_id,
11275 p_ProgramTypeCode => l_program_type_code,
11276 p_DestinationPageCode => 'PON_CONCURRENT_ERRORS',
11277 p_bid_number => NULL);
11278 RETCODE := '2';
11279 else
11280 PON_WF_UTL_PKG.ReportConcProgramStatus (
11281 p_request_id => l_request_id,
11282 p_messagetype => 'S',
11283 p_RecepientUsername => p_user_name,
11284 p_recepientType => 'BUYER',
11285 p_auction_header_id => p_large_auction_header_id,
11286 p_ProgramTypeCode => l_program_type_code,
11287 p_DestinationPageCode => 'PON_MANAGE_DRAFT_NEG',
11288 p_bid_number => NULL);
11289 RETCODE := '0';
11290 --
11291 --Don't clear the request_id as the status of the
11292 --concurrent program has to be shown to the user
11293 --
11294 --Ref: ECO - 4517992
11295 --
11296 -- update pon_auction_headers_all
11297 -- set request_id = null
11298 -- where auction_header_id = p_large_auction_header_id;
11299 --commit this updation
11300 -- commit;
11301 end if;
11302
11303 EXCEPTION
11304 WHEN OTHERS THEN
11305
11306 --when an unexpected exception arises in the COPY_NEGOTIATION
11307 --procedure, we need to do the following
11308
11309 --rollback the transactions
11310 rollback;
11311
11312 --report error to the user
11313
11314 PON_WF_UTL_PKG.ReportConcProgramStatus (
11315 p_request_id => l_request_id,
11316 p_messagetype => 'E',
11317 p_RecepientUsername => p_user_name,
11318 p_recepientType => 'BUYER',
11319 p_auction_header_id => p_large_auction_header_id,
11320 p_ProgramTypeCode => l_program_type_code,
11321 p_DestinationPageCode => 'PON_CONCURRENT_ERRORS',
11322 p_bid_number => NULL);
11323
11324 select document_number into l_source_doc_num from pon_auction_headers_all where auction_Header_id = p_source_auction_header_id;
11325
11326 insert into pon_interface_errors (
11327 ERROR_MESSAGE_NAME,
11328 request_id,
11329 auction_header_id,
11330 application_short_name,
11331 token1_name,
11332 token1_value,
11333 token2_name,
11334 token2_value,
11335 created_by,
11336 creation_date,
11337 last_updated_by,
11338 last_update_date,
11339 last_update_login,
11340 expiration_date
11341 )
11342 values(
11343 'PON_COPY_ERROR_MSG_'||g_message_suffix,
11344 l_request_id,
11345 p_large_auction_header_id,
11346 'PON',
11347 'DOC_NUM',
11348 l_source_doc_num,
11349 'REQUEST_ID',
11350 l_request_id,
11351 p_user_id,
11352 SYSDATE,
11353 p_user_id,
11354 SYSDATE,
11355 fnd_global.login_id,
11356 sysdate + 7
11357 );
11358
11359 LOG_MESSAGE('copy_negotiation','An error has occured during copy');
11360
11361 RETCODE := '2';
11362
11363 commit;
11364
11365 --} end of PON_CONC_COPY_SUPER_LARGE_NEG
11366 END;
11367
11368
11369
11370 --NEW PROCEDURES AS A PART OF LARGE AUCTION SUPPORT
11371 --ADDED TILL HERE
11372
11373 --
11374 -- TEAM SCORING
11375 --
11376
11377 PROCEDURE COPY_SCORING_TEAMS(
11378 p_source_auction_header_id IN NUMBER,
11379 p_auction_header_id IN NUMBER,
11380 p_user_id IN NUMBER
11381 )
11382 IS
11383
11384 l_source_has_scoring_teams VARCHAR2(1);
11385
11386 BEGIN
11387
11388 -- check if the source auction has any scoring teams
11389 -- if it does not, do not do anything
11390 SELECT has_scoring_teams_flag
11391 INTO l_source_has_scoring_teams
11392 FROM pon_auction_headers_all
11393 WHERE auction_header_id = p_source_auction_header_id;
11394
11395 IF l_source_has_scoring_teams <> 'Y' THEN
11396 RETURN;
11397 END IF;
11398
11399 -- Copy the scoring teams. Generate a new id for the new team
11400
11401 INSERT INTO pon_scoring_teams
11402 (
11403 auction_header_id
11404 ,team_id
11405 ,team_name
11406 ,price_visible_flag
11407 ,creation_date
11408 ,created_by
11409 ,last_update_date
11410 ,last_updated_by
11411 ,last_update_login
11412 ,orig_team_id
11413 ,instruction_text
11414 )
11415 SELECT
11416 p_auction_header_id
11417 ,pon_scoring_teams_s.nextval
11418 ,old_team.team_name
11419 ,old_team.price_visible_flag
11420 ,SYSDATE -- creation_date
11421 ,p_user_id -- created_by
11422 ,SYSDATE -- last_update_date
11423 ,p_user_id -- last_updated_by
11424 ,fnd_global.login_id -- last_update_login
11425 ,old_team.team_id -- orig_team_id
11426 ,old_team.instruction_text
11427 FROM
11428 pon_scoring_teams old_team
11429 WHERE old_team.auction_header_id = p_source_auction_header_id;
11430
11431
11432 -- Create the team members. Do not insert any team members who are not
11433 -- valid. The team members who are not valid would not have been
11434 -- copied over to the collaboration team hence joining with that table
11435 -- eliminates the unwanted ones
11436
11437 INSERT INTO pon_scoring_team_members
11438 (
11439 auction_header_id
11440 ,team_id
11441 ,user_id
11442 ,creation_date
11443 ,created_by
11444 ,last_update_date
11445 ,last_updated_by
11446 ,last_update_login
11447 )
11448 SELECT
11449 p_auction_header_id
11450 ,new_team.team_id
11451 ,old_members.user_id
11452 ,SYSDATE -- creation_date
11453 ,p_user_id -- created_by
11454 ,SYSDATE -- last_update_date
11455 ,p_user_id -- last_updated_by
11456 ,fnd_global.login_id -- last_update_login
11457 FROM
11458 pon_scoring_team_members old_members,
11459 pon_scoring_teams old_team,
11460 pon_scoring_teams new_team,
11461 pon_neg_team_members new_collab
11462 WHERE
11463 new_team.auction_header_id = p_auction_header_id
11464 AND old_team.team_id = new_team.orig_team_id
11465 AND old_members.team_id = old_team.team_id
11466 AND new_collab.user_id = old_members.user_id
11467 AND new_collab.auction_header_id = new_team.auction_header_id;
11468
11469
11470 -- Teams are assigned to sections. Copy the section assignments from
11471 -- the earlier negotiation
11472
11473 INSERT INTO pon_scoring_team_sections
11474 (
11475 section_id
11476 ,auction_header_id
11477 ,team_id
11478 ,creation_date
11479 ,created_by
11480 ,last_update_date
11481 ,last_updated_by
11482 ,last_update_login
11483 )
11484 SELECT
11485 new_sections.section_id
11486 ,p_auction_header_id
11487 ,new_team.team_id
11488 ,SYSDATE -- creation_date
11489 ,p_user_id -- created_by
11490 ,SYSDATE -- last_update_date
11491 ,p_user_id -- last_updated_by
11492 ,fnd_global.login_id -- last_update_login
11493 FROM
11494 pon_auction_sections new_sections
11495 ,pon_scoring_team_sections old_team_sections
11496 ,pon_scoring_teams new_team
11497 WHERE
11498 new_sections.auction_header_id = p_auction_header_id
11499 AND old_team_sections.section_id = new_sections.previous_section_id
11500 AND new_team.orig_team_id = old_team_sections.team_id
11501 AND new_team.auction_header_id = new_sections.auction_header_id;
11502
11503 END COPY_SCORING_TEAMS;
11504 --
11505 -- END TEAM SCORING
11506 --
11507 END PON_NEGOTIATION_COPY_GRP;