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;