DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_ITEM_PUB

Source


1 PACKAGE BODY MRP_Item_PUB AS
2 /* $Header: MRPPITMB.pls 115.1 99/07/16 12:32:41 porting ship $ */
3 
4 --  Start of Comments
5 --  API name    Check_Order_Modifiers
6 --  Type        Public
7 --  Procedure
8 --
9 --  Pre-reqs
10 --
11 --  Parameters
12 --
13 --  Version     Current version = 1.0
14 --              Initial version = 1.0
15 --
16 --  Notes
17 --     This procedure ensures that an item does not have any order modifiers
18 --     associated with it.
19 --
20 --  End of Comments
21 
22 PROCEDURE Check_Order_Modifiers
23 (  arg_compile_desig   IN      VARCHAR2
24 ,  arg_org_id          IN      NUMBER
25 ,  arg_item_id         IN      NUMBER
26 ,  arg_order_qty       IN      NUMBER
27 ,  arg_err_message     IN OUT  VARCHAR2
28 ,  arg_err_token       IN OUT  VARCHAR2)
29 IS
30 
31 --  Constant declarations
32 
33     SYS_YES                 CONSTANT NUMBER := 1;
34 
35     var_minimum_order_qty   NUMBER;
36     var_maximum_order_qty   NUMBER;
37     var_round               NUMBER;
38     var_fixed_order_qty     NUMBER;
39     var_fixed_lot_mult      NUMBER;
40 
41 BEGIN
42     -- select the order modifiers
43 
44     SELECT NVL(minimum_order_quantity,0),
45            NVL(maximum_order_quantity,0),
46 	   rounding_control_type,
47 	   NVL(fixed_order_quantity, 0),
48 	   NVl(fixed_lot_multiplier,1)
49     INTO   var_minimum_order_qty,
50            var_maximum_order_qty,
51 	   var_round,
52 	   var_fixed_order_qty,
53 	   var_fixed_lot_mult
54     FROM   mrp_system_items
55     WHERE  inventory_item_id = arg_item_id
56     AND    organization_id = arg_org_id
57     AND    compile_designator = arg_compile_desig;
58 
59     arg_err_message := NULL;
60     arg_err_token    := NULL;
61 
62     if (var_minimum_order_qty <> 0 AND arg_order_qty < var_minimum_order_qty)
63     then
64     	arg_err_message := 'GEN-Item with order modifier';
65 	arg_err_token   := 'EC_MINIMUM_ORDER_QTY';
66 	return;
67     end if;
68 
69     if (var_maximum_order_qty <> 0 AND arg_order_qty > var_maximum_order_qty)
70     then
71     	arg_err_message := 'GEN-Item with order modifier';
72 	arg_err_token   := 'EC_MAXIMUM_ORDER_QTY';
73 	return;
74     end if;
75 
76     if (var_round = SYS_YES AND arg_order_qty <> 0)
77     then
78         if (arg_order_qty / round(arg_order_qty) <> 1)
79 	then
80 	    arg_err_message := 'GEN-Item with order modifier';
81 	    arg_err_token   :=  'EC_ROUND';
82 	    return;
83 	end if;
84     end if;
85 
86     if (var_fixed_order_qty <> 0 AND var_fixed_order_qty <> arg_order_qty)
87     then
88         arg_err_message := 'GEN-Item with order modifier';
89 	arg_err_token   :=  'EC_FIX_ORDER_QTY';
90 	return;
91     end if;
92 
93 	if (var_fixed_lot_mult <> 0)
94 	then
95 		if ((arg_order_qty / var_fixed_lot_mult ) <>
96 			round(arg_order_qty / var_fixed_lot_mult))
97 		then
98 			arg_err_message := 'GEN-Item with order modifier';
99 		arg_err_token   :=  'EC_FIX_LOT_MULT';
100 		return;
101 		end if;
102 	end if;
103 
104 END Check_Order_Modifiers;
105 
106 END MRP_Item_PUB;