1 package body FM_FORM_MST_MLS as
2 /* $Header: GMDFMLSB.pls 120.1.12000000.3 2007/03/02 13:17:34 kmotupal ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in OUT NOCOPY VARCHAR2,
5 X_FORMULA_ID in NUMBER,
6 X_MASTER_FORMULA_ID in NUMBER,
7 X_OWNER_ORGANIZATION_ID in NUMBER,
8 X_ATTRIBUTE_CATEGORY in VARCHAR2,
9 X_TEXT_CODE in NUMBER,
10 X_DELETE_MARK in NUMBER,
11 X_TOTAL_INPUT_QTY in NUMBER,
12 X_PROJECT_ID in NUMBER,
13 X_TOTAL_OUTPUT_QTY in NUMBER,
14 X_YIELD_UOM in VARCHAR2,
15 X_FORMULA_STATUS in VARCHAR2,
16 X_OWNER_ID in NUMBER,
17 X_FORMULA_NO in VARCHAR2,
18 X_FORMULA_VERS in NUMBER,
19 X_FORMULA_TYPE in NUMBER,
20 X_ATTRIBUTE5 in VARCHAR2,
21 X_ATTRIBUTE6 in VARCHAR2,
22 X_ATTRIBUTE7 in VARCHAR2,
23 X_ATTRIBUTE2 in VARCHAR2,
24 X_ATTRIBUTE3 in VARCHAR2,
25 X_ATTRIBUTE4 in VARCHAR2,
26 X_ATTRIBUTE30 in VARCHAR2,
27 X_IN_USE in NUMBER,
28 X_INACTIVE_IND in NUMBER,
29 X_ATTRIBUTE1 in VARCHAR2,
30 X_SCALE_TYPE in NUMBER,
31 X_FORMULA_CLASS in VARCHAR2,
32 X_FMCONTROL_CLASS in VARCHAR2,
33 X_ATTRIBUTE8 in VARCHAR2,
34 X_ATTRIBUTE9 in VARCHAR2,
35 X_ATTRIBUTE10 in VARCHAR2,
36 X_ATTRIBUTE11 in VARCHAR2,
37 X_ATTRIBUTE12 in VARCHAR2,
38 X_ATTRIBUTE13 in VARCHAR2,
39 X_ATTRIBUTE14 in VARCHAR2,
40 X_ATTRIBUTE15 in VARCHAR2,
41 X_ATTRIBUTE16 in VARCHAR2,
42 X_ATTRIBUTE17 in VARCHAR2,
43 X_ATTRIBUTE18 in VARCHAR2,
44 X_ATTRIBUTE19 in VARCHAR2,
45 X_ATTRIBUTE20 in VARCHAR2,
46 X_ATTRIBUTE21 in VARCHAR2,
47 X_ATTRIBUTE22 in VARCHAR2,
48 X_ATTRIBUTE23 in VARCHAR2,
49 X_ATTRIBUTE24 in VARCHAR2,
50 X_ATTRIBUTE25 in VARCHAR2,
51 X_ATTRIBUTE26 in VARCHAR2,
52 X_ATTRIBUTE27 in VARCHAR2,
53 X_ATTRIBUTE28 in VARCHAR2,
54 X_ATTRIBUTE29 in VARCHAR2,
55 X_FORMULA_DESC1 in VARCHAR2,
56 X_FORMULA_DESC2 in VARCHAR2,
57 X_CREATION_DATE in DATE,
58 X_CREATED_BY in NUMBER,
59 X_LAST_UPDATE_DATE in DATE,
60 X_LAST_UPDATED_BY in NUMBER,
61 X_LAST_UPDATE_LOGIN in NUMBER,
62 X_AUTO_PRODUCT_CALC in VARCHAR2 DEFAULT NULL
63 ) is
64 cursor C is select ROWID from FM_FORM_MST_B
65 where FORMULA_ID = X_FORMULA_ID
66 ;
67 begin
68 insert into FM_FORM_MST_B (
69 OWNER_ORGANIZATION_ID,
70 ATTRIBUTE_CATEGORY,
71 TEXT_CODE,
72 DELETE_MARK,
73 TOTAL_INPUT_QTY,
74 PROJECT_ID,
75 TOTAL_OUTPUT_QTY,
76 YIELD_UOM,
77 FORMULA_STATUS,
78 OWNER_ID,
79 FORMULA_ID,
80 MASTER_FORMULA_ID,
81 FORMULA_NO,
82 FORMULA_VERS,
83 FORMULA_TYPE,
84 ATTRIBUTE5,
85 ATTRIBUTE6,
86 ATTRIBUTE7,
87 ATTRIBUTE2,
88 ATTRIBUTE3,
89 ATTRIBUTE4,
90 ATTRIBUTE30,
91 IN_USE,
92 INACTIVE_IND,
93 ATTRIBUTE1,
94 SCALE_TYPE,
95 FORMULA_CLASS,
96 FMCONTROL_CLASS,
97 ATTRIBUTE8,
98 ATTRIBUTE9,
99 ATTRIBUTE10,
100 ATTRIBUTE11,
101 ATTRIBUTE12,
102 ATTRIBUTE13,
103 ATTRIBUTE14,
104 ATTRIBUTE15,
105 ATTRIBUTE16,
106 ATTRIBUTE17,
107 ATTRIBUTE18,
108 ATTRIBUTE19,
109 ATTRIBUTE20,
110 ATTRIBUTE21,
111 ATTRIBUTE22,
112 ATTRIBUTE23,
113 ATTRIBUTE24,
114 ATTRIBUTE25,
115 ATTRIBUTE26,
116 ATTRIBUTE27,
117 ATTRIBUTE28,
118 ATTRIBUTE29,
119 CREATION_DATE,
120 CREATED_BY,
121 LAST_UPDATE_DATE,
122 LAST_UPDATED_BY,
123 LAST_UPDATE_LOGIN,
124 AUTO_PRODUCT_CALC
125 ) values (
126 X_OWNER_ORGANIZATION_ID,
127 X_ATTRIBUTE_CATEGORY,
128 X_TEXT_CODE,
129 X_DELETE_MARK,
130 X_TOTAL_INPUT_QTY,
131 X_PROJECT_ID,
132 X_TOTAL_OUTPUT_QTY,
133 X_YIELD_UOM,
134 X_FORMULA_STATUS,
135 X_OWNER_ID,
136 X_FORMULA_ID,
137 X_MASTER_FORMULA_ID,
138 X_FORMULA_NO,
139 X_FORMULA_VERS,
140 X_FORMULA_TYPE,
141 X_ATTRIBUTE5,
142 X_ATTRIBUTE6,
143 X_ATTRIBUTE7,
144 X_ATTRIBUTE2,
145 X_ATTRIBUTE3,
146 X_ATTRIBUTE4,
147 X_ATTRIBUTE30,
148 X_IN_USE,
149 X_INACTIVE_IND,
150 X_ATTRIBUTE1,
151 X_SCALE_TYPE,
152 X_FORMULA_CLASS,
153 X_FMCONTROL_CLASS,
154 X_ATTRIBUTE8,
155 X_ATTRIBUTE9,
156 X_ATTRIBUTE10,
157 X_ATTRIBUTE11,
158 X_ATTRIBUTE12,
159 X_ATTRIBUTE13,
160 X_ATTRIBUTE14,
161 X_ATTRIBUTE15,
162 X_ATTRIBUTE16,
163 X_ATTRIBUTE17,
164 X_ATTRIBUTE18,
165 X_ATTRIBUTE19,
166 X_ATTRIBUTE20,
167 X_ATTRIBUTE21,
168 X_ATTRIBUTE22,
169 X_ATTRIBUTE23,
170 X_ATTRIBUTE24,
171 X_ATTRIBUTE25,
172 X_ATTRIBUTE26,
173 X_ATTRIBUTE27,
174 X_ATTRIBUTE28,
175 X_ATTRIBUTE29,
176 X_CREATION_DATE,
177 X_CREATED_BY,
178 X_LAST_UPDATE_DATE,
179 X_LAST_UPDATED_BY,
180 X_LAST_UPDATE_LOGIN,
181 X_AUTO_PRODUCT_CALC
182 );
183
184 insert into FM_FORM_MST_TL (
185 FORMULA_ID,
186 LAST_UPDATE_DATE,
187 LAST_UPDATE_LOGIN,
188 CREATION_DATE,
189 LAST_UPDATED_BY,
190 CREATED_BY,
191 FORMULA_DESC1,
192 FORMULA_DESC2,
193 LANGUAGE,
194 SOURCE_LANG
195 ) select
196 X_FORMULA_ID,
197 X_LAST_UPDATE_DATE,
198 X_LAST_UPDATE_LOGIN,
199 X_CREATION_DATE,
200 X_LAST_UPDATED_BY,
201 X_CREATED_BY,
202 X_FORMULA_DESC1,
203 X_FORMULA_DESC2,
204 L.LANGUAGE_CODE,
205 userenv('LANG')
206 from FND_LANGUAGES L
207 where L.INSTALLED_FLAG in ('I', 'B')
208 and not exists
209 (select NULL
210 from FM_FORM_MST_TL T
211 where T.FORMULA_ID = X_FORMULA_ID
212 and T.LANGUAGE = L.LANGUAGE_CODE);
213
214 open c;
215 fetch c into X_ROWID;
216 if (c%notfound) then
217 close c;
218 raise no_data_found;
219 end if;
220 close c;
221
222 end INSERT_ROW;
223
224 procedure LOCK_ROW (
225 X_FORMULA_ID in NUMBER,
226 X_MASTER_FORMULA_ID in NUMBER,
227 X_OWNER_ORGANIZATION_ID in NUMBER,
228 X_ATTRIBUTE_CATEGORY in VARCHAR2,
229 X_TEXT_CODE in NUMBER,
230 X_DELETE_MARK in NUMBER,
231 X_TOTAL_INPUT_QTY in NUMBER,
232 X_PROJECT_ID in NUMBER,
233 X_TOTAL_OUTPUT_QTY in NUMBER,
234 X_YIELD_UOM in VARCHAR2,
235 X_FORMULA_STATUS in VARCHAR2,
236 X_OWNER_ID in NUMBER,
237 X_FORMULA_NO in VARCHAR2,
238 X_FORMULA_VERS in NUMBER,
239 X_FORMULA_TYPE in NUMBER,
240 X_ATTRIBUTE5 in VARCHAR2,
241 X_ATTRIBUTE6 in VARCHAR2,
242 X_ATTRIBUTE7 in VARCHAR2,
243 X_ATTRIBUTE2 in VARCHAR2,
244 X_ATTRIBUTE3 in VARCHAR2,
245 X_ATTRIBUTE4 in VARCHAR2,
246 X_ATTRIBUTE30 in VARCHAR2,
247 X_IN_USE in NUMBER,
248 X_INACTIVE_IND in NUMBER,
249 X_ATTRIBUTE1 in VARCHAR2,
250 X_SCALE_TYPE in NUMBER,
251 X_FORMULA_CLASS in VARCHAR2,
252 X_FMCONTROL_CLASS in VARCHAR2,
253 X_ATTRIBUTE8 in VARCHAR2,
254 X_ATTRIBUTE9 in VARCHAR2,
255 X_ATTRIBUTE10 in VARCHAR2,
256 X_ATTRIBUTE11 in VARCHAR2,
257 X_ATTRIBUTE12 in VARCHAR2,
258 X_ATTRIBUTE13 in VARCHAR2,
259 X_ATTRIBUTE14 in VARCHAR2,
260 X_ATTRIBUTE15 in VARCHAR2,
261 X_ATTRIBUTE16 in VARCHAR2,
262 X_ATTRIBUTE17 in VARCHAR2,
263 X_ATTRIBUTE18 in VARCHAR2,
264 X_ATTRIBUTE19 in VARCHAR2,
265 X_ATTRIBUTE20 in VARCHAR2,
266 X_ATTRIBUTE21 in VARCHAR2,
267 X_ATTRIBUTE22 in VARCHAR2,
268 X_ATTRIBUTE23 in VARCHAR2,
269 X_ATTRIBUTE24 in VARCHAR2,
270 X_ATTRIBUTE25 in VARCHAR2,
271 X_ATTRIBUTE26 in VARCHAR2,
272 X_ATTRIBUTE27 in VARCHAR2,
273 X_ATTRIBUTE28 in VARCHAR2,
274 X_ATTRIBUTE29 in VARCHAR2,
275 X_FORMULA_DESC1 in VARCHAR2,
276 X_FORMULA_DESC2 in VARCHAR2,
277 X_AUTO_PRODUCT_CALC in VARCHAR2 DEFAULT NULL
278 ) is
279 cursor c is select
280 OWNER_ORGANIZATION_ID,
281 MASTER_FORMULA_ID,
282 ATTRIBUTE_CATEGORY,
283 TEXT_CODE,
284 DELETE_MARK,
285 TOTAL_INPUT_QTY,
286 PROJECT_ID,
287 TOTAL_OUTPUT_QTY,
288 YIELD_UOM,
289 FORMULA_STATUS,
290 OWNER_ID,
291 FORMULA_NO,
292 FORMULA_VERS,
293 FORMULA_TYPE,
294 ATTRIBUTE5,
295 ATTRIBUTE6,
296 ATTRIBUTE7,
297 ATTRIBUTE2,
298 ATTRIBUTE3,
299 ATTRIBUTE4,
300 ATTRIBUTE30,
301 IN_USE,
302 INACTIVE_IND,
303 ATTRIBUTE1,
304 SCALE_TYPE,
305 FORMULA_CLASS,
306 FMCONTROL_CLASS,
307 ATTRIBUTE8,
308 ATTRIBUTE9,
309 ATTRIBUTE10,
310 ATTRIBUTE11,
311 ATTRIBUTE12,
312 ATTRIBUTE13,
313 ATTRIBUTE14,
314 ATTRIBUTE15,
315 ATTRIBUTE16,
316 ATTRIBUTE17,
317 ATTRIBUTE18,
318 ATTRIBUTE19,
319 ATTRIBUTE20,
320 ATTRIBUTE21,
321 ATTRIBUTE22,
322 ATTRIBUTE23,
323 ATTRIBUTE24,
324 ATTRIBUTE25,
325 ATTRIBUTE26,
326 ATTRIBUTE27,
327 ATTRIBUTE28,
328 ATTRIBUTE29,
329 AUTO_PRODUCT_CALC
330 from FM_FORM_MST_B
331 where FORMULA_ID = X_FORMULA_ID
332 for update of FORMULA_ID nowait;
333 recinfo c%rowtype;
334
335 cursor c1 is select
336 FORMULA_DESC1,
337 FORMULA_DESC2,
338 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
339 from FM_FORM_MST_TL
340 where FORMULA_ID = X_FORMULA_ID
341 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
342 for update of FORMULA_ID nowait;
343 begin
344 open c;
345 fetch c into recinfo;
346 if (c%notfound) then
347 close c;
348 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
349 app_exception.raise_exception;
350 end if;
351 close c;
352 if ( ((recinfo.OWNER_ORGANIZATION_ID = X_OWNER_ORGANIZATION_ID)
353 OR ((recinfo.OWNER_ORGANIZATION_ID is null) AND (X_OWNER_ORGANIZATION_ID is null)))
354 AND ((recinfo.MASTER_FORMULA_ID = X_MASTER_FORMULA_ID)
355 OR ((recinfo.MASTER_FORMULA_ID is null) AND (X_MASTER_FORMULA_ID is null)))
356 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
357 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
358 AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
359 OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
360 AND (recinfo.DELETE_MARK = X_DELETE_MARK)
361 AND ((recinfo.TOTAL_INPUT_QTY = X_TOTAL_INPUT_QTY)
362 OR ((recinfo.TOTAL_INPUT_QTY is null) AND (X_TOTAL_INPUT_QTY is null)))
363 AND ((recinfo.PROJECT_ID = X_PROJECT_ID)
364 OR ((recinfo.PROJECT_ID is null) AND (X_PROJECT_ID is null)))
365 AND ((recinfo.TOTAL_OUTPUT_QTY = X_TOTAL_OUTPUT_QTY)
366 OR ((recinfo.TOTAL_OUTPUT_QTY is null) AND (X_TOTAL_OUTPUT_QTY is null)))
367 AND ((recinfo.YIELD_UOM = X_YIELD_UOM)
368 OR ((recinfo.YIELD_UOM is null) AND (X_YIELD_UOM is null)))
369 AND ((recinfo.FORMULA_STATUS = X_FORMULA_STATUS)
370 OR ((recinfo.FORMULA_STATUS is null) AND (X_FORMULA_STATUS is null)))
371 AND ((recinfo.OWNER_ID = X_OWNER_ID)
372 OR ((recinfo.OWNER_ID is null) AND (X_OWNER_ID is null)))
373 AND (recinfo.FORMULA_NO = X_FORMULA_NO)
374 AND (recinfo.FORMULA_VERS = X_FORMULA_VERS)
375 AND (recinfo.FORMULA_TYPE = X_FORMULA_TYPE)
376 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
377 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
378 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
379 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
380 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
381 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
382 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
383 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
384 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
385 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
386 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
387 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
388 AND ((recinfo.ATTRIBUTE30 = X_ATTRIBUTE30)
389 OR ((recinfo.ATTRIBUTE30 is null) AND (X_ATTRIBUTE30 is null)))
390 AND ((recinfo.IN_USE = X_IN_USE)
391 OR ((recinfo.IN_USE is null) AND (X_IN_USE is null)))
392 AND (recinfo.INACTIVE_IND = X_INACTIVE_IND)
393 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
394 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
395 AND (recinfo.SCALE_TYPE = X_SCALE_TYPE)
396 AND ((recinfo.FORMULA_CLASS = X_FORMULA_CLASS)
397 OR ((recinfo.FORMULA_CLASS is null) AND (X_FORMULA_CLASS is null)))
398 AND ((recinfo.FMCONTROL_CLASS = X_FMCONTROL_CLASS)
399 OR ((recinfo.FMCONTROL_CLASS is null) AND (X_FMCONTROL_CLASS is null)))
400 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
401 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
402 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
403 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
404 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
405 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
406 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
407 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
408 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
409 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
410 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
411 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
412 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
413 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
414 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
415 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
416 AND ((recinfo.ATTRIBUTE16 = X_ATTRIBUTE16)
417 OR ((recinfo.ATTRIBUTE16 is null) AND (X_ATTRIBUTE16 is null)))
418 AND ((recinfo.ATTRIBUTE17 = X_ATTRIBUTE17)
419 OR ((recinfo.ATTRIBUTE17 is null) AND (X_ATTRIBUTE17 is null)))
420 AND ((recinfo.ATTRIBUTE18 = X_ATTRIBUTE18)
421 OR ((recinfo.ATTRIBUTE18 is null) AND (X_ATTRIBUTE18 is null)))
422 AND ((recinfo.ATTRIBUTE19 = X_ATTRIBUTE19)
423 OR ((recinfo.ATTRIBUTE19 is null) AND (X_ATTRIBUTE19 is null)))
424 AND ((recinfo.ATTRIBUTE20 = X_ATTRIBUTE20)
425 OR ((recinfo.ATTRIBUTE20 is null) AND (X_ATTRIBUTE20 is null)))
426 AND ((recinfo.ATTRIBUTE21 = X_ATTRIBUTE21)
427 OR ((recinfo.ATTRIBUTE21 is null) AND (X_ATTRIBUTE21 is null)))
428 AND ((recinfo.ATTRIBUTE22 = X_ATTRIBUTE22)
429 OR ((recinfo.ATTRIBUTE22 is null) AND (X_ATTRIBUTE22 is null)))
430 AND ((recinfo.ATTRIBUTE23 = X_ATTRIBUTE23)
431 OR ((recinfo.ATTRIBUTE23 is null) AND (X_ATTRIBUTE23 is null)))
432 AND ((recinfo.ATTRIBUTE24 = X_ATTRIBUTE24)
433 OR ((recinfo.ATTRIBUTE24 is null) AND (X_ATTRIBUTE24 is null)))
434 AND ((recinfo.ATTRIBUTE25 = X_ATTRIBUTE25)
435 OR ((recinfo.ATTRIBUTE25 is null) AND (X_ATTRIBUTE25 is null)))
436 AND ((recinfo.ATTRIBUTE26 = X_ATTRIBUTE26)
437 OR ((recinfo.ATTRIBUTE26 is null) AND (X_ATTRIBUTE26 is null)))
438 AND ((recinfo.ATTRIBUTE27 = X_ATTRIBUTE27)
439 OR ((recinfo.ATTRIBUTE27 is null) AND (X_ATTRIBUTE27 is null)))
440 AND ((recinfo.ATTRIBUTE28 = X_ATTRIBUTE28)
441 OR ((recinfo.ATTRIBUTE28 is null) AND (X_ATTRIBUTE28 is null)))
445 OR ((recinfo.AUTO_PRODUCT_CALC is null) AND (X_AUTO_PRODUCT_CALC is null)))
442 AND ((recinfo.ATTRIBUTE29 = X_ATTRIBUTE29)
443 OR ((recinfo.ATTRIBUTE29 is null) AND (X_ATTRIBUTE29 is null)))
444 AND ((recinfo.AUTO_PRODUCT_CALC = X_AUTO_PRODUCT_CALC)
446 ) then
447 null;
448 else
449 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
450 app_exception.raise_exception;
451 end if;
452
453 for tlinfo in c1 loop
454 if (tlinfo.BASELANG = 'Y') then
455 if ( (tlinfo.FORMULA_DESC1 = X_FORMULA_DESC1)
456 AND ((tlinfo.FORMULA_DESC2 = X_FORMULA_DESC2)
457 OR ((tlinfo.FORMULA_DESC2 is null) AND (X_FORMULA_DESC2 is null)))
458 ) then
459 null;
460 else
461 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
462 app_exception.raise_exception;
463 end if;
464 end if;
465 end loop;
466 return;
467 end LOCK_ROW;
468
469 procedure UPDATE_ROW (
470 X_FORMULA_ID in NUMBER,
471 X_OWNER_ORGANIZATION_ID in NUMBER,
472 X_ATTRIBUTE_CATEGORY in VARCHAR2,
473 X_TEXT_CODE in NUMBER,
474 X_DELETE_MARK in NUMBER,
475 X_TOTAL_INPUT_QTY in NUMBER,
476 X_PROJECT_ID in NUMBER,
477 X_TOTAL_OUTPUT_QTY in NUMBER,
478 X_YIELD_UOM in VARCHAR2,
479 X_FORMULA_STATUS in VARCHAR2,
480 X_OWNER_ID in NUMBER,
481 X_FORMULA_NO in VARCHAR2,
482 X_FORMULA_VERS in NUMBER,
483 X_FORMULA_TYPE in NUMBER,
484 X_ATTRIBUTE5 in VARCHAR2,
485 X_ATTRIBUTE6 in VARCHAR2,
486 X_ATTRIBUTE7 in VARCHAR2,
487 X_ATTRIBUTE2 in VARCHAR2,
488 X_ATTRIBUTE3 in VARCHAR2,
489 X_ATTRIBUTE4 in VARCHAR2,
490 X_ATTRIBUTE30 in VARCHAR2,
491 X_IN_USE in NUMBER,
492 X_INACTIVE_IND in NUMBER,
493 X_ATTRIBUTE1 in VARCHAR2,
494 X_SCALE_TYPE in NUMBER,
495 X_FORMULA_CLASS in VARCHAR2,
496 X_FMCONTROL_CLASS in VARCHAR2,
497 X_ATTRIBUTE8 in VARCHAR2,
498 X_ATTRIBUTE9 in VARCHAR2,
499 X_ATTRIBUTE10 in VARCHAR2,
500 X_ATTRIBUTE11 in VARCHAR2,
501 X_ATTRIBUTE12 in VARCHAR2,
502 X_ATTRIBUTE13 in VARCHAR2,
503 X_ATTRIBUTE14 in VARCHAR2,
504 X_ATTRIBUTE15 in VARCHAR2,
505 X_ATTRIBUTE16 in VARCHAR2,
506 X_ATTRIBUTE17 in VARCHAR2,
507 X_ATTRIBUTE18 in VARCHAR2,
508 X_ATTRIBUTE19 in VARCHAR2,
509 X_ATTRIBUTE20 in VARCHAR2,
510 X_ATTRIBUTE21 in VARCHAR2,
511 X_ATTRIBUTE22 in VARCHAR2,
512 X_ATTRIBUTE23 in VARCHAR2,
513 X_ATTRIBUTE24 in VARCHAR2,
514 X_ATTRIBUTE25 in VARCHAR2,
515 X_ATTRIBUTE26 in VARCHAR2,
516 X_ATTRIBUTE27 in VARCHAR2,
517 X_ATTRIBUTE28 in VARCHAR2,
518 X_ATTRIBUTE29 in VARCHAR2,
519 X_FORMULA_DESC1 in VARCHAR2,
520 X_FORMULA_DESC2 in VARCHAR2,
521 X_LAST_UPDATE_DATE in DATE,
522 X_LAST_UPDATED_BY in NUMBER,
523 X_LAST_UPDATE_LOGIN in NUMBER,
524 X_AUTO_PRODUCT_CALC in VARCHAR2 DEFAULT NULL
525 ) is
526 begin
527 update FM_FORM_MST_B set
528 OWNER_ORGANIZATION_ID = X_OWNER_ORGANIZATION_ID,
529 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
530 TEXT_CODE = X_TEXT_CODE,
531 DELETE_MARK = X_DELETE_MARK,
532 -- TOTAL_INPUT_QTY = X_TOTAL_INPUT_QTY,
533 PROJECT_ID = X_PROJECT_ID,
534 -- TOTAL_OUTPUT_QTY = X_TOTAL_OUTPUT_QTY,
535 -- FORMULA_UOM = X_FORMULA_UOM,
536 -- Bug #3018075 (JKB) Commented above.
537 FORMULA_STATUS = X_FORMULA_STATUS,
538 OWNER_ID = X_OWNER_ID,
539 FORMULA_NO = X_FORMULA_NO,
540 FORMULA_VERS = X_FORMULA_VERS,
541 FORMULA_TYPE = X_FORMULA_TYPE,
542 ATTRIBUTE5 = X_ATTRIBUTE5,
543 ATTRIBUTE6 = X_ATTRIBUTE6,
544 ATTRIBUTE7 = X_ATTRIBUTE7,
545 ATTRIBUTE2 = X_ATTRIBUTE2,
546 ATTRIBUTE3 = X_ATTRIBUTE3,
547 ATTRIBUTE4 = X_ATTRIBUTE4,
548 ATTRIBUTE30 = X_ATTRIBUTE30,
549 IN_USE = X_IN_USE,
550 INACTIVE_IND = X_INACTIVE_IND,
551 ATTRIBUTE1 = X_ATTRIBUTE1,
552 SCALE_TYPE = X_SCALE_TYPE,
553 FORMULA_CLASS = X_FORMULA_CLASS,
554 FMCONTROL_CLASS = X_FMCONTROL_CLASS,
555 ATTRIBUTE8 = X_ATTRIBUTE8,
556 ATTRIBUTE9 = X_ATTRIBUTE9,
557 ATTRIBUTE10 = X_ATTRIBUTE10,
558 ATTRIBUTE11 = X_ATTRIBUTE11,
559 ATTRIBUTE12 = X_ATTRIBUTE12,
560 ATTRIBUTE13 = X_ATTRIBUTE13,
561 ATTRIBUTE14 = X_ATTRIBUTE14,
562 ATTRIBUTE15 = X_ATTRIBUTE15,
563 ATTRIBUTE16 = X_ATTRIBUTE16,
564 ATTRIBUTE17 = X_ATTRIBUTE17,
565 ATTRIBUTE18 = X_ATTRIBUTE18,
566 ATTRIBUTE19 = X_ATTRIBUTE19,
567 ATTRIBUTE20 = X_ATTRIBUTE20,
568 ATTRIBUTE21 = X_ATTRIBUTE21,
569 ATTRIBUTE22 = X_ATTRIBUTE22,
570 ATTRIBUTE23 = X_ATTRIBUTE23,
571 ATTRIBUTE24 = X_ATTRIBUTE24,
572 ATTRIBUTE25 = X_ATTRIBUTE25,
573 ATTRIBUTE26 = X_ATTRIBUTE26,
574 ATTRIBUTE27 = X_ATTRIBUTE27,
575 ATTRIBUTE28 = X_ATTRIBUTE28,
576 ATTRIBUTE29 = X_ATTRIBUTE29,
577 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
578 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
579 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
580 AUTO_PRODUCT_CALC = X_AUTO_PRODUCT_CALC
581 where FORMULA_ID = X_FORMULA_ID;
582
583 if (sql%notfound) then
587 update FM_FORM_MST_TL set
584 raise no_data_found;
585 end if;
586
588 FORMULA_DESC1 = X_FORMULA_DESC1,
589 FORMULA_DESC2 = X_FORMULA_DESC2,
590 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
591 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
592 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
593 SOURCE_LANG = userenv('LANG')
594 where FORMULA_ID = X_FORMULA_ID
595 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
596
597 if (sql%notfound) then
598 raise no_data_found;
599 end if;
600 end UPDATE_ROW;
601
602 procedure DELETE_ROW (
603 X_FORMULA_ID in NUMBER
604 ) is
605 begin
606 delete from FM_FORM_MST_TL
607 where FORMULA_ID = X_FORMULA_ID;
608
609 if (sql%notfound) then
610 raise no_data_found;
611 end if;
612
613 delete from FM_FORM_MST_B
614 where FORMULA_ID = X_FORMULA_ID;
615
616 if (sql%notfound) then
617 raise no_data_found;
618 end if;
619 end DELETE_ROW;
620
621 procedure ADD_LANGUAGE
622 is
623 begin
624 delete from FM_FORM_MST_TL T
625 where not exists
626 (select NULL
627 from FM_FORM_MST_B B
628 where B.FORMULA_ID = T.FORMULA_ID
629 );
630
631 update FM_FORM_MST_TL T set (
632 FORMULA_DESC1,
633 FORMULA_DESC2
634 ) = (select
635 B.FORMULA_DESC1,
636 B.FORMULA_DESC2
637 from FM_FORM_MST_TL B
638 where B.FORMULA_ID = T.FORMULA_ID
639 and B.LANGUAGE = T.SOURCE_LANG)
640 where (
641 T.FORMULA_ID,
642 T.LANGUAGE
643 ) in (select
644 SUBT.FORMULA_ID,
645 SUBT.LANGUAGE
646 from FM_FORM_MST_TL SUBB, FM_FORM_MST_TL SUBT
647 where SUBB.FORMULA_ID = SUBT.FORMULA_ID
648 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
649 and (SUBB.FORMULA_DESC1 <> SUBT.FORMULA_DESC1
650 or SUBB.FORMULA_DESC2 <> SUBT.FORMULA_DESC2
651 or (SUBB.FORMULA_DESC2 is null and SUBT.FORMULA_DESC2 is not null)
652 or (SUBB.FORMULA_DESC2 is not null and SUBT.FORMULA_DESC2 is null)
653 ));
654
655 insert into FM_FORM_MST_TL (
656 FORMULA_ID,
657 LAST_UPDATE_DATE,
658 LAST_UPDATE_LOGIN,
659 CREATION_DATE,
660 LAST_UPDATED_BY,
661 CREATED_BY,
662 FORMULA_DESC1,
663 FORMULA_DESC2,
664 LANGUAGE,
665 SOURCE_LANG
666 ) select
667 B.FORMULA_ID,
668 B.LAST_UPDATE_DATE,
669 B.LAST_UPDATE_LOGIN,
670 B.CREATION_DATE,
671 B.LAST_UPDATED_BY,
672 B.CREATED_BY,
673 B.FORMULA_DESC1,
674 B.FORMULA_DESC2,
675 L.LANGUAGE_CODE,
676 B.SOURCE_LANG
677 from FM_FORM_MST_TL B, FND_LANGUAGES L
678 where L.INSTALLED_FLAG in ('I', 'B')
679 and B.LANGUAGE = userenv('LANG')
680 and not exists
681 (select NULL
685 end ADD_LANGUAGE;
682 from FM_FORM_MST_TL T
683 where T.FORMULA_ID = B.FORMULA_ID
684 and T.LANGUAGE = L.LANGUAGE_CODE);
686
687 end FM_FORM_MST_MLS;