DBA Data[Home] [Help]

PACKAGE BODY: APPS.MSC_ITEM_PUB

Source


1 PACKAGE BODY MSC_Item_PUB AS
2 /* $Header: MSCPITMB.pls 120.2 2005/07/06 13:18:04 pabram noship $ */
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_plan_id         IN      NUMBER
24 ,  arg_org_id          IN      NUMBER
25 ,  arg_instance_id     IN      NUMBER
26 ,  arg_item_id         IN      NUMBER
27 ,  arg_order_qty       IN      NUMBER
28 ,  arg_err_message     IN OUT  nocopy VARCHAR2
29 ,  arg_err_token       IN OUT  nocopy VARCHAR2)
30 IS
31 
32 --  Constant declarations
33 
34     SYS_YES                 CONSTANT NUMBER := 1;
35 
36     var_minimum_order_qty   NUMBER;
37     var_maximum_order_qty   NUMBER;
38     var_round               NUMBER;
39     var_fixed_order_qty     NUMBER;
40     var_fixed_lot_mult      NUMBER;
41 
42 BEGIN
43     -- select the order modifiers
44 
45     SELECT NVL(minimum_order_quantity,0),
46            NVL(maximum_order_quantity,0),
47 	   rounding_control_type,
48 	   NVL(fixed_order_quantity, 0),
49 	   NVL(fixed_lot_multiplier, 0)
50     INTO   var_minimum_order_qty,
51            var_maximum_order_qty,
52 	   var_round,
53 	   var_fixed_order_qty,
54 	   var_fixed_lot_mult
55     FROM   msc_system_items
56     WHERE  inventory_item_id = arg_item_id
57     AND    organization_id = arg_org_id
58     AND    sr_instance_id = arg_instance_id
59     AND    plan_id = arg_plan_id;
60 
61     arg_err_message := NULL;
62     arg_err_token    := NULL;
63 
64     if (var_minimum_order_qty <> 0 AND arg_order_qty < var_minimum_order_qty)
65     then
66     	arg_err_message := 'GEN-Item with order modifier';
67 	arg_err_token   := 'EC_MINIMUM_ORDER_QTY';
68 	return;
69     end if;
70 
71     if (var_maximum_order_qty <> 0 AND arg_order_qty > var_maximum_order_qty)
72     then
73     	arg_err_message := 'GEN-Item with order modifier';
74 	arg_err_token   := 'EC_MAXIMUM_ORDER_QTY';
75 	return;
76     end if;
77 
78     if (var_round = SYS_YES AND round(arg_order_qty) <> 0)
79     then
80         if (arg_order_qty / round(arg_order_qty) <> 1)
81 	then
82 	    arg_err_message := 'GEN-Item with order modifier';
83 	    arg_err_token   :=  'EC_ROUND';
84 	    return;
85 	end if;
86     end if;
87 
88     if (var_fixed_order_qty <> 0 AND var_fixed_order_qty <> arg_order_qty)
89     then
90         arg_err_message := 'GEN-Item with order modifier';
91 	arg_err_token   :=  'EC_FIX_ORDER_QTY';
92 	return;
93     end if;
94 
95 	if (var_fixed_lot_mult <> 0)
96 	then
97 		if ((arg_order_qty / var_fixed_lot_mult ) <>
98 			round(arg_order_qty / var_fixed_lot_mult))
99 		then
100 			arg_err_message := 'GEN-Item with order modifier';
101 		arg_err_token   :=  'EC_FIX_LOT_MULT';
102 		return;
103 		end if;
104 	end if;
105 
106 END Check_Order_Modifiers;
107 
108 END MSC_Item_PUB;