DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_SO_PLD_PACKAGE

Source


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;