92: v_asset_id fa_additions.asset_id%TYPE;
93: v_fa_period_name fa_deprn_periods.period_name%TYPE;
94: v_asset_line_count NUMBER := 0;
95:
96: PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
97:
98: l_commit_count NUMBER := 0;
99:
100:
102: --Initialize variables
103: retcode := 0;
104: errbuf := NULL;
105:
106: PA_DEBUG.SET_PROCESS(x_process => 'PLSQL',
107: x_debug_mode => PG_DEBUG);
108:
109: PA_DEBUG.WRITE_FILE('LOG', TO_CHAR(SYSDATE,'HH:MI:SS')||': PA_DEBUG_MODE: '||PG_DEBUG);
110:
105:
106: PA_DEBUG.SET_PROCESS(x_process => 'PLSQL',
107: x_debug_mode => PG_DEBUG);
108:
109: PA_DEBUG.WRITE_FILE('LOG', TO_CHAR(SYSDATE,'HH:MI:SS')||': PA_DEBUG_MODE: '||PG_DEBUG);
110:
111:
112:
113: --Print report heading
117: FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_global.local_chr(10));
118:
119:
120: IF PG_DEBUG = 'Y' THEN
121: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening project_assets_cur');
122: END IF;
123:
124: --Tieback all Project Assets that have not yet been Tied back
125: FOR project_assets_rec IN project_assets_cur LOOP
128: v_asset_id := NULL;
129: v_asset_number_count := 0;
130:
131: IF PG_DEBUG = 'Y' THEN
132: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Processing project asset id: '||project_assets_rec.project_asset_id);
133: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening earliest_asset_period_cur');
134: END IF;
135:
136: --Get the earliest period posted into for any line related to the project asset
129: v_asset_number_count := 0;
130:
131: IF PG_DEBUG = 'Y' THEN
132: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Processing project asset id: '||project_assets_rec.project_asset_id);
133: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening earliest_asset_period_cur');
134: END IF;
135:
136: --Get the earliest period posted into for any line related to the project asset
137: OPEN earliest_asset_period_cur(project_assets_rec.project_asset_id);
138: FETCH earliest_asset_period_cur INTO earliest_asset_period_rec;
139: IF (earliest_asset_period_cur%NOTFOUND) THEN
140: v_fa_period_name := NULL;
141: IF PG_DEBUG = 'Y' THEN
142: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'earliest_asset_period_cur NOTFOUND');
143: END IF;
144: ELSE
145: v_fa_period_name := earliest_asset_period_rec.period_name;
146: IF PG_DEBUG = 'Y' THEN
143: END IF;
144: ELSE
145: v_fa_period_name := earliest_asset_period_rec.period_name;
146: IF PG_DEBUG = 'Y' THEN
147: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Earliest asset period: '||v_fa_period_name);
148: END IF;
149: END IF;
150: CLOSE earliest_asset_period_cur;
151:
150: CLOSE earliest_asset_period_cur;
151:
152:
153: IF PG_DEBUG = 'Y' THEN
154: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening fa_assets_cur');
155: END IF;
156:
157: --Determine if all asset lines are associated with a single asset id
158: FOR fa_assets_rec IN fa_assets_cur(project_assets_rec.project_asset_id) LOOP
170: --If it is > 1, an asset line has been split and the asset cannot be tied back
171:
172:
173: IF PG_DEBUG = 'Y' THEN
174: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Single asset id: '||v_asset_id);
175: END IF;
176:
177:
178: IF v_fa_period_name IS NOT NULL THEN
180: IF v_asset_number <> NVL(project_assets_rec.asset_number,'X') OR
181: project_assets_rec.asset_number IS NULL THEN
182:
183: IF PG_DEBUG = 'Y' THEN
184: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Tieback project asset with asset number, fa_asset_id and fa period');
185: END IF;
186:
187: --Update project asset with asset number and FA period name
188: UPDATE pa_project_assets_all
201: l_commit_count := l_commit_count + 1;
202:
203: ELSE
204: IF PG_DEBUG = 'Y' THEN
205: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Tieback project asset with fa_asset_id and fa period');
206: END IF;
207:
208: --Just update the FA Period Name and FA Asset ID
209: UPDATE pa_project_assets_all
233:
234: END LOOP; --Project Assets
235:
236: IF PG_DEBUG = 'Y' THEN
237: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'l_commit_count = '||l_commit_count);
238: END IF;
239:
240: Commit;
241: l_commit_count := 0;
240: Commit;
241: l_commit_count := 0;
242:
243: IF PG_DEBUG = 'Y' THEN
244: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening asset_lines_cur');
245: END IF;
246:
247: --Tieback all Project Asset Lines that have not yet been tied back
248: FOR asset_lines_rec IN asset_lines_cur LOOP
247: --Tieback all Project Asset Lines that have not yet been tied back
248: FOR asset_lines_rec IN asset_lines_cur LOOP
249:
250: IF PG_DEBUG = 'Y' THEN
251: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Processing asset line id: '||asset_lines_rec.project_asset_line_id);
252: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening asset_line_period_cur');
253: END IF;
254:
255: --Loop through FA periods posted, checking if the entire line was posted into a single period
248: FOR asset_lines_rec IN asset_lines_cur LOOP
249:
250: IF PG_DEBUG = 'Y' THEN
251: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Processing asset line id: '||asset_lines_rec.project_asset_line_id);
252: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Opening asset_line_period_cur');
253: END IF;
254:
255: --Loop through FA periods posted, checking if the entire line was posted into a single period
256: FOR asset_line_period_rec IN asset_line_period_cur(asset_lines_rec.project_asset_line_id) LOOP
258: --Check if entire line posted into single period. Will also avoid "header" lines where payables_cost = 0
259: IF asset_lines_rec.current_asset_cost = asset_line_period_rec.payables_cost THEN
260:
261: IF PG_DEBUG = 'Y' THEN
262: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'Tieback project asset line with fa period: '||asset_line_period_rec.period_name);
263: END IF;
264:
265: --Update asset line with FA Period Name
266: UPDATE pa_project_asset_lines_all
287:
288: END LOOP; --Asset Lines
289:
290: IF PG_DEBUG = 'Y' THEN
291: PA_DEBUG.WRITE_FILE('LOG',TO_CHAR(SYSDATE,'HH:MI:SS')||': '||'l_commit_count = '||l_commit_count);
292: END IF;
293: Commit;
294:
295: FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Tieback completed successfully.');