DBA Data[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;