DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_FP_FCST_GEN_CLIENT_EXT

Source


1 PACKAGE body PA_FP_FCST_GEN_CLIENT_EXT as
2 /* $Header: PAFPFGCB.pls 120.2 2007/02/06 09:52:44 dthakker ship $ */
3 P_PA_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
4 
5 PROCEDURE FCST_GEN_CLIENT_EXTN
6   (P_PROJECT_ID    		IN NUMBER
7    ,P_BUDGET_VERSION_ID 		IN NUMBER
8    ,P_RESOURCE_ASSIGNMENT_ID	IN NUMBER
9    ,P_TASK_ID			IN NUMBER
10    ,P_TASK_PERCENT_COMPLETE      IN NUMBER
11    ,P_PROJECT_PERCENT_COMPLETE	IN NUMBER
12    ,P_RESOURCE_LIST_MEMBER_ID	IN NUMBER
13    ,P_UNIT_OF_MEASURE           IN PA_RESOURCE_ASSIGNMENTS.UNIT_OF_MEASURE%TYPE
14    ,P_TXN_CURRENCY_CODE		IN VARCHAR2
15    ,P_ETC_QTY			IN NUMBER
16    ,P_ETC_RAW_COST		IN NUMBER
17    ,P_ETC_BURDENED_COST	        IN NUMBER
18    ,P_ETC_REVENUE		IN NUMBER
19    ,P_ETC_SOURCE		        IN VARCHAR2
20    ,P_ETC_GEN_METHOD  		IN VARCHAR2
21    ,P_ACTUAL_THRU_DATE		IN DATE
22    ,P_ETC_START_DATE		IN DATE
23    ,P_ETC_END_DATE		IN DATE
24    ,P_PLANNED_WORK_QTY		IN  NUMBER
25    ,P_ACTUAL_WORK_QTY		IN NUMBER
26    ,P_ACTUAL_QTY			IN NUMBER
27    ,P_ACTUAL_RAW_COST		IN NUMBER
28    ,P_ACTUAL_BURDENED_COST	IN NUMBER
29    ,P_ACTUAL_REVENUE		IN NUMBER
30    ,P_PERIOD_RATES_TBL		IN l_pds_rate_dtls_tab
31    -- Start Bug 5726785
32    ,p_override_raw_cost_rate   IN  pa_resource_asgn_curr.txn_raw_cost_rate_override%TYPE
33    ,p_override_burd_cost_rate  IN  pa_resource_asgn_curr.txn_burden_cost_rate_override%TYPE
34    ,p_override_bill_rate       IN  pa_resource_asgn_curr.txn_bill_rate_override%TYPE
35    ,p_avg_raw_cost_rate        IN  pa_resource_asgn_curr.txn_average_raw_cost_rate%TYPE
36    ,p_avg_burd_cost_rate       IN  pa_resource_asgn_curr.txn_average_burden_cost_rate%TYPE
37    ,p_avg_bill_rate            IN  pa_resource_asgn_curr.txn_average_bill_rate%TYPE
38    ,px_period_amts_tbl         IN  OUT NOCOPY l_plan_txn_prd_amt_tbl
39    ,px_period_data_modified    IN  OUT NOCOPY VARCHAR2
40   -- End Bug 5726785
41    ,X_ETC_QTY			OUT NOCOPY NUMBER
42    ,X_ETC_RAW_COST		OUT NOCOPY NUMBER
43    ,X_ETC_BURDENED_COST		OUT NOCOPY NUMBER
44    ,X_ETC_REVENUE		OUT NOCOPY NUMBER
45    ,X_PERIOD_RATES_TBL		OUT NOCOPY l_pds_rate_dtls_tab
46    ,X_RETURN_STATUS		OUT NOCOPY VARCHAR2
47    ,X_MSG_DATA			OUT NOCOPY VARCHAR2
48    ,X_MSG_COUNT			OUT NOCOPY NUMBER) IS
49 
50 l_module_name         VARCHAR2(200) := 'pa.plsql.pa_fp_fcst_gen_client_ext.fcst_gen_client_extn';
51 
52 l_ret_status                VARCHAR2(100);
53 l_msg_count                 NUMBER;
54 l_msg_data                  VARCHAR2(2000);
55 l_data                      VARCHAR2(2000);
56 l_msg_index_out             NUMBER:=0;
57 
58 BEGIN
59    --Setting initial values
60    X_MSG_COUNT := 0;
61    X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
62 
63    IF p_pa_debug_mode = 'Y' THEN
64             pa_debug.set_curr_function( p_function     => 'FCST_GEN_CLIENT_EXTN'
65                                        ,p_debug_mode   =>  p_pa_debug_mode);
66    END IF;
67 
68 -- This would the default value for px_period_data modified.
69  	     px_period_data_modified := 'N';
70 
71     X_ETC_QTY		:= P_ETC_QTY;
72     X_ETC_RAW_COST	:= P_ETC_RAW_COST;
73     X_ETC_BURDENED_COST	:= P_ETC_BURDENED_COST;
74     X_ETC_REVENUE	:= P_ETC_REVENUE;
75 
76     IF p_period_rates_tbl.count > 0 and
77        x_period_rates_tbl.count = 0 THEN
78 	FOR j IN 1..p_period_rates_tbl.count LOOP
79 	    x_period_rates_tbl(j).period_name := p_period_rates_tbl(j).period_name;
80 	    x_period_rates_tbl(j).raw_cost_rate := p_period_rates_tbl(j).raw_cost_rate;
81 	    x_period_rates_tbl(j).burdened_cost_rate := p_period_rates_tbl(j).burdened_cost_rate;
82 	    x_period_rates_tbl(j).revenue_bill_rate := p_period_rates_tbl(j).revenue_bill_rate;
83 	END LOOP;
84     END IF;
85 
86 --If the periodic data has to be modified px_period_data has to be set to 'Y'
87  	 --and the value can be modified inside the loop
88 
89  	     FOR j IN 1..px_period_amts_tbl.count LOOP
90  	         px_period_amts_tbl(j).period_name := px_period_amts_tbl(j).period_name;
91  	         px_period_amts_tbl(j).etc_quantity := px_period_amts_tbl(j).etc_quantity ;
92  	         px_period_amts_tbl(j).txn_raw_cost := px_period_amts_tbl(j).txn_raw_cost;
93  	         px_period_amts_tbl(j).txn_burdened_cost := px_period_amts_tbl(j).txn_burdened_cost;
94  	         px_period_amts_tbl(j).txn_revenue := px_period_amts_tbl(j).txn_revenue;
95  	         px_period_amts_tbl(j).init_quantity := px_period_amts_tbl(j).init_quantity;
96  	         px_period_amts_tbl(j).init_raw_cost := px_period_amts_tbl(j).init_raw_cost;
97  	         px_period_amts_tbl(j).init_revenue := px_period_amts_tbl(j).init_revenue;
98  	         px_period_amts_tbl(j).init_revenue := px_period_amts_tbl(j).init_revenue;
99  	     END LOOP;
100 
101     IF p_pa_debug_mode = 'Y' THEN
102          pa_debug.Reset_Curr_Function;
103     END IF;
104 
105 EXCEPTION
106    WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
107    -- Bug Fix: 4569365. Removed MRC code.
108      -- PA_MRC_FINPLAN.G_CALLING_MODULE := Null;
109       l_msg_count := FND_MSG_PUB.count_msg;
110       IF x_msg_count = 1 THEN
111            PA_INTERFACE_UTILS_PUB.get_messages
112                  (p_encoded        => FND_API.G_TRUE
113                   ,p_msg_index      => 1
114                   ,p_msg_count      => l_msg_count
115                   ,p_msg_data       => l_msg_data
116                   ,p_data           => l_data
117                   ,p_msg_index_out  => l_msg_index_out);
118            x_msg_data := l_data;
119            x_msg_count := l_msg_count;
120       ELSE
121           x_msg_count := l_msg_count;
122       END IF;
123       ROLLBACK;
124       x_return_status := FND_API.G_RET_STS_ERROR;
125 
126      IF p_pa_debug_mode = 'Y' THEN
127           pa_debug.Reset_Curr_Function;
128      END IF;
129 
130    WHEN OTHERS THEN
131      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
132      x_msg_data      := SUBSTR(SQLERRM,1,240);
133       -- dbms_output.put_line('inside excep create res asg');
134       -- dbms_output.put_line(SUBSTR(SQLERRM,1,240));
135      FND_MSG_PUB.add_exc_msg
136              ( p_pkg_name       => 'PA_FP_FCST_GEN_CLIENT_EXT'
137               ,p_procedure_name => 'FCST_GEN_CLIENT_EXTN');
138      IF p_pa_debug_mode = 'Y' THEN
139          pa_debug.Reset_Curr_Function;
140      END IF;
141     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
142 
143 END FCST_GEN_CLIENT_EXTN;
144 
145 END PA_FP_FCST_GEN_CLIENT_EXT;