DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_FAXFACE_RET_PVT

Source


4 
1 PACKAGE BODY PA_FAXFACE_RET_PVT AS
2 /* $Header: PACXFRCB.pls 115.2 2003/08/18 14:31:37 ajdas noship $ */
3 
5  PROCEDURE INTERFACE_RET_COST_ADJ_LINE
6 	   (x_project_asset_line_id IN      NUMBER,
7         x_msg_data                 OUT NOCOPY VARCHAR2,
8         x_err_stage             IN OUT NOCOPY VARCHAR2,
9 		x_err_code              IN OUT NOCOPY NUMBER) IS
10 
11 
12     CURSOR ret_adj_target_cur IS
13     SELECT  ppa.project_asset_id,
14             ppa.book_type_code,
15             ppa.ret_target_asset_id,
16             ppa.fa_period_name,
17             pal.cip_ccid rwip_ccid,
18             pal.current_asset_cost rwip_amount,
19             pal.retirement_cost_type
20     FROM    pa_project_assets ppa,
21             pa_project_asset_lines pal
22     WHERE   ppa.project_asset_id = pal.project_asset_id
23     AND     pal.project_asset_line_id = x_project_asset_line_id;
24 
25     ret_adj_target_rec          ret_adj_target_cur%ROWTYPE;
26 
27 
28     v_user                      NUMBER := FND_GLOBAL.user_id;
29     v_login                     NUMBER := FND_GLOBAL.login_id;
30     v_request_id                NUMBER := FND_GLOBAL.conc_request_id;
31     v_program_application_id    NUMBER := FND_GLOBAL.prog_appl_id;
32     v_program_id                NUMBER := FND_GLOBAL.conc_program_id;
33 
34     v_fa_period_posted          PA_PROJECT_ASSETS_ALL.fa_period_name%TYPE;
35     v_set_of_books_id           NUMBER;
36     v_proceeds                  NUMBER := 0;
37     v_proceeds_ccid             NUMBER := NULL;
38     v_cost_of_removal           NUMBER := 0;
39     v_cost_of_removal_ccid      NUMBER := NULL;
40     v_return_status             VARCHAR2(1) := NULL;
41     v_msg_count                 NUMBER := 0;
42     v_msg_data                  VARCHAR2(2000) := NULL;
43     v_trans_rec                 FA_API_TYPES.trans_rec_type;
44     v_asset_hdr_rec             FA_API_TYPES.asset_hdr_rec_type;
45 
46     unexp_error_in_api_call     EXCEPTION;
47 
48 
49  BEGIN
50     --Initialize variables
51     x_err_code := 0;
52     x_msg_data := NULL;
53     x_err_stage := 'Entering Interface Retirement Cost Adjustment Lines';
54     v_fa_period_posted := NULL;
55 
56 
57     FOR ret_adj_target_rec IN ret_adj_target_cur LOOP
58 
59 /* Removing this, we do not need to specify the Set of Books, FA derives it internally
60 
61         --Obtain valid Set of Books based on Book Type Code and Implementation Options (these must agree)
62         SELECT  fb.set_of_books_id
63         INTO    v_set_of_books_id
64         FROM    fa_book_controls fb,
65                 pa_implementations pi
66         WHERE   fb.set_of_books_id = pi.set_of_books_id
67         AND     fb.book_type_code = ret_adj_target_rec.book_type_code;
68 */
69 
70 
71         --Format API Parameter Records
72         v_asset_hdr_rec.asset_id            := ret_adj_target_rec.ret_target_asset_id;
73         v_asset_hdr_rec.book_type_code      := ret_adj_target_rec.book_type_code;
74 
75         -- These two parameters should be left NULL according to FA
76         v_asset_hdr_rec.set_of_books_id     := NULL;
77         v_asset_hdr_rec.period_of_addition  := NULL;
78 
79 
80         --Populate line amounts and RWIP CCIDs
81         IF ret_adj_target_rec.retirement_cost_type = 'COR' THEN
82 
83             --Amounts are Costs of Removal
87             v_proceeds_ccid := NULL;
84             v_cost_of_removal := ret_adj_target_rec.rwip_amount;
85             v_cost_of_removal_ccid := ret_adj_target_rec.rwip_ccid;
86             v_proceeds := NULL;
88 
89         ELSIF ret_adj_target_rec.retirement_cost_type = 'POS' THEN
90 
91             --Amounts are Proceeds of Sale
92 
93             --Proceeds amounts are credits in PA, and hence we must send the value * (-1)
94             --Absolute value is not appropriate, in case we have an adjustment to a POS amount,
95             --which would be positive in PA and should be sent to FA as a negative.
96             v_proceeds := (-1)*ret_adj_target_rec.rwip_amount;
97 
98             v_proceeds_ccid := ret_adj_target_rec.rwip_ccid;
99             v_cost_of_removal := NULL;
100             v_cost_of_removal_ccid := NULL;
101 
102         END IF;
103 
104 
105         --Execute Group Retirement Cost Adjustment API
106 
107         FA_RETIREMENT_ADJUSTMENT_PUB.do_retirement_adjustment
108            (p_api_version            =>  1.0,                           --IN     NUMBER,
109             p_init_msg_list          =>  FND_API.G_FALSE,               --IN     VARCHAR2 := FND_API.G_FALSE,
110             p_commit                 =>  FND_API.G_FALSE,               --IN     VARCHAR2 := FND_API.G_FALSE,
111             p_validation_level       =>  FND_API.G_VALID_LEVEL_FULL,    --IN     NUMBER   := FND_API.G_VALID_LEVEL_FULL,
112             p_calling_fn             =>  'PA_FAXFACE.INTERFACE_RET_ASSET_LINES',
113             x_return_status          =>  v_return_status,               --   OUT NOCOPY VARCHAR2,
114             x_msg_count              =>  v_msg_count,                   --   OUT NOCOPY NUMBER,
115             x_msg_data               =>  v_msg_data,                    --   OUT NOCOPY VARCHAR2,
116             px_trans_rec             =>  v_trans_rec,                   --IN OUT NOCOPY FA_API_TYPES.trans_rec_type,
117             px_asset_hdr_rec         =>  v_asset_hdr_rec,               --IN OUT NOCOPY FA_API_TYPES.asset_hdr_rec_type,
118             p_cost_of_removal        =>  v_cost_of_removal,             --IN     NUMBER,
119             p_proceeds               =>  v_proceeds,                    --IN     NUMBER,
120             p_cost_of_removal_ccid   =>  v_cost_of_removal_ccid,        --IN     NUMBER DEFAULT NULL,
121             p_proceeds_ccid          =>  v_proceeds_ccid                --IN     NUMBER DEFAULT NULL
122             );
123 
124 
125         IF v_return_status = 'S' THEN
126 
127             --Get Period Posted for Successful Transactions
128             SELECT  period_name
129             INTO    v_fa_period_posted
130             FROM    fa_deprn_periods
131             WHERE   book_type_code = v_asset_hdr_rec.book_type_code
132             AND     v_trans_rec.who_info.last_update_date --Transaction date_effective as per BRIDGWAY
133                 BETWEEN period_open_date AND NVL(period_close_date, SYSDATE);
134 
135             --Update project asset line with FA Period Posted and Txn ID
136             UPDATE  pa_project_asset_lines
137             SET     fa_period_name = v_fa_period_posted,
138                     ret_adjustment_txn_id = v_trans_rec.transaction_header_id,
139 	                last_update_date = SYSDATE,
140 	                last_updated_by = v_user,
141 	                last_update_login = v_login,
142 	                request_id = v_request_id,
143 	                program_application_id = v_program_application_id,
144 	                program_id = v_program_id,
145 	                program_update_date = SYSDATE
146             WHERE   project_asset_line_id = x_project_asset_line_id;
147 
148             --Update project asset with FA Period Posted, if field is currently NULL (first line posted for asset)
149             IF ret_adj_target_rec.fa_period_name IS NULL THEN
150 
151                 UPDATE  pa_project_assets
152                 SET     fa_period_name = v_fa_period_posted,
153 	                    last_update_date = SYSDATE,
154                         last_updated_by = v_user,
155 	                    last_update_login = v_login,
156 	                    request_id = v_request_id,
157 	                    program_application_id = v_program_application_id,
158 	                    program_id = v_program_id,
159 	                	program_update_date = SYSDATE
160                 WHERE   project_asset_id = ret_adj_target_rec.project_asset_id;
161 
162             END IF;
163 
164             RETURN;
165 
166         ELSIF v_return_status = 'E' THEN
167 
168             FND_FILE.PUT_LINE(FND_FILE.LOG,'Error in FA_RETIREMENT_ADJUSTMENT_PUB.do_retirement_adjustment for asset line:'||x_project_asset_line_id);
169             FND_FILE.PUT_LINE(FND_FILE.LOG,v_msg_data);
170 
171             --Reject Unsucsessful Transactions
172             x_err_code := 500;
173             x_msg_data := v_msg_data;
174             RETURN;
175 
176         ELSIF v_return_status = 'U' THEN
177 
178             --Raise Unexpected Error
179             RAISE unexp_error_in_api_call;
180         END IF;
181 
182     END LOOP;
183 
184 
185  EXCEPTION
186     WHEN unexp_error_in_api_call THEN
187         FND_FILE.PUT_LINE(FND_FILE.LOG,'Unexpected error in FA_RETIREMENT_ADJUSTMENT_PUB.do_retirement_adjustment.');
188         FND_FILE.PUT_LINE(FND_FILE.LOG,'SQL Error: '||SQLCODE||' '||SQLERRM);
189         FND_FILE.PUT_LINE(FND_FILE.LOG,v_msg_data);
190         x_err_code := SQLCODE;
191         x_msg_data := v_msg_data;
192         RAISE;
193 
194     WHEN OTHERS THEN
195         FND_FILE.PUT_LINE(FND_FILE.LOG,'Unexpected error in Interface Ret Cost Adj Line.');
196         FND_FILE.PUT_LINE(FND_FILE.LOG,'SQL Error: '||SQLCODE||' '||SQLERRM);
197         x_err_code := SQLCODE;
198         RAISE;
199 
200  END INTERFACE_RET_COST_ADJ_LINE;
201 
202 END PA_FAXFACE_RET_PVT;