1 package body QP_PB_INPUT_HEADERS_PKG as
2 /* $Header: QPXUPBTB.pls 120.5 2005/11/28 23:26:51 prarasto noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out nocopy VARCHAR2,
6 X_PB_INPUT_HEADER_ID in NUMBER,
7 X_DLV_XML_FLAG in VARCHAR2,
8 X_PUB_TEMPLATE_CODE in VARCHAR2,
9 X_DLV_EMAIL_FLAG in VARCHAR2,
10 X_DLV_EMAIL_ADDRESSES in VARCHAR2,
11 X_DLV_PRINTER_FLAG in VARCHAR2,
12 X_DLV_PRINTER_NAME in VARCHAR2,
13 X_PUB_LANGUAGE in VARCHAR2,
14 X_PUB_TERRITORY in VARCHAR2,
15 X_GENERATION_TIME_CODE in VARCHAR2,
16 X_GEN_SCHEDULE_DATE in DATE,
17 X_REQUEST_ID in NUMBER,
18 X_PRICE_BOOK_TYPE_CODE in VARCHAR2,
19 X_PUBLISH_EXISTING_PB_FLAG in VARCHAR2,
20 X_REQUEST_TYPE_CODE in VARCHAR2,
21 X_PRODUCT_ATTRIBUTE in VARCHAR2,
22 X_PRODUCT_ATTR_VALUE in VARCHAR2,
23 X_EFFECTIVE_DATE in DATE,
24 X_ITEM_QUANTITY in NUMBER,
25 X_PRODUCT_CONTEXT in VARCHAR2,
26 X_CUSTOMER_CONTEXT in VARCHAR2,
27 X_CUSTOMER_ATTRIBUTE in VARCHAR2,
28 X_CUSTOMER_ATTR_VALUE in VARCHAR2,
29 X_DLV_XML_SITE_ID in NUMBER,
30 X_CURRENCY_CODE in VARCHAR2,
31 X_PRICE_BOOK_NAME in VARCHAR2,
32 X_CREATION_DATE in DATE,
33 X_CREATED_BY in NUMBER,
34 X_LAST_UPDATE_DATE in DATE,
35 X_LAST_UPDATED_BY in NUMBER,
36 X_LAST_UPDATE_LOGIN in NUMBER,
37 X_ORG_ID in NUMBER,
38 X_OPERATING_UNIT in VARCHAR2,
39 X_CUSTOMER_NAME IN VARCHAR2,
40 X_PRODUCT_NAME IN VARCHAR2,
41 X_GENERATION_TIME in VARCHAR2,
42 X_PRICE_BOOK_TYPE in VARCHAR2,
43 X_PRODUCT_ATTRIBUTE_NAME in VARCHAR2,
44 X_CUSTOMER_ATTRIBUTE_NAME in VARCHAR2,
45 X_LANGUAGE in VARCHAR2,
46 X_SOURCE_LANG in VARCHAR2,
47 X_PUB_OUTPUT_DOCUMENT_TYPE in VARCHAR2,
48 X_PRICING_PERSPECTIVE_CODE in VARCHAR2,
49 X_OVERWRITE_EXISTING_PB_FLAG in VARCHAR2,
50 X_REQUEST_ORIGINATION_CODE in VARCHAR2,
51 X_PUB_TEMPLATE_NAME in VARCHAR2,
52 X_CURRENCY in VARCHAR2,
53 X_LIMIT_PRODUCTS_BY in VARCHAR2,
54 X_PRICE_BASED_ON in VARCHAR2,
55 X_PL_AGR_BSA_ID in NUMBER,
56 X_LIMIT_PRODUCTS_BY_NAME in VARCHAR2,
57 X_PRICE_BASED_ON_NAME in VARCHAR2,
58 X_PL_AGR_BSA_NAME in VARCHAR2,
59 X_PRICING_PERSPECTIVE in VARCHAR2,
60 X_VALIDATION_ERROR_FLAG in VARCHAR2,
61 X_CUST_ACCOUNT_ID in NUMBER
62 ) is
63 cursor C is select ROWID from QP_PB_INPUT_HEADERS_B
64 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID
65 ;
66 begin
67 insert into QP_PB_INPUT_HEADERS_B (
68 DLV_XML_FLAG,
69 PUB_TEMPLATE_CODE,
70 DLV_EMAIL_FLAG,
71 DLV_EMAIL_ADDRESSES,
72 DLV_PRINTER_FLAG,
73 DLV_PRINTER_NAME,
74 PUB_LANGUAGE,
75 PUB_TERRITORY,
76 GENERATION_TIME_CODE,
77 GEN_SCHEDULE_DATE,
78 REQUEST_ID,
79 PRICE_BOOK_TYPE_CODE,
80 PUBLISH_EXISTING_PB_FLAG,
81 OVERWRITE_EXISTING_PB_FLAG,
82 REQUEST_ORIGINATION_CODE,
83 REQUEST_TYPE_CODE,
84 PRODUCT_ATTRIBUTE,
85 PRODUCT_ATTR_VALUE,
86 EFFECTIVE_DATE,
87 ITEM_QUANTITY,
88 PRODUCT_CONTEXT,
89 PB_INPUT_HEADER_ID,
90 CUSTOMER_CONTEXT,
91 CUSTOMER_ATTRIBUTE,
92 CUSTOMER_ATTR_VALUE,
93 DLV_XML_SITE_ID,
94 CURRENCY_CODE,
95 ORG_ID,
96 PUB_OUTPUT_DOCUMENT_TYPE,
97 PRICING_PERSPECTIVE_CODE,
98 CREATION_DATE,
99 CREATED_BY,
100 LAST_UPDATE_DATE,
101 LAST_UPDATED_BY,
102 LAST_UPDATE_LOGIN,
103 PL_AGR_BSA_ID,
104 PRICE_BASED_ON,
105 LIMIT_PRODUCTS_BY,
106 VALIDATION_ERROR_FLAG,
107 CUST_ACCOUNT_ID
108 ) values (
109 X_DLV_XML_FLAG,
110 X_PUB_TEMPLATE_CODE,
111 X_DLV_EMAIL_FLAG,
112 X_DLV_EMAIL_ADDRESSES,
113 X_DLV_PRINTER_FLAG,
114 X_DLV_PRINTER_NAME,
115 X_PUB_LANGUAGE,
116 X_PUB_TERRITORY,
117 X_GENERATION_TIME_CODE,
118 X_GEN_SCHEDULE_DATE,
119 X_REQUEST_ID,
120 X_PRICE_BOOK_TYPE_CODE,
121 X_PUBLISH_EXISTING_PB_FLAG,
122 X_OVERWRITE_EXISTING_PB_FLAG,
123 X_REQUEST_ORIGINATION_CODE,
124 X_REQUEST_TYPE_CODE,
125 X_PRODUCT_ATTRIBUTE,
126 X_PRODUCT_ATTR_VALUE,
127 X_EFFECTIVE_DATE,
128 X_ITEM_QUANTITY,
129 X_PRODUCT_CONTEXT,
130 X_PB_INPUT_HEADER_ID,
131 X_CUSTOMER_CONTEXT,
132 X_CUSTOMER_ATTRIBUTE,
133 X_CUSTOMER_ATTR_VALUE,
134 X_DLV_XML_SITE_ID,
135 X_CURRENCY_CODE,
136 X_ORG_ID,
137 X_PUB_OUTPUT_DOCUMENT_TYPE,
138 X_PRICING_PERSPECTIVE_CODE,
139 X_CREATION_DATE,
140 X_CREATED_BY,
141 X_LAST_UPDATE_DATE,
142 X_LAST_UPDATED_BY,
143 X_LAST_UPDATE_LOGIN,
144 X_PL_AGR_BSA_ID,
145 X_PRICE_BASED_ON,
146 X_LIMIT_PRODUCTS_BY,
147 X_VALIDATION_ERROR_FLAG,
148 X_CUST_ACCOUNT_ID
149 );
150
151 insert into QP_PB_INPUT_HEADERS_TL (
152 PRICE_BOOK_NAME,
153 PB_INPUT_HEADER_ID,
154 PL_AGR_BSA_NAME,
155 PUB_TEMPLATE_NAME,
156 LAST_UPDATE_LOGIN,
157 LAST_UPDATED_BY,
158 CREATION_DATE,
159 CREATED_BY,
160 LAST_UPDATE_DATE,
161 LANGUAGE,
162 SOURCE_LANG
163 ) select
164 X_PRICE_BOOK_NAME,
165 X_PB_INPUT_HEADER_ID,
166 X_PL_AGR_BSA_NAME,
167 X_PUB_TEMPLATE_NAME,
168 X_LAST_UPDATE_LOGIN,
169 X_LAST_UPDATED_BY,
170 X_CREATION_DATE,
171 X_CREATED_BY,
172 X_LAST_UPDATE_DATE,
173 L.LANGUAGE_CODE,
174 userenv('LANG')
175 from FND_LANGUAGES L
176 where L.INSTALLED_FLAG in ('I', 'B')
177 and not exists
178 (select NULL
179 from QP_PB_INPUT_HEADERS_TL T
180 where T.PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID
181 and T.LANGUAGE = L.LANGUAGE_CODE);
182
183 open c;
184 fetch c into X_ROWID;
185 if (c%notfound) then
186 close c;
187 raise no_data_found;
188 end if;
189 close c;
190
191 end INSERT_ROW;
192
193
194
195
196 procedure LOCK_ROW (
197 X_PB_INPUT_HEADER_ID in NUMBER,
198 X_DLV_XML_FLAG in VARCHAR2,
199 X_PUB_TEMPLATE_CODE in VARCHAR2,
200 X_DLV_EMAIL_FLAG in VARCHAR2,
201 X_DLV_EMAIL_ADDRESSES in VARCHAR2,
202 X_DLV_PRINTER_FLAG in VARCHAR2,
203 X_DLV_PRINTER_NAME in VARCHAR2,
204 X_PUB_LANGUAGE in VARCHAR2,
205 X_PUB_TERRITORY in VARCHAR2,
206 X_GENERATION_TIME_CODE in VARCHAR2,
207 X_GEN_SCHEDULE_DATE in DATE,
208 X_REQUEST_ID in NUMBER,
209 X_PRICE_BOOK_TYPE_CODE in VARCHAR2,
210 X_PUBLISH_EXISTING_PB_FLAG in VARCHAR2,
211 X_REQUEST_TYPE_CODE in VARCHAR2,
212 X_PRODUCT_ATTRIBUTE in VARCHAR2,
213 X_PRODUCT_ATTR_VALUE in VARCHAR2,
214 X_EFFECTIVE_DATE in DATE,
215 X_ITEM_QUANTITY in NUMBER,
216 X_PRODUCT_CONTEXT in VARCHAR2,
217 X_CUSTOMER_CONTEXT in VARCHAR2,
218 X_CUSTOMER_ATTRIBUTE in VARCHAR2,
219 X_CUSTOMER_ATTR_VALUE in VARCHAR2,
220 X_DLV_XML_SITE_ID in NUMBER,
221 X_CURRENCY_CODE in VARCHAR2,
222 X_PRICE_BOOK_NAME in VARCHAR2,
223 X_ORG_ID in NUMBER,
224 X_OPERATING_UNIT in VARCHAR2,
225 X_CUSTOMER_NAME IN VARCHAR2,
226 X_PRODUCT_NAME IN VARCHAR2,
227 X_GENERATION_TIME in VARCHAR2,
228 X_PRICE_BOOK_TYPE in VARCHAR2,
229 X_PRODUCT_ATTRIBUTE_NAME in VARCHAR2,
230 X_CUSTOMER_ATTRIBUTE_NAME in VARCHAR2,
231 X_LANGUAGE in VARCHAR2,
232 X_SOURCE_LANG in VARCHAR2,
233 X_PUB_OUTPUT_DOCUMENT_TYPE in VARCHAR2,
234 X_PRICING_PERSPECTIVE_CODE in VARCHAR2,
235 X_OVERWRITE_EXISTING_PB_FLAG in VARCHAR2,
236 X_REQUEST_ORIGINATION_CODE in VARCHAR2,
237 X_PUB_TEMPLATE_NAME in VARCHAR2,
238 X_CURRENCY in VARCHAR2,
239 X_LIMIT_PRODUCTS_BY in VARCHAR2,
240 X_PRICE_BASED_ON in VARCHAR2,
241 X_PL_AGR_BSA_ID in NUMBER,
242 X_LIMIT_PRODUCTS_BY_NAME in VARCHAR2,
243 X_PRICE_BASED_ON_NAME in VARCHAR2,
244 X_PL_AGR_BSA_NAME in VARCHAR2,
245 X_PRICING_PERSPECTIVE in VARCHAR2,
246 X_VALIDATION_ERROR_FLAG in VARCHAR2,
247 X_CUST_ACCOUNT_ID in NUMBER
248 ) is
249 cursor c is select
250 DLV_XML_FLAG,
251 PUB_TEMPLATE_CODE,
252 DLV_EMAIL_FLAG,
253 DLV_EMAIL_ADDRESSES,
254 DLV_PRINTER_FLAG,
255 DLV_PRINTER_NAME,
256 PUB_LANGUAGE,
257 PUB_TERRITORY,
258 GENERATION_TIME_CODE,
259 GEN_SCHEDULE_DATE,
260 REQUEST_ID,
261 PRICE_BOOK_TYPE_CODE,
262 PUBLISH_EXISTING_PB_FLAG,
263 OVERWRITE_EXISTING_PB_FLAG,
264 REQUEST_ORIGINATION_CODE,
265 REQUEST_TYPE_CODE,
266 PRODUCT_ATTRIBUTE,
267 PRODUCT_ATTR_VALUE,
268 EFFECTIVE_DATE,
269 ITEM_QUANTITY,
270 PRODUCT_CONTEXT,
271 CUSTOMER_CONTEXT,
272 CUSTOMER_ATTRIBUTE,
273 CUSTOMER_ATTR_VALUE,
274 DLV_XML_SITE_ID,
275 CURRENCY_CODE,
276 ORG_ID,
277 PUB_OUTPUT_DOCUMENT_TYPE,
278 PRICING_PERSPECTIVE_CODE,
279 VALIDATION_ERROR_FLAG,
280 CUST_ACCOUNT_ID
281 from QP_PB_INPUT_HEADERS_B
282 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID
283 for update of PB_INPUT_HEADER_ID nowait;
284 recinfo c%rowtype;
285
286 cursor c1 is select
287 PRICE_BOOK_NAME,
288 PL_AGR_BSA_NAME,
289 PUB_TEMPLATE_NAME,
290 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
291 from QP_PB_INPUT_HEADERS_TL
292 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID
293 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
294 for update of PB_INPUT_HEADER_ID nowait;
295 begin
296 open c;
297 fetch c into recinfo;
298 if (c%notfound) then
299 close c;
300 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
301 app_exception.raise_exception;
302 end if;
303 close c;
304 if (
305 ((recinfo.DLV_XML_FLAG = X_DLV_XML_FLAG)
306 OR ((recinfo.DLV_XML_FLAG is null) AND (X_DLV_XML_FLAG is null)))
307 AND ((recinfo.PUB_TEMPLATE_CODE = X_PUB_TEMPLATE_CODE)
308 OR ((recinfo.PUB_TEMPLATE_CODE is null) AND (X_PUB_TEMPLATE_CODE is null)))
309 AND ((recinfo.DLV_EMAIL_FLAG = X_DLV_EMAIL_FLAG)
310 OR ((recinfo.DLV_EMAIL_FLAG is null) AND (X_DLV_EMAIL_FLAG is null)))
311 AND ((recinfo.DLV_EMAIL_ADDRESSES= X_DLV_EMAIL_ADDRESSES)
312 OR ((recinfo.DLV_EMAIL_ADDRESSES is null) AND (X_DLV_EMAIL_ADDRESSES is null)))
313 AND ((recinfo.DLV_PRINTER_FLAG = X_DLV_PRINTER_FLAG)
314 OR ((recinfo.DLV_PRINTER_FLAG is null) AND (X_DLV_PRINTER_FLAG is null)))
315 AND ((recinfo.DLV_PRINTER_NAME = X_DLV_PRINTER_NAME)
316 OR ((recinfo.DLV_PRINTER_NAME is null) AND (X_DLV_PRINTER_NAME is null)))
317 AND ((recinfo.PUB_LANGUAGE = X_PUB_LANGUAGE)
318 OR ((recinfo.PUB_LANGUAGE is null) AND (X_PUB_LANGUAGE is null)))
319 AND ((recinfo.PUB_TERRITORY = X_PUB_TERRITORY)
320 OR ((recinfo.PUB_TERRITORY is null) AND (X_PUB_TERRITORY is null)))
321 AND ((recinfo.GENERATION_TIME_CODE = X_GENERATION_TIME_CODE)
322 OR ((recinfo.GENERATION_TIME_CODE is null) AND (X_GENERATION_TIME_CODE is null)))
323 AND ((recinfo.GEN_SCHEDULE_DATE = X_GEN_SCHEDULE_DATE)
324 OR ((recinfo.GEN_SCHEDULE_DATE is null) AND (X_GEN_SCHEDULE_DATE is null)))
325 AND ((recinfo.REQUEST_ID = X_REQUEST_ID)
326 OR ((recinfo.REQUEST_ID is null) AND (X_REQUEST_ID is null)))
327 AND (recinfo.PRICE_BOOK_TYPE_CODE = X_PRICE_BOOK_TYPE_CODE)
328 AND ((recinfo.PUBLISH_EXISTING_PB_FLAG = X_PUBLISH_EXISTING_PB_FLAG)
329 OR ((recinfo.PUBLISH_EXISTING_PB_FLAG is null) AND (X_PUBLISH_EXISTING_PB_FLAG is null)))
330 AND ((recinfo.OVERWRITE_EXISTING_PB_FLAG = X_OVERWRITE_EXISTING_PB_FLAG)
331 OR ((recinfo.OVERWRITE_EXISTING_PB_FLAG is null) AND (X_OVERWRITE_EXISTING_PB_FLAG is null)))
332 AND ((recinfo.REQUEST_ORIGINATION_CODE = X_REQUEST_ORIGINATION_CODE )
333 OR ((recinfo.REQUEST_ORIGINATION_CODE is null) AND (X_REQUEST_ORIGINATION_CODE is null)))
334 AND (recinfo.REQUEST_TYPE_CODE = X_REQUEST_TYPE_CODE)
335 AND ((recinfo.PRODUCT_ATTRIBUTE = X_PRODUCT_ATTRIBUTE)
336 OR ((recinfo.PRODUCT_ATTRIBUTE is null) AND (X_PRODUCT_ATTRIBUTE is null)))
337 AND ((recinfo.PRODUCT_ATTR_VALUE = X_PRODUCT_ATTR_VALUE)
338 OR ((recinfo.PRODUCT_ATTR_VALUE is null) AND (X_PRODUCT_ATTR_VALUE is null)))
339 AND (recinfo.EFFECTIVE_DATE = X_EFFECTIVE_DATE)
340 AND (recinfo.ITEM_QUANTITY = X_ITEM_QUANTITY)
341 AND ((recinfo.ORG_ID = X_ORG_ID)
342 OR ((recinfo.ORG_ID is null) AND (X_ORG_ID is null)))
343 AND ((recinfo.PRODUCT_CONTEXT = X_PRODUCT_CONTEXT)
344 OR ((recinfo.PRODUCT_CONTEXT is null) AND (X_PRODUCT_CONTEXT is null)))
345 AND (recinfo.CUSTOMER_CONTEXT = X_CUSTOMER_CONTEXT)
346 AND (recinfo.CUSTOMER_ATTRIBUTE = X_CUSTOMER_ATTRIBUTE)
347 AND ((recinfo.CUSTOMER_ATTR_VALUE = X_CUSTOMER_ATTR_VALUE)
348 OR ((recinfo.CUSTOMER_ATTR_VALUE is null) AND (X_CUSTOMER_ATTR_VALUE is null)))
349 AND ((recinfo.DLV_XML_SITE_ID = X_DLV_XML_SITE_ID)
350 OR ((recinfo.DLV_XML_SITE_ID is null) AND (X_DLV_XML_SITE_ID is null)))
351 AND ((recinfo.CURRENCY_CODE = X_CURRENCY_CODE)
352 OR ((recinfo.CURRENCY_CODE is null) AND (X_CURRENCY_CODE is null)))
353 AND ((recinfo.PRICING_PERSPECTIVE_CODE = X_PRICING_PERSPECTIVE_CODE)
354 OR ((recinfo.PRICING_PERSPECTIVE_CODE is null) AND (X_PRICING_PERSPECTIVE_CODE is null)))
355 AND ((recinfo.PUB_OUTPUT_DOCUMENT_TYPE = X_PUB_OUTPUT_DOCUMENT_TYPE)
356 OR ((recinfo.PUB_OUTPUT_DOCUMENT_TYPE is null) AND (X_PUB_OUTPUT_DOCUMENT_TYPE is null)))
357 AND ((recinfo.VALIDATION_ERROR_FLAG = X_VALIDATION_ERROR_FLAG)
358 OR ((recinfo.VALIDATION_ERROR_FLAG is null) AND (X_VALIDATION_ERROR_FLAG is null)))
359 AND ((recinfo.CUST_ACCOUNT_ID = X_CUST_ACCOUNT_ID)
360 OR ((recinfo.CUST_ACCOUNT_ID is null) AND (X_CUST_ACCOUNT_ID is null)))
361 ) then
362 null;
363 else
364 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
365 app_exception.raise_exception;
366 end if;
367
368 for tlinfo in c1 loop
369 if (tlinfo.BASELANG = 'Y') then
370 if (tlinfo.PRICE_BOOK_NAME = X_PRICE_BOOK_NAME) then
371 null;
372 else
373 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
374 app_exception.raise_exception;
375 end if;
376 end if;
377 end loop;
378 return;
379 end LOCK_ROW;
380
381
382
383 procedure UPDATE_ROW (
384 X_PB_INPUT_HEADER_ID in NUMBER,
385 X_DLV_XML_FLAG in VARCHAR2,
389 X_DLV_PRINTER_FLAG in VARCHAR2,
386 X_PUB_TEMPLATE_CODE in VARCHAR2,
387 X_DLV_EMAIL_FLAG in VARCHAR2,
388 X_DLV_EMAIL_ADDRESSES in VARCHAR2,
390 X_DLV_PRINTER_NAME in VARCHAR2,
391 X_PUB_LANGUAGE in VARCHAR2,
392 X_PUB_TERRITORY in VARCHAR2,
393 X_GENERATION_TIME_CODE in VARCHAR2,
394 X_GEN_SCHEDULE_DATE in DATE,
395 X_REQUEST_ID in NUMBER,
396 X_PRICE_BOOK_TYPE_CODE in VARCHAR2,
397 X_PUBLISH_EXISTING_PB_FLAG in VARCHAR2,
398 X_REQUEST_TYPE_CODE in VARCHAR2,
399 X_PRODUCT_ATTRIBUTE in VARCHAR2,
400 X_PRODUCT_ATTR_VALUE in VARCHAR2,
401 X_EFFECTIVE_DATE in DATE,
402 X_ITEM_QUANTITY in NUMBER,
403 X_PRODUCT_CONTEXT in VARCHAR2,
404 X_CUSTOMER_CONTEXT in VARCHAR2,
405 X_CUSTOMER_ATTRIBUTE in VARCHAR2,
406 X_CUSTOMER_ATTR_VALUE in VARCHAR2,
407 X_DLV_XML_SITE_ID in NUMBER,
408 X_CURRENCY_CODE in VARCHAR2,
409 X_PRICE_BOOK_NAME in VARCHAR2,
410 X_LAST_UPDATE_DATE in DATE,
411 X_LAST_UPDATED_BY in NUMBER,
412 X_LAST_UPDATE_LOGIN in NUMBER,
413 X_ORG_ID in NUMBER,
414 X_OPERATING_UNIT in VARCHAR2,
415 X_CUSTOMER_NAME IN VARCHAR2,
416 X_PRODUCT_NAME IN VARCHAR2,
417 X_GENERATION_TIME in VARCHAR2,
418 X_PRICE_BOOK_TYPE in VARCHAR2,
419 X_PRODUCT_ATTRIBUTE_NAME in VARCHAR2,
420 X_CUSTOMER_ATTRIBUTE_NAME in VARCHAR2,
421 X_LANGUAGE in VARCHAR2,
422 X_SOURCE_LANG in VARCHAR2,
423 X_PUB_OUTPUT_DOCUMENT_TYPE in VARCHAR2,
424 X_PRICING_PERSPECTIVE_CODE in VARCHAR2,
425 X_OVERWRITE_EXISTING_PB_FLAG in VARCHAR2,
426 X_REQUEST_ORIGINATION_CODE in VARCHAR2,
427 X_PUB_TEMPLATE_NAME in VARCHAR2,
428 X_CURRENCY in VARCHAR2,
429 X_LIMIT_PRODUCTS_BY in VARCHAR2,
430 X_PRICE_BASED_ON in VARCHAR2,
431 X_PL_AGR_BSA_ID in NUMBER,
432 X_LIMIT_PRODUCTS_BY_NAME in VARCHAR2,
433 X_PRICE_BASED_ON_NAME in VARCHAR2,
434 X_PL_AGR_BSA_NAME in VARCHAR2,
435 X_PRICING_PERSPECTIVE in VARCHAR2,
436 X_VALIDATION_ERROR_FLAG in VARCHAR2,
437 X_CUST_ACCOUNT_ID in NUMBER
438 ) is
439 begin
440 update QP_PB_INPUT_HEADERS_B set
441 DLV_XML_FLAG = X_DLV_XML_FLAG,
442 PUB_TEMPLATE_CODE = X_PUB_TEMPLATE_CODE ,
443 DLV_EMAIL_FLAG = X_DLV_EMAIL_FLAG ,
444 DLV_EMAIL_ADDRESSES = X_DLV_EMAIL_ADDRESSES ,
445 DLV_PRINTER_FLAG = X_DLV_PRINTER_FLAG ,
446 DLV_PRINTER_NAME = X_DLV_PRINTER_NAME ,
447 PUB_LANGUAGE = X_PUB_LANGUAGE ,
448 PUB_TERRITORY = X_PUB_TERRITORY ,
449 GENERATION_TIME_CODE = X_GENERATION_TIME_CODE,
450 GEN_SCHEDULE_DATE = X_GEN_SCHEDULE_DATE,
451 REQUEST_ID = X_REQUEST_ID,
452 PRICE_BOOK_TYPE_CODE = X_PRICE_BOOK_TYPE_CODE,
453 PUBLISH_EXISTING_PB_FLAG = X_PUBLISH_EXISTING_PB_FLAG,
454 OVERWRITE_EXISTING_PB_FLAG = X_OVERWRITE_EXISTING_PB_FLAG,
455 REQUEST_ORIGINATION_CODE = X_REQUEST_ORIGINATION_CODE,
456 REQUEST_TYPE_CODE = X_REQUEST_TYPE_CODE,
457 LIMIT_PRODUCTS_BY = X_LIMIT_PRODUCTS_BY,
458 PRODUCT_ATTRIBUTE = X_PRODUCT_ATTRIBUTE,
459 PRODUCT_ATTR_VALUE = X_PRODUCT_ATTR_VALUE,
460 PRICE_BASED_ON = X_PRICE_BASED_ON,
461 PL_AGR_BSA_ID = X_PL_AGR_BSA_ID,
462 EFFECTIVE_DATE = X_EFFECTIVE_DATE,
463 ITEM_QUANTITY = X_ITEM_QUANTITY,
464 PRODUCT_CONTEXT = X_PRODUCT_CONTEXT,
465 CUSTOMER_CONTEXT = X_CUSTOMER_CONTEXT,
466 CUSTOMER_ATTRIBUTE = X_CUSTOMER_ATTRIBUTE,
467 CUSTOMER_ATTR_VALUE = X_CUSTOMER_ATTR_VALUE,
468 DLV_XML_SITE_ID = X_DLV_XML_SITE_ID,
469 CURRENCY_CODE = X_CURRENCY_CODE,
470 ORG_ID = X_ORG_ID,
471 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
472 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
473 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
474 PUB_OUTPUT_DOCUMENT_TYPE = X_PUB_OUTPUT_DOCUMENT_TYPE ,
475 PRICING_PERSPECTIVE_CODE = X_PRICING_PERSPECTIVE_CODE,
476 VALIDATION_ERROR_FLAG = X_VALIDATION_ERROR_FLAG,
477 CUST_ACCOUNT_ID = X_CUST_ACCOUNT_ID
478 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID;
479
480 if (sql%notfound) then
481 raise no_data_found;
482 end if;
483
484 update QP_PB_INPUT_HEADERS_TL set
485 PRICE_BOOK_NAME = X_PRICE_BOOK_NAME,
486 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
487 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
488 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
489 PL_AGR_BSA_NAME = X_PL_AGR_BSA_NAME,
490 PUB_TEMPLATE_NAME = X_PUB_TEMPLATE_NAME,
491 SOURCE_LANG = userenv('LANG')
492 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID
493 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
494
495 if (sql%notfound) then
496 raise no_data_found;
497 end if;
498 end UPDATE_ROW;
499
500 procedure DELETE_ROW (
501 X_PB_INPUT_HEADER_ID in NUMBER
502 ) is
503 begin
504 delete from QP_PB_INPUT_HEADERS_TL
505 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID;
506
507 if (sql%notfound) then
508 raise no_data_found;
509 end if;
510
511 delete from QP_PB_INPUT_HEADERS_B
512 where PB_INPUT_HEADER_ID = X_PB_INPUT_HEADER_ID;
513
514 if (sql%notfound) then
515 raise no_data_found;
516 end if;
517 end DELETE_ROW;
518
519 procedure ADD_LANGUAGE
520 is
521 begin
522 delete from QP_PB_INPUT_HEADERS_TL T
523 where not exists
524 (select NULL
525 from QP_PB_INPUT_HEADERS_B B
526 where B.PB_INPUT_HEADER_ID = T.PB_INPUT_HEADER_ID
527 );
528
529 update QP_PB_INPUT_HEADERS_TL T set (
530 PRICE_BOOK_NAME,
531 PL_AGR_BSA_NAME,
532 PUB_TEMPLATE_NAME
533 ) = (select
534 B.PRICE_BOOK_NAME,
535 B.PL_AGR_BSA_NAME,
536 B.PUB_TEMPLATE_NAME
537 from QP_PB_INPUT_HEADERS_TL B
538 where B.PB_INPUT_HEADER_ID = T.PB_INPUT_HEADER_ID
539 and B.LANGUAGE = T.SOURCE_LANG)
543 ) in (select
540 where (
541 T.PB_INPUT_HEADER_ID,
542 T.LANGUAGE
544 SUBT.PB_INPUT_HEADER_ID,
545 SUBT.LANGUAGE
546 from QP_PB_INPUT_HEADERS_TL SUBB, QP_PB_INPUT_HEADERS_TL SUBT
547 where SUBB.PB_INPUT_HEADER_ID = SUBT.PB_INPUT_HEADER_ID
548 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
549 and (SUBB.PRICE_BOOK_NAME <> SUBT.PRICE_BOOK_NAME
550 or SUBB.PL_AGR_BSA_NAME <> SUBT.PL_AGR_BSA_NAME
551 or (SUBB.PL_AGR_BSA_NAME is null and SUBT.PL_AGR_BSA_NAME is not null)
552 or (SUBB.PL_AGR_BSA_NAME is not null and SUBT.PL_AGR_BSA_NAME is null)
553 ));
554
555 insert into QP_PB_INPUT_HEADERS_TL (
556 PRICE_BOOK_NAME,
557 PB_INPUT_HEADER_ID,
558 LAST_UPDATE_LOGIN,
559 LAST_UPDATED_BY,
560 PL_AGR_BSA_NAME,
561 PUB_TEMPLATE_NAME,
562 CREATION_DATE,
563 CREATED_BY,
564 LAST_UPDATE_DATE,
565 LANGUAGE,
566 SOURCE_LANG
567 ) select /*+ ORDERED */
568 B.PRICE_BOOK_NAME,
569 B.PB_INPUT_HEADER_ID,
570 B.LAST_UPDATE_LOGIN,
571 B.LAST_UPDATED_BY,
572 B.PL_AGR_BSA_NAME,
573 B.PUB_TEMPLATE_NAME,
574 B.CREATION_DATE,
575 B.CREATED_BY,
576 B.LAST_UPDATE_DATE,
577 L.LANGUAGE_CODE,
578 B.SOURCE_LANG
579 from QP_PB_INPUT_HEADERS_TL B, FND_LANGUAGES L
580 where L.INSTALLED_FLAG in ('I', 'B')
581 and B.LANGUAGE = userenv('LANG')
582 and not exists
583 (select NULL
584 from QP_PB_INPUT_HEADERS_TL T
585 where T.PB_INPUT_HEADER_ID = B.PB_INPUT_HEADER_ID
586 and T.LANGUAGE = L.LANGUAGE_CODE);
587 end ADD_LANGUAGE;
588
589 end QP_PB_INPUT_HEADERS_PKG;