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