[Home] [Help]
PACKAGE BODY: APPS.MRP_VALID_PLAN_DESIG_PKG
Source
1 PACKAGE BODY mrp_valid_plan_desig_pkg AS
2 /* $Header: MRPPVPDB.pls 115.0 99/07/16 12:35:34 porting ship $ */
3
4 /*----------------------------- PUBLIC ROUTINES ------------------------------*/
5
6 PROCEDURE mrp_valid_plan_designator(
7 arg_compile_desig IN VARCHAR2,
8 arg_org_id IN NUMBER,
9 arg_exploder IN CHAR,
10 arg_snapshot IN CHAR,
11 arg_planner IN CHAR,
12 arg_crp_planner IN CHAR ) IS
13
14 -- Constant declarations
15 TEST_EXPLODE CONSTANT NUMBER := 1;
16 TEST_MRP_SNAPSHOT CONSTANT NUMBER := 2;
17 TEST_PLANNER CONSTANT NUMBER := 4;
18 TEST_CRP_PLANNER CONSTANT NUMBER := 16;
19
20 SYS_YES CONSTANT NUMBER := 1;
21 SYS_NO CONSTANT NUMBER := 2;
22
23
24 var_test_explode NUMBER;
25 var_test_snapshot NUMBER;
26 var_test_planner NUMBER;
27 var_test_crp_planner NUMBER;
28
29 var_test_level NUMBER := 0;
30
31 var_plan_rec mrp_plans%ROWTYPE;
32
33 invalid_arg exception;
34 invalid_plan exception;
35
36 BEGIN
37
38 if arg_exploder = 'Y'
39 then
40 var_test_level := var_test_level + TEST_EXPLODE;
41 end if;
42 if arg_snapshot = 'Y'
43 then
44 var_test_level := var_test_level + TEST_MRP_SNAPSHOT;
45 end if;
46 if arg_planner = 'Y'
47 then
48 var_test_level := var_test_level + TEST_PLANNER;
49 end if;
50 if arg_crp_planner = 'Y'
51 then
52 var_test_level := var_test_level + TEST_CRP_PLANNER;
53 end if;
54
55
56 if var_test_level >= TEST_CRP_PLANNER
57 then
58 var_test_crp_planner := SYS_YES;
59 var_test_level := var_test_level - TEST_CRP_PLANNER;
60 else
61 var_test_crp_planner := SYS_NO;
62 end if;
63
64 if var_test_level >= TEST_PLANNER
65 then
66 var_test_planner := SYS_YES;
67 var_test_level := var_test_level - TEST_PLANNER;
68 else
69 var_test_planner := SYS_NO;
70 end if;
71
72 if var_test_level >= TEST_MRP_SNAPSHOT
73 then
74 var_test_snapshot := SYS_YES;
75 var_test_level := var_test_level - TEST_MRP_SNAPSHOT;
76 else
77 var_test_snapshot := SYS_NO;
78 end if;
79
80 if var_test_level >= TEST_EXPLODE
81 then
82 var_test_explode := SYS_YES;
83 var_test_level := var_test_level - TEST_EXPLODE;
84 else
85 var_test_explode := SYS_NO;
86 end if;
87
88 if var_test_level <> 0
89 then
90 fnd_message.set_name('MRP', 'GEN-invalid argument');
91 fnd_message.set_token('ROUTINE', 'mrp_valid_plan_designator', FALSE);
92 fnd_message.set_token('ARGUMENT', 'var_test_level', FALSE);
93 fnd_message.set_token('VALUE', to_char(var_test_level), FALSE);
94 raise invalid_arg;
95 end if;
96
97 SELECT *
98 INTO var_plan_rec
99 FROM mrp_plans
100 WHERE organization_id = arg_org_id
101 AND compile_designator = arg_compile_desig;
102
103 if var_test_explode = SYS_YES
104 then
105 if var_plan_rec.explosion_start_date IS NULL
106 then
107 fnd_message.set_name('MRP', 'PLAN-process not run');
108 fnd_message.set_token('PROCESS', 'E_EXPLODER', TRUE);
109 raise invalid_plan;
110 elsif var_plan_rec.explosion_completion_date IS NULL
111 then
112 fnd_message.set_name('MRP', 'PLAN-process not completed');
113 fnd_message.set_token('PROCESS', 'E_EXPLODER', TRUE);
114 raise invalid_plan;
115 end if;
116 end if;
117 if var_test_snapshot = SYS_YES
118 then
119 if var_plan_rec.data_start_date IS NULL
120 then
121 fnd_message.set_name('MRP', 'PLAN-process not run');
122 fnd_message.set_token('PROCESS', 'E_SNAPSHOT', TRUE);
123 raise invalid_plan;
124 elsif var_plan_rec.data_completion_date IS NULL
125 then
126 fnd_message.set_name('MRP', 'PLAN-process not completed');
127 fnd_message.set_token('PROCESS', 'E_SNAPSHOT', TRUE);
128 raise invalid_plan;
129 elsif var_plan_rec.data_completion_date <
130 var_plan_rec.explosion_completion_date
131 then
132 fnd_message.set_name('MRP', 'GEN-process more recent');
133 fnd_message.set_token('PROCESS1', 'E_EXPLODER', TRUE);
134 fnd_message.set_token('PROCESS2', 'E_SNAPSHOT', TRUE);
135 raise invalid_plan;
136 end if;
137 end if;
138 if var_test_planner = SYS_YES
139 then
140 if var_plan_rec.plan_start_date IS NULL
141 then
142 fnd_message.set_name('MRP', 'PLAN-process not run');
143 fnd_message.set_token('PROCESS', 'E_PLANNER', TRUE);
144 raise invalid_plan;
145 elsif var_plan_rec.plan_completion_date IS NULL
146 then
147 fnd_message.set_name('MRP', 'PLAN-process not completed');
148 fnd_message.set_token('PROCESS', 'E_PLANNER', TRUE);
149 raise invalid_plan;
150 elsif var_plan_rec.plan_completion_date <
151 var_plan_rec.data_completion_date
152 then
153 fnd_message.set_name('MRP', 'GEN-process more recent');
154 fnd_message.set_token('PROCESS1', 'E_SNAPSHOT', TRUE);
155 fnd_message.set_token('PROCESS2', 'E_PLANNER', TRUE);
156 raise invalid_plan;
157 end if;
158 end if;
159 if var_test_crp_planner = SYS_YES
160 then
161 if var_plan_rec.crp_plan_start_date IS NULL
162 then
163 fnd_message.set_name('MRP', 'PLAN-process not run');
164 fnd_message.set_token('PROCESS', 'E_CRP_PLANNER', TRUE);
165 raise invalid_plan;
166 elsif var_plan_rec.crp_plan_completion_date IS NULL
167 then
168 fnd_message.set_name('MRP', 'PLAN-process not completed');
169 fnd_message.set_token('PROCESS', 'E_CRP_PLANNER', TRUE);
170 raise invalid_plan;
171 elsif var_plan_rec.crp_plan_completion_date <
172 var_plan_rec.plan_completion_date
173 then
174 fnd_message.set_name('MRP', 'GEN-process more recent');
175 fnd_message.set_token('PROCESS1', 'E_PLANNER', TRUE);
176 fnd_message.set_token('PROCESS2', 'E_CRP_PLANNER', TRUE);
177 raise invalid_plan;
178 end if;
179 end if;
180 EXCEPTION
181 WHEN invalid_arg THEN
182 app_exception.raise_exception;
183 WHEN invalid_plan THEN
184 app_exception.raise_exception;
185 END mrp_valid_plan_designator;
186 END mrp_valid_plan_desig_pkg;