1 PACKAGE BODY OE_SO_PLD_PACKAGE AS
2 /* $Header: oexspldb.pls 115.1 99/07/16 08:30:17 porting shi $ */
3
4 PROCEDURE Get_Schedule_DB_Values(
5 X_Row_Id IN VARCHAR2
6 , P_Db_Requested_Quantity OUT NUMBER
7 , P_Db_Warehouse_Id OUT NUMBER
8 , P_Db_Schedule_Date OUT DATE
9 , P_Db_Subinventory OUT VARCHAR2
10 , P_Db_Lot_Number OUT VARCHAR2
11 , P_Db_Revision OUT VARCHAR2
12 , P_Db_Demand_Class_Code OUT VARCHAR2
13 , Result OUT VARCHAR2
14 ) is
15 begin
16
17 Result := 'Y';
18
19 SELECT requested_quantity
20 , warehouse_id
21 , schedule_date
22 , subinventory
23 , lot_number
24 , revision
25 , demand_class_code
26 INTO
27 P_Db_Requested_Quantity
28 , P_Db_Warehouse_Id
29 , P_Db_Schedule_Date
30 , P_Db_Subinventory
31 , P_Db_Lot_Number
32 , P_Db_Revision
33 , P_Db_Demand_Class_Code
34 FROM SO_PICKING_LINE_DETAILS
35 WHERE rowid = X_Row_Id;
36
37 exception
38 when NO_DATA_FOUND then
39 Return;
40 when OTHERS then
41 OE_MSG.Internal_Exception
42 ('OE_SO_PLD_PACKAGE.Get_Schedule_DB_Values',
43 'Get_DB_Values', 'PICKING_LINE_DETAIL');
44 Result := 'N';
45 end Get_Schedule_DB_Values;
46
47
48
49 --
50 -- The When_Validate_Record function does the validation logic
51 -- Here are the rules for the validation.
52 --
53 -- * You cannot specify lot or revision unless placing a reservation.
54 --
55 -- * For placing reservations or reserved lines, the following rules
56 -- must be obeyed:
57 --
58 -- * If Revision Control is turned ON, then if a revision is
59 -- specified, then the Lot and Subinventory must also be
60 -- specified.
61 --
62 -- * If Lot Control is turned ON, then if a Lot Number is
63 -- specified, then so must be a Subinventory.
64 --
65 --
66 --
67 -- * You cannot undemand, unreserve or unschedule while changing the
68 -- warehouse, schedule date or demand class.
69 --
70 -- * You cannot undemand, unreserve, unschedule or ATP inquiry while
71 -- changing the quantity, subinventory, lot or revision.
72 --
73
74 PROCEDURE When_Validate_Record
75 (
76 X_Row_Id IN VARCHAR2,
77 P_Db_Record_Flag IN VARCHAR2,
78 P_Db_Requested_Quantity IN OUT NUMBER,
79 P_Db_Warehouse_Id IN OUT NUMBER,
80 P_Db_Schedule_Date IN OUT DATE,
81 P_Db_Subinventory IN OUT VARCHAR2,
82 P_Db_Lot_Number IN OUT VARCHAR2,
83 P_Db_Revision IN OUT VARCHAR2,
84 P_Db_Demand_Class_Code IN OUT VARCHAR2,
85 P_Requested_Quantity IN NUMBER,
86 P_Warehouse_Id IN NUMBER,
87 P_Schedule_Date IN DATE,
88 P_Subinventory IN VARCHAR2,
89 P_Revision IN VARCHAR2,
90 P_Lot_Number IN VARCHAR2,
91 P_Demand_Class_Code IN VARCHAR2,
92 P_Revision_Control_Flag IN VARCHAR2,
93 P_Lot_Control_Flag IN VARCHAR2,
94 P_Schedule_Action_Code IN VARCHAR2,
95 P_Schedule_Status_Code IN VARCHAR2,
96 P_Result OUT VARCHAR2
97 )
98 is
99 Result VARCHAR2(1) := 'Y';
100
101 begin
102
103 P_Result := 'Y';
104
105 OE_SO_PLD_PACKAGE.Get_Schedule_DB_Values
106 (
107 X_Row_Id,
108 P_Db_Requested_Quantity,
109 P_Db_Warehouse_Id,
110 P_Db_Schedule_Date,
111 P_Db_Subinventory,
112 P_Db_Lot_Number,
113 P_Db_Revision,
114 P_Db_Demand_Class_Code,
115 Result
116 );
117
118 if (Result = 'N') then
119 P_Result := 'N';
120 Return;
121 end if;
122
123
124 OE_LINE_DETAILS_PKG.Validate_Scheduling_Attributes
125 (
126 P_Db_Record_Flag,
127 P_Db_Requested_Quantity,
128 P_Db_Warehouse_Id,
129 P_Db_Schedule_Date,
130 P_Db_Subinventory,
131 P_Db_Revision,
132 P_Db_Lot_Number,
133 P_Db_Demand_Class_Code,
134 P_Requested_Quantity,
135 P_Warehouse_Id,
136 P_Schedule_Date,
137 P_Subinventory,
138 P_Revision,
139 P_Lot_Number,
140 P_Demand_Class_Code,
141 P_Revision_Control_Flag,
142 P_Lot_Control_Flag,
143 P_Schedule_Action_Code,
144 P_Schedule_Status_Code,
145 Result
146 );
147
148 if (Result = 'N') then
149 P_Result := 'N';
150 end if;
151
152 Return;
153
154 exception
155 when OTHERS then
156 OE_MSG.Internal_Exception
157 ('OE_SO_PLD_PACKAGE.When_Validate_Record',
158 'When-Validate-Record', 'PICKING_LINE_DETAIL');
159 Result := 'N';
160
161 end When_Validate_Record;
162
163 END OE_SO_PLD_PACKAGE;