128: to_class varchar2(10);
129:
130: x_progress varchar2(3) := NULL;
131:
132: cursor standard_conversions is
133: select t.conversion_rate std_to_rate,
134: t.uom_class std_to_class,
135: f.conversion_rate std_from_rate,
136: f.uom_class std_from_class
144: and nvl(f.disable_date, trunc(sysdate) + 1) > trunc(sysdate)
145: order by t.inventory_item_id desc,
146: f.inventory_item_id desc;
147:
148: std_rec standard_conversions%rowtype;
149:
150: /* Bug# 1834317 - Added the condition where inventory_item_id in
151: (item_id, 0) */
152:
201: **
202: ** 1. The conversion always starts from the conversion defined, if exists,
203: ** for an specified item.
204: ** 2. If the conversion id not defined for that specific item, then the
205: ** standard conversion, which is defined for all items, is used.
206: ** 3. When the conversion involves two different classes, then
207: ** interclass conversion is activated.
208: */
209:
228: END IF;
229:
230:
231: /*
232: ** Get item specific or standard conversions
233: */
234: x_progress := '020';
235:
236: open standard_conversions;
232: ** Get item specific or standard conversions
233: */
234: x_progress := '020';
235:
236: open standard_conversions;
237:
238: std_index := 0;
239:
240: loop
240: loop
241:
242: x_progress := '030';
243:
244: fetch standard_conversions into std_rec;
245: exit when standard_conversions%notfound;
246:
247: std_index := std_index + 1;
248:
241:
242: x_progress := '030';
243:
244: fetch standard_conversions into std_rec;
245: exit when standard_conversions%notfound;
246:
247: std_index := std_index + 1;
248:
249: from_rate_tab(std_index) := std_rec.std_from_rate;
252: to_class_tab(std_index) := std_rec.std_to_class;
253:
254: end loop;
255:
256: close standard_conversions;
257:
258: /*
259: **
260: */
265: /*
266: ** No conversions defined
267: */
268:
269: msgbuf := msgbuf||'Invalid standard conversion : ';
270: msgbuf := msgbuf||'From unit: '||from_unit||' ';
271: msgbuf := msgbuf||'To unit: '||to_unit||' ';
272: raise invalid_conversion;
273:
412:
413:
414: /*
415: ** conversion rates are defaulted to '1' at the start of the procedure
416: ** so seperate calculations are not required for standard/interclass
417: ** conversions
418: */
419: x_progress := '090';
420:
585: from_class varchar2(10);
586: to_class varchar2(10);
587:
588:
589: cursor standard_conversions is
590: select t.conversion_rate std_to_rate,
591: t.uom_class std_to_class,
592: f.conversion_rate std_from_rate,
593: f.uom_class std_from_class
601: and nvl(f.disable_date, trunc(sysdate) + 1) > trunc(sysdate)
602: order by t.inventory_item_id desc,
603: f.inventory_item_id desc;
604:
605: std_rec standard_conversions%rowtype;
606:
607:
608: cursor interclass_conversions is
609: select decode(to_uom_class, to_class, 1, 2) to_flag,
651: **
652: ** 1. The conversion always starts from the conversion defined, if exists,
653: ** for an specified item.
654: ** 2. If the conversion id not defined for that specific item, then the
655: ** standard conversion, which is defined for all items, is used.
656: ** 3. When the conversion involves two different classes, then
657: ** interclass conversion is activated.
658: */
659:
671: end if;
672:
673:
674: /*
675: ** Get item specific or standard conversions
676: */
677:
678: open standard_conversions;
679:
674: /*
675: ** Get item specific or standard conversions
676: */
677:
678: open standard_conversions;
679:
680: std_index := 0;
681:
682: loop
680: std_index := 0;
681:
682: loop
683:
684: fetch standard_conversions into std_rec;
685: exit when standard_conversions%notfound;
686:
687: std_index := std_index + 1;
688:
681:
682: loop
683:
684: fetch standard_conversions into std_rec;
685: exit when standard_conversions%notfound;
686:
687: std_index := std_index + 1;
688:
689: from_rate_tab(std_index) := std_rec.std_from_rate;
692: to_class_tab(std_index) := std_rec.std_to_class;
693:
694: end loop;
695:
696: close standard_conversions;
697:
698: /*
699: **
700: */
704: /*
705: ** No conversions defined
706: */
707:
708: msgbuf := msgbuf||'Invalid standard conversion : ';
709: msgbuf := msgbuf||'From unit: '||from_unit||' ';
710: msgbuf := msgbuf||'To unit: '||to_unit||' ';
711: return -999 ;
712:
807:
808:
809: /*
810: ** conversion rates are defaulted to '1' at the start of the procedure
811: ** so seperate calculations are not required for standard/interclass
812: ** conversions
813: */
814:
815: uom_rate := (from_rate * interclass_rate) / to_rate;