DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_LABOR_SCH_RULE_PKG

Source


1 package body PA_LABOR_SCH_RULE_PKG as
2 -- $Header: PALABSRB.pls 115.2 2002/12/02 23:36:36 riyengar noship $
3 PROCEDURE print_msg(p_msg  varchar2) IS
4 BEGIN
5       --dbms_output.put_line('Log:'||p_msg);
6       --r_debug.r_msg('Log:'||p_msg);
7         PA_DEBUG.g_err_stage := p_msg;
8         PA_DEBUG.write_file('LOG',pa_debug.g_err_stage);
9 	null;
10 END print_msg;
11 
12 PROCEDURE insert_row (
13 	x_rowid                   IN OUT NOCOPY varchar2
14  	,x_ORG_LABOR_SCH_RULE_ID    IN OUT NOCOPY number
15  	,p_ORGANIZATION_ID          IN  number
16  	,p_ORG_ID                   IN  number
17  	,p_LABOR_COSTING_RULE       IN  varchar2
18  	,p_COST_RATE_SCH_ID         IN  number
19  	,p_OVERTIME_PROJECT_ID      IN  number
20  	,p_OVERTIME_TASK_ID         IN  number
21  	,p_ACCT_RATE_DATE_CODE      IN  varchar2
22  	,p_ACCT_RATE_TYPE           IN  varchar2
23  	,p_ACCT_EXCHANGE_RATE       IN  number
24  	,p_START_DATE_ACTIVE        IN  DATE
25  	,p_END_DATE_ACTIVE          IN  DATE
26 	,p_FORECAST_COST_RATE_SCH_ID IN  number
27  	,p_CREATION_DATE            IN  DATE
28  	,p_CREATED_BY               IN  number
29  	,p_LAST_UPDATE_DATE         IN  DATE
30  	,p_LAST_UPDATED_BY          IN  number
31  	,p_LAST_UPDATE_LOGIN        IN  number
32 	,x_return_status            IN OUT NOCOPY varchar2
33         ,x_error_msg_code           IN OUT NOCOPY varchar2
34                       )IS
35   cursor return_rowid is
36    select rowid
37    from pa_org_labor_sch_rule
38    where ORG_LABOR_SCH_RULE_ID = x_ORG_LABOR_SCH_RULE_ID;
39 
40   cursor get_itemid is
41    select pa_org_labor_sch_rule_s.nextval
42    from sys.dual;
43 
44    l_return_status        varchar2(100) := 'S';
45    l_error_msg_code       varchar2(100) := NULL;
46 
47    l_debug_mode           varchar2(1) := 'N';
48  BEGIN
49    fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
50    l_debug_mode := NVL(l_debug_mode, 'N');
51 
52    pa_debug.set_process('PLSQL','LOG',l_debug_mode);
53 
54   IF l_debug_mode = 'Y' THEN
55 	print_msg('Inside pa_labor_sch_rule_pkg table handler..');
56   End If;
57 
58   if (x_ORG_LABOR_SCH_RULE_ID is null) then
59     open get_itemid;
60     fetch get_itemid into x_ORG_LABOR_SCH_RULE_ID;
61     close get_itemid;
62   end if;
63   IF l_debug_mode = 'Y' THEN
64 	print_msg('Info transacton id ..'||x_ORG_LABOR_SCH_RULE_ID);
65   End If;
66 
67   INSERT into pa_org_labor_sch_rule
68 	(
69         ORG_LABOR_SCH_RULE_ID
70         ,ORGANIZATION_ID
71         ,ORG_ID
72         ,LABOR_COSTING_RULE
73         ,COST_RATE_SCH_ID
74         ,OVERTIME_PROJECT_ID
75         ,OVERTIME_TASK_ID
76         ,ACCT_RATE_DATE_CODE
77         ,ACCT_RATE_TYPE
78         ,ACCT_EXCHANGE_RATE
79         ,START_DATE_ACTIVE
80         ,END_DATE_ACTIVE
81 	,FORECAST_COST_RATE_SCH_ID
82         ,CREATION_DATE
83         ,CREATED_BY
84         ,LAST_UPDATE_DATE
85         ,LAST_UPDATED_BY
86         ,LAST_UPDATE_LOGIN
87 	) VALUES
88         (
89         x_ORG_LABOR_SCH_RULE_ID
90         ,p_ORGANIZATION_ID
91         ,p_ORG_ID
92         ,p_LABOR_COSTING_RULE
93         ,p_COST_RATE_SCH_ID
94         ,p_OVERTIME_PROJECT_ID
95         ,p_OVERTIME_TASK_ID
96         ,p_ACCT_RATE_DATE_CODE
97         ,p_ACCT_RATE_TYPE
98         ,p_ACCT_EXCHANGE_RATE
99         ,p_START_DATE_ACTIVE
100         ,p_END_DATE_ACTIVE
101 	,p_FORECAST_COST_RATE_SCH_ID
102         ,p_CREATION_DATE
103         ,p_CREATED_BY
104         ,p_LAST_UPDATE_DATE
105         ,p_LAST_UPDATED_BY
106         ,p_LAST_UPDATE_LOGIN
107         );
108      OPEN return_rowid;
109      FETCH return_rowid into x_rowid;
110      IF  (return_rowid%notfound) then
111 	l_return_status := 'E';
112 	l_error_msg_code := 'NO_DATA_FOUND';
113 	IF l_debug_mode = 'Y' THEN
114 		print_msg('rowid not found raise insert failed');
115 	End If;
116         raise NO_DATA_FOUND;  -- should we return something else?
117      Else
118 	l_return_status := 'S';
119 	l_error_msg_code := NULL;
120      End if;
121      CLOSE return_rowid;
122 
123 	x_return_status := l_return_status;
124 	x_error_msg_code := l_error_msg_code;
125  EXCEPTION
126 	when others then
127 	    x_error_msg_code := sqlcode||sqlerrm;
128 	    IF l_debug_mode = 'Y' THEN
129 	    	print_msg('x_err_msg_code exception:'||x_error_msg_code);
130 	    End If;
131 	    Raise;
132 
133  END insert_row;
134 
135  PROCEDURE update_row
136         (
137          p_rowid                   IN  varchar2
138         ,p_ORG_LABOR_SCH_RULE_ID    IN  number
139         ,p_ORGANIZATION_ID          IN  number
140         ,p_ORG_ID                   IN  number
141         ,p_LABOR_COSTING_RULE       IN  varchar2
142         ,p_COST_RATE_SCH_ID         IN  number
143         ,p_OVERTIME_PROJECT_ID      IN  number
144         ,p_OVERTIME_TASK_ID         IN  number
145         ,p_ACCT_RATE_DATE_CODE      IN  varchar2
146         ,p_ACCT_RATE_TYPE           IN  varchar2
147         ,p_ACCT_EXCHANGE_RATE       IN  number
148         ,p_START_DATE_ACTIVE        IN  DATE
149         ,p_END_DATE_ACTIVE          IN  DATE
150 	,p_FORECAST_COST_RATE_SCH_ID IN  number
151         ,p_CREATION_DATE            IN  DATE
152         ,p_CREATED_BY               IN  number
153         ,p_LAST_UPDATE_DATE         IN  DATE
154         ,p_LAST_UPDATED_BY          IN  number
155         ,p_LAST_UPDATE_LOGIN        IN  number
156         ,x_return_status            IN OUT NOCOPY varchar2
157         ,x_error_msg_code           IN OUT NOCOPY varchar2
158                       )IS
159 	CURSOR cur_row is
160 	SELECT
161         ORGANIZATION_ID
162         ,ORG_ID
163         ,LABOR_COSTING_RULE
164         ,COST_RATE_SCH_ID
165         ,OVERTIME_PROJECT_ID
166         ,OVERTIME_TASK_ID
167         ,ACCT_RATE_DATE_CODE
168         ,ACCT_RATE_TYPE
169         ,ACCT_EXCHANGE_RATE
170         ,START_DATE_ACTIVE
171         ,END_DATE_ACTIVE
172 	,FORECAST_COST_RATE_SCH_ID
173 	FROM pa_org_labor_sch_rule
174 	WHERE ORG_LABOR_SCH_RULE_ID = p_ORG_LABOR_SCH_RULE_ID
175 	FOR UPDATE OF ORG_LABOR_SCH_RULE_ID NOWAIT;
176 
177 	recinfo cur_row%rowtype;
178    	l_debug_mode           varchar2(1) := 'N';
179  BEGIN
180    	fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
181    	l_debug_mode := NVL(l_debug_mode, 'N');
182 
183    	pa_debug.set_process('PLSQL','LOG',l_debug_mode);
184 
185 	/** set the return status to success **/
186 	x_return_status := 'S';
187 	x_error_msg_code := NULL;
188 
189 	IF l_debug_mode = 'Y' THEN
190 		print_msg('Inside update row.');
191 	End If;
192 
193 	OPEN cur_row;
194 	FETCH cur_row INTO recinfo;
195 	If cur_row%NOTFOUND then
196 		IF l_debug_mode = 'Y' THEN
197 			print_msg('row not found return');
198 		End If;
199 		return;
200 	End If;
201 	CLOSE cur_row;
202 
203 	/** check if any of the attributes changed then update else donot **/
204 	IF (Nvl(recinfo.org_id,0) <> nvl(p_org_id,0) OR
205            Nvl(recinfo.organization_id,0) <> nvl(p_organization_id,0) OR
206 	   Nvl(recinfo.labor_costing_rule,'X') <> nvl(p_labor_costing_rule,'X') OR
207 	   Nvl(recinfo.cost_rate_sch_id,0) <> nvl(p_cost_rate_sch_id,0) OR
208 	   Nvl(recinfo.overtime_project_id,0) <> nvl(p_overtime_project_id,0) OR
209 	   nvl(recinfo.overtime_task_id,0) <> nvl(p_overtime_task_id,0) OR
210 	   Nvl(recinfo.acct_rate_date_code,'X') <> nvl(p_acct_rate_date_code,'X') OR
211 	   Nvl(recinfo.acct_rate_type,'X') <> nvl(p_acct_rate_type,'X') OR
212 	   Nvl(recinfo.acct_exchange_rate,0) <> nvl(p_acct_exchange_rate,0) OR
213 	   Nvl(recinfo.start_date_active,trunc(sysdate)) <> nvl(p_start_date_active,trunc(sysdate)) OR
214 	   Nvl(recinfo.end_date_active,recinfo.start_date_active-1) <>
215            nvl(p_end_date_active,recinfo.start_date_active-1) OR
216 	   Nvl(recinfo.FORECAST_COST_RATE_SCH_ID,0) <> nvl(p_FORECAST_COST_RATE_SCH_ID,0) ) THEN
217 		IF l_debug_mode = 'Y' THEN
218 			print_msg('firing update query');
219 		End If;
220 		UPDATE  pa_org_labor_sch_rule SET
221         	   ORGANIZATION_ID   = p_ORGANIZATION_ID
222         	   ,ORG_ID                  = p_ORG_ID
223         	   ,LABOR_COSTING_RULE      = p_LABOR_COSTING_RULE
224         	   ,COST_RATE_SCH_ID        = p_COST_RATE_SCH_ID
225         	   ,OVERTIME_PROJECT_ID     = p_OVERTIME_PROJECT_ID
226         	   ,OVERTIME_TASK_ID        = p_OVERTIME_TASK_ID
227         	   ,ACCT_RATE_DATE_CODE     = p_ACCT_RATE_DATE_CODE
228         	   ,ACCT_RATE_TYPE          = p_ACCT_RATE_TYPE
229         	   ,ACCT_EXCHANGE_RATE      = p_ACCT_EXCHANGE_RATE
230         	   ,START_DATE_ACTIVE       = p_START_DATE_ACTIVE
231         	   ,END_DATE_ACTIVE         = p_END_DATE_ACTIVE
232 		   ,FORECAST_COST_RATE_SCH_ID = p_FORECAST_COST_RATE_SCH_ID
233         	   ,LAST_UPDATE_DATE        = p_LAST_UPDATE_DATE
234         	   ,LAST_UPDATED_BY         = p_LAST_UPDATED_BY
235         	   ,LAST_UPDATE_LOGIN       = p_LAST_UPDATE_LOGIN
236 		WHERE ORG_LABOR_SCH_RULE_ID = p_ORG_LABOR_SCH_RULE_ID;
237         	If sql%found then
238                 	x_return_status := 'S';
239         	Else
240                 	x_return_status := 'E';
241                 	x_error_msg_code := 'NO_DATA_FOUND';
242 			IF l_debug_mode = 'Y' THEN
243 				print_msg('Update failure:'||x_error_msg_code);
244 			End If;
245                 	raise NO_DATA_FOUND;
246         	End If;
247 
248 	End IF;
249 
250  EXCEPTION
251         when others then
252             x_error_msg_code := sqlcode||sqlerrm;
253 	    IF l_debug_mode = 'Y' THEN
254 	    	print_msg('Exception:'||x_error_msg_code);
255 	    End If;
256             Raise;
257 
258  END update_row;
259 
260 
261  PROCEDURE  delete_row (p_ORG_LABOR_SCH_RULE_ID in NUMBER)IS
262 
263 	l_debug_mode           varchar2(1) := 'N';
264 
265  BEGIN
266         fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
267         l_debug_mode := NVL(l_debug_mode, 'N');
268 
269         pa_debug.set_process('PLSQL','LOG',l_debug_mode);
270 
271 	DELETE FROM PA_ORG_LABOR_SCH_RULE
272 	WHERE ORG_LABOR_SCH_RULE_ID = p_ORG_LABOR_SCH_RULE_ID;
273 	if sql%found then
274 		IF l_debug_mode = 'Y' THEN
275 			print_msg('Delete Success');
276 		End If;
277 	Else
278 		IF l_debug_mode = 'Y' THEN
279 			print_msg('Delete Failure');
280 		End if;
281 	End if;
282 
283  END delete_row;
284 
285  PROCEDURE delete_row (x_rowid   in VARCHAR2)IS
286 
287 	cursor get_itemid is
288 	select ORG_LABOR_SCH_RULE_ID
289 	from PA_ORG_LABOR_SCH_RULE
290         where rowid = x_rowid;
291 
292 	l_ORG_LABOR_SCH_RULE_ID Number;
293 
294  BEGIN
295   	open get_itemid;
296   	fetch get_itemid into l_ORG_LABOR_SCH_RULE_ID;
297 	close get_itemid;
298 
299   	delete_row (l_ORG_LABOR_SCH_RULE_ID);
300 
301  END delete_row;
302 
303  PROCEDURE lock_row (p_org_labor_sch_rule_id    in NUMBER)IS
304         CURSOR cur_row is
305         SELECT
306         ORGANIZATION_ID
307         ,ORG_ID
308         ,LABOR_COSTING_RULE
309         ,COST_RATE_SCH_ID
310         ,OVERTIME_PROJECT_ID
311         ,OVERTIME_TASK_ID
312         ,ACCT_RATE_DATE_CODE
313         ,ACCT_RATE_TYPE
314         ,ACCT_EXCHANGE_RATE
315         ,START_DATE_ACTIVE
316         ,END_DATE_ACTIVE
317         ,FORECAST_COST_RATE_SCH_ID
318         FROM pa_org_labor_sch_rule
319         WHERE ORG_LABOR_SCH_RULE_ID = p_ORG_LABOR_SCH_RULE_ID
320         FOR UPDATE OF ORG_LABOR_SCH_RULE_ID NOWAIT;
321 
322         recinfo cur_row%rowtype;
323 
324 	l_debug_mode           varchar2(1) := 'N';
325 
326  BEGIN
327         fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
328         l_debug_mode := NVL(l_debug_mode, 'N');
329 
330         pa_debug.set_process('PLSQL','LOG',l_debug_mode);
331 
332         OPEN cur_row;
333         FETCH cur_row INTO recinfo;
334         If cur_row%NOTFOUND then
335 		IF l_debug_mode = 'Y' THEN
336                 	print_msg('row not found return');
337 		End If;
338                 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
339                 app_exception.raise_exception;
340         End If;
341         CLOSE cur_row;
342  END lock_row;
343 
344 END PA_LABOR_SCH_RULE_PKG;