1 PACKAGE inv_convert AUTHID CURRENT_USER AS
2 /* $Header: INVUMCNS.pls 120.4.12020000.3 2013/03/01 08:28:04 raminoch ship $ */
3
4 /* ppuranik: bug 1323973
5 ** ReadNoPackageState (RNPS) is added, so that
6 ** inv_um_convert can be executed remotely with
7 ** same purity level or lower.
8 */
9
10 G_TRUE CONSTANT NUMBER := 1;
11 G_FALSE CONSTANT NUMBER := 0;
12
13 --Start Bug 6761510
14 -- The following types are used to cache the UOM conversions. The three keys to this
15 -- are the inventory item, from UOM code, and to UOM code. This will yield the conversion
16 -- rate by using a nested PLSQL table structure.
17 TYPE to_uom_code_tb IS TABLE OF NUMBER INDEX BY VARCHAR2(3);
18 TYPE from_uom_code_tb IS TABLE OF to_uom_code_tb INDEX BY VARCHAR2(3);
19 TYPE item_uom_conversion_tb IS TABLE OF from_uom_code_tb INDEX BY BINARY_INTEGER;
20
21 g_item_uom_conversion_tb item_uom_conversion_tb;
22
23 FUNCTION inv_um_convert(p_item_id IN NUMBER,
24 p_from_uom_code IN VARCHAR2,
25 p_to_uom_code IN VARCHAR2) RETURN NUMBER;
26 --End Bug 6761510
27
28 PROCEDURE pick_uom_convert(
29 p_org_id NUMBER,
30 p_item_id NUMBER,
31 p_sub_code VARCHAR2,
32 p_loc_id NUMBER,
33 p_alloc_uom VARCHAR2,
34 p_alloc_qty NUMBER,
35 x_pick_uom OUT NOCOPY VARCHAR2,
36 x_pick_qty OUT NOCOPY NUMBER,
37 x_uom_string OUT NOCOPY VARCHAR2,
38 x_return_status OUT NOCOPY VARCHAR2,
39 x_msg_data OUT NOCOPY VARCHAR2,
40 x_msg_count OUT NOCOPY NUMBER);
41
42 --BUG12622871LSC Begin
43 PROCEDURE pick_uom_convert_for_dual_uom(
44 p_org_id NUMBER,
45 p_temp_id NUMBER,
46 p_item_id NUMBER,
47 p_sub_code VARCHAR2,
48 p_loc_id NUMBER,
49 p_alloc_uom VARCHAR2,
50 p_alloc_qty NUMBER,
51 x_pick_uom OUT NOCOPY VARCHAR2,
52 x_pick_qty OUT NOCOPY NUMBER,
53 x_uom_string OUT NOCOPY VARCHAR2,
54 x_return_status OUT NOCOPY VARCHAR2,
55 x_msg_data OUT NOCOPY VARCHAR2,
56 x_msg_count OUT NOCOPY NUMBER);
57 --BUG12622871LSC end
58
59 FUNCTION is_uom_in_same_class (p_uom IN VARCHAR2
60 ,p_organization_id IN NUMBER
61 ,p_item_id IN NUMBER
62 ,p_fulfillment_base IN VARCHAR2) RETURN VARCHAR2; --MUOM To restrict the UoM of Same Class as that os Sec
63
64 PROCEDURE inv_um_conversion(
65 from_unit varchar2,
66 to_unit varchar2,
67 item_id number,
68 lot_number varchar2 DEFAULT NULL,
69 organization_id number,
70 uom_rate out nocopy number );
71 pragma restrict_references(inv_um_conversion, WNDS,WNPS, RNPS);
72
73 PROCEDURE inv_um_conversion(
74 from_unit varchar2,
75 to_unit varchar2,
76 item_id number,
77 uom_rate out nocopy number );
78 pragma restrict_references(inv_um_conversion, WNDS,WNPS, RNPS);
79
80 -- Will call the function inv_um_convert with NULL for lot number and org.
81 FUNCTION inv_um_convert(
82 item_id number,
83 precision number,
84 from_quantity number,
85 from_unit varchar2,
86 to_unit varchar2,
87 from_name varchar2,
88 to_name varchar2) RETURN number;
89 pragma restrict_references(inv_um_convert, WNDS,WNPS, RNPS);
90
91 FUNCTION inv_um_convert(
92 item_id number,
93 lot_number varchar2 DEFAULT NULL,
94 organization_id number,
95 precision number,
96 from_quantity number,
97 from_unit varchar2,
98 to_unit varchar2,
99 from_name varchar2,
100 to_name varchar2) RETURN number;
101 pragma restrict_references(inv_um_convert, WNDS,WNPS, RNPS);
102
103 FUNCTION inv_um_convert_new(
104 item_id number,
105 precision number,
106 from_quantity number,
107 from_unit varchar2,
108 to_unit varchar2,
109 from_name varchar2,
110 to_name varchar2,
111 capacity_type varchar2 ) RETURN number;
112
113
114
115 FUNCTION inv_um_convert_new(
116 item_id number,
117 lot_number varchar2 DEFAULT NULL,
118 organization_id number,
119 precision number,
120 from_quantity number,
121 from_unit varchar2,
122 to_unit varchar2,
123 from_name varchar2,
124 to_name varchar2,
125 capacity_type varchar2 ) RETURN number;
126
127
128 FUNCTION validate_item_uom (p_uom_code IN VARCHAR2,
129 p_item_id IN NUMBER,
130 p_organization_id IN NUMBER)
131 return BOOLEAN;
132
133 pragma restrict_references (validate_item_uom, WNDS,WNPS, RNPS);
134
135 -- Checks if quantities entered for dual uoms are within deviation.
136
137 FUNCTION within_deviation(
138 p_organization_id IN number,
139 p_inventory_item_id IN number,
140 p_lot_number IN varchar2 DEFAULT NULL,
141 p_precision IN number,
142 p_quantity IN number,
143 p_uom_code1 IN varchar2,
144 p_quantity2 IN number,
145 p_uom_code2 IN varchar2,
146 p_unit_of_measure1 IN varchar2 DEFAULT NULL,
147 p_unit_of_measure2 IN varchar2 DEFAULT NULL,
148 -- muom
149 /* When splitting a line/detail, the deviation check is done only on the split quantity.
150 If the deviation check needs to be done on the remaining quantity, then this api needs
151 to be called for the remaining quantity and p_split_check should be passed as 'Y'. If
152 the deviation check fails, then a new message is shown.
153 */
154 p_split_check IN varchar2 DEFAULT NULL)
155 RETURN NUMBER;
156
157
158 /* Bug 9335882. Added below procedure */
159 PROCEDURE create_uom_conversion ( p_from_uom_code VARCHAR2 ,
160 p_to_uom_code VARCHAR2 ,
161 p_item_id NUMBER ,
162 p_uom_rate NUMBER ,
163 x_return_status OUT NOCOPY VARCHAR2
164 ) ;
165
166 END inv_convert;