DBA Data[Home] [Help]

PACKAGE BODY: APPS.POS_QUANTITIES_S

Source


1 PACKAGE BODY POS_QUANTITIES_S AS
2 /* $Header: POSTXQUB.pls 115.0 99/08/20 11:10:16 porting sh $ */
3 
4   /* getAvailableQuantity
5    * --------------------
6    * PL/SQL wrapper around rcv_quantities_s.get_available_quantity to return
7    * some values.
8    */
9   FUNCTION getAvailableQuantity(p_lineLocationID IN NUMBER) RETURN NUMBER
10   IS
11 
12     v_availableQuantity NUMBER;
13     v_tolerableQuantity NUMBER;
14     v_unitOfMeasure     VARCHAR2(25);
15     x_progress          VARCHAR2(3);
16 
17   BEGIN
18 
19     x_progress := '001';
20 
21     rcv_quantities_s.get_available_quantity('RECEIVE',
22                                             p_lineLocationID,
23                                             'VENDOR',
24                                             null,
25                                             null,
26                                             null,
27                                             v_availableQuantity,
28                                             v_tolerableQuantity,
29                                             v_unitOfMeasure);
30 
31     RETURN v_availableQuantity;
32 
33 
34   EXCEPTION
35     WHEN OTHERS THEN
36       po_message_s.sql_error('getAvailableQuantity', x_progress, sqlcode);
37       RAISE;
38 
39   END getAvailableQuantity;
40 
41 
42 
43 
44 
45 
46 
47 
48 
49   /* getTolerableQuantity
50    * --------------------
51    * PL/SQL wrapper around rcv_quantities_s.get_available_quantity to return
52    * some values.
53    */
54   FUNCTION getTolerableQuantity(p_lineLocationID IN NUMBER) RETURN NUMBER
55   IS
56 
57     v_availableQuantity NUMBER;
58     v_tolerableQuantity NUMBER;
59     v_unitOfMeasure     VARCHAR2(25);
60     x_progress          VARCHAR2(3);
61 
62   BEGIN
63 
64     x_progress := '001';
65 
66     rcv_quantities_s.get_available_quantity('RECEIVE',
67                                             p_lineLocationID,
68                                             'VENDOR',
69                                             null,
70                                             null,
71                                             null,
72                                             v_availableQuantity,
73                                             v_tolerableQuantity,
74                                             v_unitOfMeasure);
75 
76     RETURN v_tolerableQuantity;
77 
78 
79   EXCEPTION
80     WHEN OTHERS THEN
81       po_message_s.sql_error('getTolerableQuantity', x_progress, sqlcode);
82       RAISE;
83 
84   END getTolerableQuantity;
85 
86 FUNCTION get_invoice_qty(x_line_location_id in number,
87                  x_asn_unit_of_measure in varchar2,
88                  x_item_id in number,
89                  x_quantity in number) return number IS
90 x_conversion_rate number := 0;
91 x_asn_uom_code    varchar2(30);
92 x_po_uom_code     varchar2(30);
93 BEGIN
94 
95   IF (x_asn_unit_of_measure is not null) THEN
96 
97    SELECT uom_code
98    INTO   x_asn_uom_code
99    FROM   mtl_units_of_measure
100    WHERE  unit_of_measure = x_asn_unit_of_measure;
101 
102    SELECT uom_code
103    INTO   x_po_uom_code
104    FROM   mtl_units_of_measure
105    WHERE  unit_of_measure = (select nvl(poll.UNIT_MEAS_LOOKUP_CODE, pol.UNIT_MEAS_LOOKUP_CODE)
106                              from po_line_locations_all poll,
107                                   po_lines_all pol
108                              where poll.line_location_id = x_line_location_id and
109                                    poll.po_line_id = pol.po_line_id );
110 
111    inv_convert.inv_um_conversion(x_asn_uom_code,
112 				 x_po_uom_code,
113 				 x_item_id,
114                                  x_conversion_rate);
115 
116   END IF;
117 
118   return (x_conversion_rate * x_quantity);
119 
120 END get_invoice_qty;
121 
122 
123 END POS_QUANTITIES_S;
124