DBA Data[Home] [Help]

PACKAGE: APPS.CSC_PLAN_ASSIGNMENT_PKG

Source


1 PACKAGE CSC_PLAN_ASSIGNMENT_PKG AUTHID CURRENT_USER as
2 /* $Header: cscvengs.pls 120.0 2005/05/30 15:52:54 appldev noship $ */
3 -- Start of Comments
4 -- Package name     : CSC_PLAN_ASSIGNMENT_PKG
5 -- Purpose          : Plan defnitions by itself are dummy entities in the system, and
6 --                    means nothing until it is associated to customer(s). This association
7 --                    is done by the procedures and function defined in this package spec.
8 --                    These procedures evaluate the results of the customer profile checks
9 --                    for each customer and its account, compares it with the plan criteria,
10 --                    and if met, stores the association of the plan and the customer.
11 -- History          :
12 -- MM-DD-YYYY    NAME          MODIFICATIONS
13 -- 12-09-1999    dejoseph      Created.
14 -- 01-03-2000    dejoseph      'Arcs'ed in for third code freeze. (10-JAN-2000)
15 -- 01-31-2000    dejoseph      'Arcs'ed in for fourth code freeze. (07-FEB-2000)
16 -- 02-13-2000    dejoseph      'Arcs'ed on for fifth code freeze. (21-FEB-2000)
17 -- 02-28-2000    dejoseph      'Arcs'ed on for sixth code freeze. (06-MAR-2000)
18 -- 04-10-2000    dejoseph      Removed reference to cust_account_org in lieu of TCA's
19 --                             decision to drop column org_id from hz_cust_accounts.
20 --
21 -- 04-28-2000    dejoseph      Replace reference to jtf_cust_accounts_v with jtf_cust_accounts_all_v.
22 -- 05-11-2000	 dmontefa      Added the 'OUT NOCOPY ' parameters, x_errbuf, x_retcode
23 -- 08-09-2000    dejoseph      Included a parameter in procedure add_remove_plan_check. Generally
24 --                             modified engine to run for all plans and parties if no parameters
25 --                             are specified. Fix to bug # 1372050.
26 -- 01-30-2002    dejoseph      Included the dbdrv command for DB driver generation.
27 --                             Made the following change to clean up the Plans engine to
28 --                             1. Function as intended and 2. Perform efficiently.
29 --                             Ref. Bug #s - 2030164, 1745488
30 -- 03-15-2002    dejoseph      Added the checkfile command
31 -- 11-12-2002	 bhroy		NOCOPY changes made
32 -- 11-28-2002	 bhroy		FND_API.G_MISS_XXX defaults removed
33 --
34 -- NOTE             :
35 -- End of Comments
36 --
37 
38 -- Default number of records fetch per call
39 G_DEFAULT_NUM_REC_FETCH  NUMBER := 30;
40 
41 /**************************** TYPE DEFNITIONS ****************************/
42 
43 TYPE CSC_PARTY_ACCT_REC_TYPE IS RECORD (
44 	  PARTY_ID                    NUMBER,
45 	  CUST_ACCOUNT_ID             NUMBER);
46 
47 TYPE CSC_PARTY_ACCT_TBL_TYPE       IS TABLE OF CSC_PARTY_ACCT_REC_TYPE
48 							INDEX BY BINARY_INTEGER;
49 G_MISS_PARTY_ACCT_TBL              CSC_PARTY_ACCT_TBL_TYPE;
50 
51 TYPE CSC_NUM_TBL_TYPE              IS TABLE OF NUMBER
52 							INDEX BY BINARY_INTEGER;
53 G_EMPTY_NUM_TBL                    CSC_NUM_TBL_TYPE;
54 
55 TYPE CSC_CHAR_TBL_TYPE             IS TABLE OF VARCHAR2(240)
56 							INDEX BY BINARY_INTEGER;
57 G_EMPTY_CHAR_TBL                   CSC_CHAR_TBL_TYPE;
58 
59 TYPE CSC_PARTY_ID_TBL_TYPE         IS TABLE OF NUMBER
60 					          INDEX BY BINARY_INTEGER;
61 G_EMPTY_PARTY_ID_TBL               CSC_PARTY_ID_TBL_TYPE;
62 
63 TYPE CSC_PLAN_ID_TBL_TYPE          IS TABLE OF NUMBER
64                                    INDEX BY BINARY_INTEGER;
65 G_EMPTY_PLAN_ID_TBL                CSC_PLAN_ID_TBL_TYPE;
66 
67 TYPE CSC_CUST_ID_TBL_TYPE          IS TABLE OF NUMBER
68                                    INDEX BY BINARY_INTEGER;
69 G_EMPTY_CUST_ID_TBL                CSC_CUST_ID_TBL_TYPE;
70 
71 TYPE CSC_DATE_TBL_TYPE             IS TABLE OF DATE
72                                    INDEX BY BINARY_INTEGER;
73 G_EMPTY_DATE_TBL                   CSC_DATE_TBL_TYPE;
74 
75 TYPE CSC_CHECK_ID_TBL_TYPE         IS TABLE OF NUMBER
76                                    INDEX BY BINARY_INTEGER;
77 G_EMPTY_CHECK_ID_TBL               CSC_CHECK_ID_TBL_TYPE;
78 
79 /************************** END TYPE DEFNITIONS ***************************/
80 
81    --   *******************************************************
82    --    Start of Comments
83    --   *******************************************************
84    --   API Name: RUN_PLAN_ENGINE
85    --   Type    : Private
86    --   Pre-Req :
87    --   Function: Invokes the plan engine. The plan engine can be invoked
88    --   when any of the three scenarios occur.
89    --   1> Invoked from the customer profile engine.(when profile engine is
90    --      executed).
91    --   2> Invoked when plan defnitions change;
92    --   3> Invoked when a party or party account is added/deleted
93    --   Depending on the passed in parameters the appropiate procedure is
94    --   executed to make/break the customer to plan association.
95    --   Parameters:
96    --   IN
97    --       p_plan_id                 IN   NUMBER  Optional Default = NULL
98    --       p_check_id                IN   NUMBER  Optional Default = NULL
99    --       p_party_id                IN   NUMBER  Optional Default = NULL
100    --       p_cust_account_id         IN   NUMBER  Optional Default = NULL
101    --       x_errbuf                  OUT   NOCOPY VARCHAR2
102    --       x_retcode                 OUT   NOCOPY NUMBER
103    --
104    --   Version : Current version 1.0
105    --
106    --   End of Comments
107    --
108 PROCEDURE RUN_PLAN_ENGINE (
109     X_ERRBUF			        OUT  NOCOPY VARCHAR2,
110     X_RETCODE			        OUT  NOCOPY NUMBER,
111     P_PLAN_ID                    IN   NUMBER       := NULL,
112     P_CHECK_ID                   IN   NUMBER       := NULL,
113     P_PARTY_ID                   IN   NUMBER       := NULL,
114     P_CUST_ACCOUNT_ID            IN   NUMBER       := NULL );
115 
116    --   *******************************************************
117    --    Start of Comments
118    --   *******************************************************
119    --   API Name: RUN_WITH_PLAN_ID
120    --   Type    : Private
121    --   Pre-Req :
122    --   Function: Calls add_remove_plan_check with passed in plan_id.
123    --   Parameters:
124    --   IN
125    --       P_PLAN_ID                 IN   NUMBER
126    --
127    --   OUT NOCOPY
128    --       X_RETURN_STATUS           OUT  NOCOPY VARCHAR2
129    --   Version : Current version 1.0
130    --
131    --   End of Comments
132    --
133 PROCEDURE RUN_WITH_PLAN_ID (
134    P_PLAN_ID                     IN   NUMBER,
135    X_RETURN_STATUS               OUT  NOCOPY VARCHAR2 );
136 
137    --   *******************************************************
138    --    Start of Comments
139    --   *******************************************************
140    --   API Name: RUN_WITH_CHECK_ID
141    --   Type    : Private
142    --   Pre-Req :
143    --   Function: Calls add_remove_plan_check with passed in check_id.
144    --   Parameters:
145    --   IN
146    --       P_CHECK_ID                IN   NUMBER
147    --
148    --
149    --   OUT NOCOPY
150    --       X_RETURN_STATUS           OUT  NOCOPY VARCHAR2
151    --   Version : Current version 1.0
152    --
153    --   End of Comments
154    --
155 PROCEDURE RUN_WITH_CHECK_ID (
156    P_CHECK_ID                   IN   NUMBER,
157    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
158 
159    --   *******************************************************
160    --    Start of Comments
161    --   *******************************************************
162    --   API Name: RUN_WITH_PARTY_ID
163    --   Type    : Private
164    --   Pre-Req :
165    --   Function: Calls add_remove_plan_check with passed in party_id.
166    --   Parameters:
167    --   IN
168    --       P_PARTY_ID                IN   NUMBER
169    --
170    --       X_RETURN_STATUS           OUT  NOCOPY VARCHAR2
171    --   Version : Current version 1.0
172    --
173    --   End of Comments
174    --
175 PROCEDURE RUN_WITH_PARTY_ID (
176    P_PARTY_ID                   IN   NUMBER,
177    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
178 
179    --   *******************************************************
180    --    Start of Comments
181    --   *******************************************************
182    --   API Name: RUN_WITH_ACCOUNT_ID
183    --   Type    : Private
184    --   Pre-Req :
185    --   Function: Calls add_remove_plan_check with passed in account_id.
186    --   Parameters:
187    --   IN
188    --       P_CUST_ACCOUNT_ID         IN   NUMBER
189    --
190    --   OUT NOCOPY
191    --       X_RETURN_STATUS           OUT   NOCOPY VARCHAR2
192    --   Version : Current version 1.0
193    --
194    --   End of Comments
195    --
196 PROCEDURE RUN_WITH_ACCOUNT_ID (
197    P_CUST_ACCOUNT_ID            IN   NUMBER,
198    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
199 
200    --   *******************************************************
201    --    Start of Comments
202    --   *******************************************************
203    --   API Name: RUN_WITH_PLAN_PARTY
204    --   Type    : Private
205    --   Pre-Req :
206    --   Function: Calls add_remove_plan_check with passed in plan_id and
207    --             party_id.
208    --   Parameters:
209    --   IN
210    --       P_PLAN_ID                 IN   NUMBER
211    --       P_PARTY_ID                IN   NUMBER
212    --
213    --   OUT NOCOPY
214    --       X_RETURN_STATUS           OUT   NOCOPY VARCHAR2
215    --   Version : Current version 1.0
216    --
217    --   End of Comments
218    --
219 PROCEDURE RUN_WITH_PLAN_PARTY (
220    P_PLAN_ID                    IN   NUMBER,
221    P_PARTY_ID                   IN   NUMBER,
222    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
223 
224    --   *******************************************************
225    --    Start of Comments
226    --   *******************************************************
227    --   API Name: RUN_WITH_PLAN_ACCOUNT
228    --   Type    : Private
229    --   Pre-Req :
230    --   Function: Calls add_remove_plan_check with passed in plan_id and
231    --             account_id.
232    --   Parameters:
233    --   IN
234    --       P_PLAN_ID                 IN   NUMBER
235    --       P_CUST_ACCOUNT_ID         IN   NUMBER
236    --
237    --   OUT NOCOPY
238    --       X_RETURN_STATUS           OUT  NOCOPY  VARCHAR2
239    --   Version : Current version 1.0
240    --
241    --   End of Comments
242    --
243 PROCEDURE RUN_WITH_PLAN_ACCOUNT (
244    P_PLAN_ID                    IN   NUMBER,
245    P_CUST_ACCOUNT_ID            IN   NUMBER,
246    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
247 
248    --   *******************************************************
249    --    Start of Comments
250    --   *******************************************************
251    --   API Name: RUN_WITH_CHECK_PARTY
252    --   Type    : Private
253    --   Pre-Req :
254    --   Function: Calls add_remove_plan_check with passed in check_id and
255    --             party_id.
256    --   Parameters:
257    --   IN
258    --       P_CHECK_ID                IN   NUMBER
259    --       P_PARTY_ID                IN   NUMBER
260    --
261    --   OUT NOCOPY
262    --       X_RETURN_STATUS           OUT   NOCOPY VARCHAR2
263    --   Version : Current version 1.0
264    --
265    --   End of Comments
266    --
267 PROCEDURE RUN_WITH_CHECK_PARTY (
268    P_CHECK_ID                   IN   NUMBER,
269    P_PARTY_ID                   IN   NUMBER,
270    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
271 
272    --   *******************************************************
273    --    Start of Comments
274    --   *******************************************************
275    --   API Name: RUN_WITH_CHECK_ACCOUNT
276    --   Type    : Private
277    --   Pre-Req :
278    --   Function: Calls add_remove_plan_check with passed in check_id and
279    --             account_id.
280    --   Parameters:
281    --   IN
282    --       P_CHECK_ID                IN   NUMBER
283    --       P_CUST_ACCOUNT_ID         IN   NUMBER
284    --
285    --   OUT NOCOPY
286    --       X_RETURN_STATUS           OUT  NOCOPY  VARCHAR2
287    --   Version : Current version 1.0
288    --
289    --   End of Comments
290    --
291 PROCEDURE RUN_WITH_CHECK_ACCOUNT (
292    P_CHECK_ID                   IN   NUMBER,
293    P_CUST_ACCOUNT_ID            IN   NUMBER,
294    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
295 
296    --   *******************************************************
297    --    Start of Comments
298    --   *******************************************************
299    --   API Name: RUN_WITH_ALL
300    --   Type    : Private
301    --   Pre-Req :
302    --   Function: Calls add_remove_plan_check with all plans and their
303    --             coresponding check results for all parties and accoutns.
304    --   Parameters:
305    --   IN
306    --     NONE
307    --   OUT NOCOPY
308    --       X_RETURN_STATUS           OUT  NOCOPY  VARCHAR2
309    --   Version : Current version 1.0
310    --
311    --   End of Comments
312    --
313 PROCEDURE RUN_WITH_ALL (
314    X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
315 
316    --   *******************************************************
317    --    Start of Comments
318    --   *******************************************************
319    --   API Name: ADD_REMOVE_PLAN_CHECK
320    --   Type    : Private
321    --   Pre-Req :
322    --   Function: Given the plan criteria, and the profile check result for each
323    --             customer,  this  procedure  determines whether the customer is
324    --             eligible for  the  plan or  not.  If eligible, the customer is
325    --             assigned  the plan throught the ADD_CUST_PLANS procedure, else
326    --             the cust.- plan association is delete by the DELETE_CUST_PLANS
327    --             procedure.
328    --   Parameters:
329    --   IN
330    --       P_PLAN_ID_TBL             IN   CSC_PLAN_ID_TBL_TYPE   Required
331    --       P_RELATIONAL_OPERATOR_TBL IN   CSC_CHAR_TBL_TYPE      Required
332    --       P_CRITERIA_VALUE_LOW_TBL  IN   CSC_CHAR_TBL_TYPE      Required
333    --       P_CRITERIA_VALUE_HIGH_TBL IN   CSC_CHAR_TBL_TYPE      Required
334    --       P_START_DATE_ACTIVE_TBL   IN   CSC_DATE_TBL_TYPE      Required
335    --       P_END_DATE_ACTIVE_TBL     IN   CSC_DATE_TBL_TYPE      Required
336    --       P_PARTY_ID_TBL            IN   CSC_PARTY_ID_TBL_TYPE  Required
337    --       P_CUST_ID_TBL             IN   CSC_CUST_ID_TBL_TYPE   Required
338    --       P_VALUE_TBL               IN   CSC_CHAR_TBL_TYPE      Required
339    --
340    --   OUT NOCOPY
341    --       X_RETURN_STATUS           OUT  NOCOPY  VARCHAR2
342    --   Version : Current version 1.0
343    --
344    --   End of Comments
345    --
346 PROCEDURE ADD_REMOVE_PLAN_CHECK (
350 							   G_EMPTY_CHAR_TBL,
347     P_PLAN_ID_TBL                IN   CSC_PLAN_ID_TBL_TYPE :=
348 							   G_EMPTY_PLAN_ID_TBL,
349     P_RELATIONAL_OPERATOR_TBL    IN   CSC_CHAR_TBL_TYPE :=
351     P_CRITERIA_VALUE_LOW_TBL     IN   CSC_CHAR_TBL_TYPE :=
352 							   G_EMPTY_CHAR_TBL,
353     P_CRITERIA_VALUE_HIGH_TBL    IN   CSC_CHAR_TBL_TYPE :=
354 							   G_EMPTY_CHAR_TBL,
355     P_START_DATE_ACTIVE_TBL      IN   CSC_DATE_TBL_TYPE :=
356 							   G_EMPTY_DATE_TBL,
357     P_END_DATE_ACTIVE_TBL        IN   CSC_DATE_TBL_TYPE :=
358 							   G_EMPTY_DATE_TBL,
359     P_USE_FOR_CUST_ACCOUNT_TBL   IN   CSC_CHAR_TBL_TYPE :=
360 							   G_EMPTY_CHAR_TBL,
361     P_PARTY_ID_TBL               IN   CSC_PARTY_ID_TBL_TYPE :=
362 							   G_EMPTY_PARTY_ID_TBL,
363     P_CUST_ID_TBL                IN   CSC_CUST_ID_TBL_TYPE :=
364 							   G_EMPTY_CUST_ID_TBL,
365     P_VALUE_TBL                  IN   CSC_CHAR_TBL_TYPE :=
366 							   G_EMPTY_CHAR_TBL,
367     X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
368 
369    --   *******************************************************
370    --    Start of Comments
371    --   *******************************************************
372    --   API Name: Add_Cust_Plans
373    --   Type    : Private
374    --   Pre-Req :
375    --   Function: Creates record(s) in CSC_CUST_PLANS for those customers who are
376    --             eligible for the plan.
377    --   Note    : Use BULK INSERTS rather that individual inserts through the API.
378    --   Parameters:
379    --   IN
380    --       p_plan_id_tbl             IN   CSC_PLAN_ID_TBL_TYPE
381    --       p_start_date_active_tbl   IN   CSC_DATE_TBL_TYPE
382    --       p_end_date_active_tbl     IN   CSC_DATE_TBL_TYPE
383    --       p_party_id_tbl            IN   CSC_PARTY_ID_TBL_TYPE
384    --       p_cust_id_tbl             IN   CSC_CUST_ID_TBL_TYPE
385    --
386    --   OUT NOCOPY :
387    --       x_return_status           OUT  NOCOPY  VARCHAR2
388    --   Version : Current version 1.0
389    --
390    --   End of Comments
391    --
392 
393 PROCEDURE ADD_CUST_PLANS (
394     P_PLAN_ID_TBL                IN   CSC_PLAN_ID_TBL_TYPE,
395     P_START_DATE_ACTIVE_TBL      IN   CSC_DATE_TBL_TYPE,
396     P_END_DATE_ACTIVE_TBL        IN   CSC_DATE_TBL_TYPE,
397     P_PARTY_ID_TBL               IN   CSC_PARTY_ID_TBL_TYPE,
398     P_CUST_ID_TBL                IN   CSC_CUST_ID_TBL_TYPE,
399     X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
400 
401    --   *******************************************************
402    --    Start of Comments
403    --   *******************************************************
404    --   API Name: Delete_Cust_Plans
405    --   Type    : Private
406    --   Pre-Req :
407    --   Function: Deletes records from CSC_CUST_PLANS, if customers are no more
408    --             eligible for that plan.
409    --   Note    : Use BULK DELETES rather that individual deletes through the API.
410    --   Parameters:
411    --   IN
412    --       p_plan_id_tbl             IN   CSC_PLAN_ID_TBL_TYPE
413    --       p_party_id_tbl            IN   CSC_PARTY_ID_TBL_TYPE
414    --       p_cust_id_tbl             IN   CSC_CUST_ID_TBL_TYPE
415    --
416    --   OUT NOCOPY :
417    --       x_return_status           OUT  NOCOPY  VARCHAR2
418    --   Version : Current version 1.0
419    --
420    --   End of Comments
421    --
422 PROCEDURE DELETE_CUST_PLANS (
423     P_PLAN_ID_TBL                IN   CSC_PLAN_ID_TBL_TYPE,
424     P_PARTY_ID_TBL               IN   CSC_PARTY_ID_TBL_TYPE,
425     P_CUST_ID_TBL                IN   CSC_CUST_ID_TBL_TYPE,
426     X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
427 
428    --   *******************************************************
429    --    Start of Comments
430    --   *******************************************************
431    --   API Name: VALIDATE_COMPARE_ARGUMENTS
432    --   Type    : Private
433    --   Pre-Req :
434    --   Function: The relational operator forms the basis of the check to be
435    --             performed between the profile result and the plan criteria
436    --             values. The relational operator can have the following
437    --             valid values:
438    --             =,<>,>, <, >=, <=, IN, NOT IN, LIKE, NOT LIKE, BETWEEN,
439    --             NOT BETWEEN, IS NULL and IS NOT NULL.
440    --             For the  following  relational  operators it is required that
441    --             BOTH, criteria value low and high ARE SPECIFIED. ie. BETWEEN
442    --             and NOT BETWEEN.
443    --             For  the  following relational operators, BOTH the criteria
444    --             values, high and low SHOULD NOT be specified. ie. IS NULL,
445    --             IS NOT NULL.
446    --             For all  other operators, ie. =,  <>, >, <, >=, <=, IN, NOT IN,
447    --             LIKE and NOT LIKE, ONLY  criteria  value  low should be
448    --             specified and criteria value high should be NULL.
449    --             This procedure does these validations.
450    --   Note    :
451    --   Parameters:
452    --   IN
453    --       P_RELATIONAL_OPERATOR     IN   VARCHAR2
454    --       P_CRITERIA_VALUE_LOW      IN   VARCHAR2
455    --       P_CRITERIA_VALUE_HIGH     IN   VARCHAR2
456    --
457    --   OUT NOCOPY :
458    --       X_RETURN_STATUS           OUT  NOCOPY  VARCHAR2
459    --   Version : Current version 1.0
460    --
461    --   End of Comments
462    --
463 PROCEDURE VALIDATE_COMPARE_ARGUMENTS (
464     P_RELATIONAL_OPERATOR        IN   VARCHAR2,
465     P_CRITERIA_VALUE_LOW         IN   VARCHAR2,
466     P_CRITERIA_VALUE_HIGH        IN   VARCHAR2,
467     X_RETURN_STATUS              OUT  NOCOPY VARCHAR2 );
468 
469 END CSC_PLAN_ASSIGNMENT_PKG;