DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_TASK_INT

Source


4 -- Start of Comments
1 PACKAGE BODY ASO_TASK_INT AS
2 /* $Header: asoitskb.pls 120.4 2006/10/25 20:55:31 pkoka ship $ */
3 
5 -- Package name     : ASO_TASK_INT
6 -- Purpose          :
7 -- History          :
8 -- NOTE             :
9 -- End of Comments
10 
11 G_PKG_NAME    CONSTANT VARCHAR2(30) := 'ASO_TASK_INT';
12 G_FILE_NAME   CONSTANT VARCHAR2(12) := 'asoitskb.pls';
13 
14 /*
15  * A quote can have multiple JTF tasks attached to it.  When a
16  * new version of quote is created from an existing quote, all the JTF
17  * tasks attached to the existing quote should be attached to the new
18  * version of quote, too.
19  *
20  * This procedure is called when a new version of quote is created from an
21  * existing quote.
22  *
23  * param p_old_quote_header_id: quote header ID of the existing quote.
24  * param p_new_quote_header_id: quote header ID of the new version.
25  * param p_new_quote_name     : quote name of the new version.
26  */
27 PROCEDURE Copy_Tasks
28 (
29     p_api_version          IN  NUMBER,
30     p_init_msg_list        IN  VARCHAR2 := FND_API.G_TRUE,
31     p_commit               IN  VARCHAR2 := FND_API.G_FALSE,
32     p_old_object_id        IN  NUMBER,
33     p_new_object_id        IN  NUMBER,
34     p_old_object_type_code IN  VARCHAR2,
35     p_new_object_type_code IN  VARCHAR2,
36     p_new_object_name      IN  VARCHAR2,
37     p_quote_version_flag   IN VARCHAR2 := FND_API.G_FALSE,
38     x_return_status        OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
39     x_msg_count            OUT NOCOPY /* file.sql.39 change */   NUMBER,
40     x_msg_data             OUT NOCOPY /* file.sql.39 change */   VARCHAR2
41 )
42 IS
43 
44     L_API_NAME    CONSTANT VARCHAR2(30) := 'Copy_Tasks';
45     L_API_VERSION CONSTANT NUMBER       := 1.0;
46 
47     l_task_id              NUMBER;
48     l_task_reference_id    NUMBER;
49 
50     /*
51      * This cursor gets information about all the JTF tasks attached
52      * to the existing p_object_id for a specific object_type_code.
53      */
54     CURSOR l_task_csr(p_task_id NUMBER) IS
55     SELECT task_id                ,
56            task_name              ,
57            task_type_id           ,
58            description            ,
59            task_status_id         ,
60            task_priority_id       ,
61            owner_type_code        ,
62            owner_id               ,
63            owner_territory_id     ,
64            assigned_by_id         ,
65            customer_id            ,
66            cust_account_id        ,
67            address_id             ,
68            planned_start_date     ,
69            planned_end_date       ,
70            scheduled_start_date   ,
71            scheduled_end_date     ,
72            actual_start_date      ,
73            actual_end_date        ,
74            timezone_id            ,
75            source_object_type_code,
76            source_object_id       ,
77            source_object_name     ,
78            duration               ,
79            duration_uom           ,
80            planned_effort         ,
81            planned_effort_uom     ,
82            actual_effort          ,
83            actual_effort_uom      ,
84            percentage_complete    ,
85            reason_code            ,
86            private_flag           ,
87            publish_flag           ,
88            restrict_closure_flag  ,
89            multi_booked_flag      ,
90            milestone_flag         ,
91            holiday_flag           ,
92            billable_flag          ,
93            bound_mode_code        ,
94            soft_bound_flag        ,
95            workflow_process_id    ,
96            notification_flag      ,
97            notification_period    ,
98            notification_period_uom,
99            parent_task_id         ,
100            alarm_start            ,
101            alarm_start_uom        ,
102            alarm_on               ,
103            alarm_count            ,
104            alarm_interval         ,
105            alarm_interval_uom     ,
106            palm_flag              ,
107            wince_flag             ,
108            laptop_flag            ,
109            device1_flag           ,
110            device2_flag           ,
111            device3_flag           ,
112            costs                  ,
113            currency_code          ,
114            escalation_level       ,
115            attribute1             ,
116            attribute2             ,
117            attribute3             ,
118            attribute4             ,
119            attribute5             ,
120            attribute6             ,
121            attribute7             ,
122            attribute8             ,
126            attribute12            ,
123            attribute9             ,
124            attribute10            ,
125            attribute11            ,
127            attribute13            ,
128            attribute14            ,
129            attribute15            ,
130            attribute_category
131       FROM jtf_tasks_vl
132      WHERE task_id = p_task_id
133        AND deleted_flag ='N';
134 
135     /*
136      * This cursor gets information about all referenced JTF tasks attached
137      * to the existing p_object_id for a specific object_type_code.
138      * This cursor is being introduced for bug 5572819 (Made changes such that
139      * new reference cursor is the driving cursor in the logic for creation of
140      * new version or copy quote).--PKOKA
141      */
142     CURSOR l_reftask_csr(p_object_id NUMBER, p_object_type_code VARCHAR2) IS
143     SELECT task_id
144     FROM jtf_task_references_b
145      WHERE object_id        = p_object_id
146        AND object_type_code = p_object_type_code;
147 
148     l_task_rec  l_task_csr%rowtype;
149 
150 BEGIN
151 
152     -- Standard Start of API savepoint
153     SAVEPOINT Copy_Tasks_int;
154     aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
155     -- Standard call to check for call compatibility.
156     IF NOT FND_API.Compatible_API_Call(
157         L_API_VERSION,
158         p_api_version,
159         L_API_NAME   ,
160         G_PKG_NAME
161     )
162     THEN
163         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
164     END IF;
165 
166     -- Initialize message list if p_init_msg_list is set to TRUE.
167     IF FND_API.To_Boolean(p_init_msg_list) THEN
168         FND_Msg_Pub.initialize;
169     END IF;
170 
171     -- Initialize API return status to success
172     x_return_status := FND_API.G_RET_STS_SUCCESS;
173     IF aso_debug_pub.g_debug_flag = 'Y' THEN
174     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: Begin Copy_Tasks()', 1, 'Y');
175     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: old_object_id:          ' || p_old_object_id, 1, 'N');
176     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: old_object_type_code:   ' || p_old_object_type_code, 1, 'N');
177     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: new_object_id:          ' || p_new_object_id, 1, 'N');
178     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: new_object_type_code:   ' || p_new_object_type_code, 1, 'N');
179     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: new_object_name:        ' || p_new_object_name, 1, 'N');
180     aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: quote_version_flag:     ' || p_quote_version_flag, 1, 'N');
181     END IF;
182 
183     -- API body
184 
185       FOR l_reftask_rec IN l_reftask_csr(p_old_object_id, p_old_object_type_code) LOOP
186 
187 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
188 
189         aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: l_reftask_rec.task_id:     ' || l_reftask_rec.task_id, 1, 'N');
190 	   END IF;
191   /*Changes for Copy Quote Version We shouldn't create new task for a new version of quote */
192        IF p_quote_version_flag   = FND_API.G_TRUE THEN
193                 jtf_task_references_pub.create_references (
194                 p_api_version         =>        1.0,
195                 p_init_msg_list       =>       fnd_api.g_false,
196                 p_commit              =>       fnd_api.g_false,
197                 p_task_id             =>       l_reftask_rec.task_id,
198                 p_object_type_code    =>       p_new_object_type_code,
199                 p_object_name         =>       p_new_object_name,
200                 p_object_id           =>       p_new_object_id,
201                 x_return_status       =>       x_return_status,
202                 x_msg_data            =>       x_msg_data,
203                 x_msg_count           =>       x_msg_count,
204                 x_task_reference_id   =>       l_task_reference_id
205 
206              );
207                     IF aso_debug_pub.g_debug_flag = 'Y' THEN
208                         aso_debug_pub.add('ASO_TASK_INT: After Copy_Tasks: create_references ref_id' || l_task_reference_id, 1, 'N');
209                     END IF;
210 
211                    IF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
212                      x_return_status            := FND_API.G_RET_STS_UNEXP_ERROR;
213 
214                      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
215                    ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
216                      x_return_status            := FND_API.G_RET_STS_ERROR;
217                      RAISE FND_API.G_EXC_ERROR;
218                    END IF;
219 
220 
221            ELSE
222 
223             open l_task_csr(l_reftask_rec.task_id);
224 
225               IF aso_debug_pub.g_debug_flag = 'Y' THEN
226                  aso_debug_pub.add('ASO_TASK_INT: Copy Task for new quote:', 1, 'N');
227               END IF;
228 
229               fetch l_task_csr into l_task_rec;
230 
231               IF aso_debug_pub.g_debug_flag = 'Y' THEN
232                  aso_debug_pub.add('ASO_TASK_INT: Copy Task for new quote: l_task_rec.task_id' || l_task_rec.task_id, 1, 'N');
233               END IF;
234 
235             close l_task_csr;
236 
237 
238         JTF_Tasks_Pub.Create_Task(
239             p_api_version             => 1.0                               ,
240             p_init_msg_list           => FND_API.G_FALSE                   ,
241             p_commit                  => FND_API.G_FALSE                   ,
242             x_return_status           => x_return_status                   ,
243             x_msg_count               => x_msg_count                       ,
244             x_msg_data                => x_msg_data                        ,
245             p_task_name               => l_task_rec.task_name              ,
249             p_task_priority_id        => l_task_rec.task_priority_id       ,
246             p_task_type_id            => l_task_rec.task_type_id           ,
247             p_description             => l_task_rec.description            ,
248             p_task_status_id          => l_task_rec.task_status_id         ,
250             p_owner_type_code         => l_task_rec.owner_type_code        ,
251             p_owner_id                => l_task_rec.owner_id               ,
252             p_owner_territory_id      => l_task_rec.owner_territory_id     ,
253             p_assigned_by_id          => l_task_rec.assigned_by_id         ,
254             p_customer_id             => l_task_rec.customer_id            ,
255             p_cust_account_id         => l_task_rec.cust_account_id        ,
256             p_address_id              => l_task_rec.address_id             ,
257             p_planned_start_date      => l_task_rec.planned_start_date     ,
258             p_planned_end_date        => l_task_rec.planned_end_date       ,
259             p_scheduled_start_date    => l_task_rec.scheduled_start_date   ,
260             p_scheduled_end_date      => l_task_rec.scheduled_end_date     ,
261             p_actual_start_date       => l_task_rec.actual_start_date      ,
262             p_actual_end_date         => l_task_rec.actual_end_date        ,
263             p_timezone_id             => l_task_rec.timezone_id            ,
264             p_source_object_type_code => p_new_object_type_code            ,
265             p_source_object_id        => p_new_object_id                   ,
266             p_source_object_name      => p_new_object_name                 ,
267             p_duration                => l_task_rec.duration               ,
268             p_duration_uom            => l_task_rec.duration_uom           ,
269             p_planned_effort          => l_task_rec.planned_effort         ,
270             p_planned_effort_uom      => l_task_rec.planned_effort_uom     ,
271             p_actual_effort           => l_task_rec.actual_effort          ,
272             p_actual_effort_uom       => l_task_rec.actual_effort_uom      ,
273             p_percentage_complete     => l_task_rec.percentage_complete    ,
274             p_reason_code             => l_task_rec.reason_code            ,
275             p_private_flag            => l_task_rec.private_flag           ,
276             p_publish_flag            => l_task_rec.publish_flag           ,
277             p_restrict_closure_flag   => l_task_rec.restrict_closure_flag  ,
278             p_multi_booked_flag       => l_task_rec.multi_booked_flag      ,
279             p_milestone_flag          => l_task_rec.milestone_flag         ,
280             p_holiday_flag            => l_task_rec.holiday_flag           ,
281             p_billable_flag           => l_task_rec.billable_flag          ,
282             p_bound_mode_code         => l_task_rec.bound_mode_code        ,
283             p_soft_bound_flag         => l_task_rec.soft_bound_flag        ,
284             p_workflow_process_id     => l_task_rec.workflow_process_id    ,
285             p_notification_flag       => l_task_rec.notification_flag      ,
286             p_notification_period     => l_task_rec.notification_period    ,
287             p_notification_period_uom => l_task_rec.notification_period_uom,
288             p_parent_task_id          => l_task_rec.parent_task_id         ,
289             p_alarm_start             => l_task_rec.alarm_start            ,
290             p_alarm_start_uom         => l_task_rec.alarm_start_uom        ,
291             p_alarm_on                => l_task_rec.alarm_on               ,
292             p_alarm_count             => l_task_rec.alarm_count            ,
293             p_alarm_interval          => l_task_rec.alarm_interval         ,
294             p_alarm_interval_uom      => l_task_rec.alarm_interval_uom     ,
295             p_palm_flag               => l_task_rec.palm_flag              ,
296             p_wince_flag              => l_task_rec.wince_flag             ,
297             p_laptop_flag             => l_task_rec.laptop_flag            ,
298             p_device1_flag            => l_task_rec.device1_flag           ,
299             p_device2_flag            => l_task_rec.device2_flag           ,
300             p_device3_flag            => l_task_rec.device3_flag           ,
301             p_costs                   => l_task_rec.costs                  ,
302             p_currency_code           => l_task_rec.currency_code          ,
303             p_escalation_level        => l_task_rec.escalation_level       ,
304             p_attribute1              => l_task_rec.attribute1             ,
305             p_attribute2              => l_task_rec.attribute2             ,
306             p_attribute3              => l_task_rec.attribute3             ,
307             p_attribute4              => l_task_rec.attribute4             ,
308             p_attribute5              => l_task_rec.attribute5             ,
309             p_attribute6              => l_task_rec.attribute6             ,
310             p_attribute7              => l_task_rec.attribute7             ,
311             p_attribute8              => l_task_rec.attribute8             ,
312             p_attribute9              => l_task_rec.attribute9             ,
313             p_attribute10             => l_task_rec.attribute10            ,
314             p_attribute11             => l_task_rec.attribute11            ,
315             p_attribute12             => l_task_rec.attribute12            ,
316             p_attribute13             => l_task_rec.attribute13            ,
317             p_attribute14             => l_task_rec.attribute14            ,
318             p_attribute15             => l_task_rec.attribute15            ,
319             p_attribute_category      => l_task_rec.attribute_category     ,
320             x_task_id                 => l_task_id
321         );
322 
323 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
324           aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: l_task_id:              ' || l_task_id, 1, 'N');
325          END IF;
326       END IF;
327     END LOOP;
328 
329     -- End of API body.
330 	IF aso_debug_pub.g_debug_flag = 'Y' THEN
331       aso_debug_pub.add('ASO_TASK_INT: Copy_Tasks: End Copy_Tasks()', 1, 'Y');
332 	END IF;
333 
334     -- Standard check of p_commit.
335     IF FND_API.To_Boolean(p_commit) THEN
336         COMMIT WORK;
337     END IF;
338 
339     -- Standard call to get message count and if count is 1, get message info.
340     FND_Msg_Pub.Count_And_Get(
341         p_encoded => FND_API.G_FALSE,
342         p_count   => x_msg_count    ,
343         p_data    => x_msg_data
344     );
345 
346     EXCEPTION
347         WHEN FND_API.G_EXC_ERROR THEN
348             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
349                 P_API_NAME         => L_API_NAME,
350                 P_PKG_NAME         => G_PKG_NAME,
351                 P_EXCEPTION_LEVEL  => FND_MSG_PUB.G_MSG_LVL_ERROR,
352                 P_PACKAGE_TYPE     => ASO_UTILITY_PVT.G_INT,
353                 P_SQLCODE          => SQLCODE,
354                 P_SQLERRM          => SQLERRM,
355                 X_MSG_COUNT        => X_MSG_COUNT,
356                 X_MSG_DATA         => X_MSG_DATA,
357                 X_RETURN_STATUS    => X_RETURN_STATUS
358             );
359 
360         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
361             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
362                 P_API_NAME         => L_API_NAME,
363                 P_PKG_NAME         => G_PKG_NAME,
364                 P_EXCEPTION_LEVEL  => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
365                 P_PACKAGE_TYPE     => ASO_UTILITY_PVT.G_INT,
366                 P_SQLCODE          => SQLCODE,
367                 P_SQLERRM          => SQLERRM,
368                 X_MSG_COUNT        => X_MSG_COUNT,
369                 X_MSG_DATA         => X_MSG_DATA,
370                 X_RETURN_STATUS    => X_RETURN_STATUS
371             );
372 
373         WHEN OTHERS THEN
374             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
375                 P_API_NAME         => L_API_NAME,
376                 P_PKG_NAME         => G_PKG_NAME,
377                 P_EXCEPTION_LEVEL  => ASO_UTILITY_PVT.G_EXC_OTHERS,
378                 P_PACKAGE_TYPE     => ASO_UTILITY_PVT.G_INT,
379                 P_SQLCODE          => SQLCODE,
380                 P_SQLERRM          => SQLERRM,
381                 X_MSG_COUNT        => X_MSG_COUNT,
382                 X_MSG_DATA         => X_MSG_DATA,
383                 X_RETURN_STATUS    => X_RETURN_STATUS
384             );
385 
386 END Copy_Tasks;
387 
388 
389 -- As per the ER 2732010. While creating opportunity to quote in Telesales
390 -- certain types of tasks should NOT be copied over to the quote.
391 -- Those task types are to be visible only in telesales.
392 -- Hence the new Api is needed to accomplish this requirement.
393 -- The types of task that are copied over to quote from an Opportunity are :
394 -- 1. Task types that are not linked to any source objects.
395 -- 2. Task types that are Specifically linked to Quoting.
396 
397 -- This procedure is called only when creating a quote from an opportunity.
398 
399 PROCEDURE Copy_Opp_Tasks_To_Qte
400 (
401     p_api_version          IN  NUMBER,
402     p_init_msg_list        IN  VARCHAR2 := FND_API.G_TRUE,
403     p_commit               IN  VARCHAR2 := FND_API.G_FALSE,
404     p_old_object_id        IN  NUMBER,
405     p_new_object_id        IN  NUMBER,
406     p_old_object_type_code IN  VARCHAR2,
407     p_new_object_type_code IN  VARCHAR2,
408     p_new_object_name      IN  VARCHAR2,
409     x_return_status        OUT NOCOPY /* file.sql.39 change */    VARCHAR2,
410     x_msg_count            OUT NOCOPY /* file.sql.39 change */    NUMBER,
411     x_msg_data             OUT NOCOPY /* file.sql.39 change */    VARCHAR2
412 )
413 IS
414 
415     L_API_NAME    CONSTANT VARCHAR2(30) := 'Copy_Opp_Tasks_To_Qte';
416     L_API_VERSION CONSTANT NUMBER       := 1.0;
417 
418     l_task_id              NUMBER;
419 
420     /*
421      * This cursor gets information about all the JTF tasks attached
422      * to the existing p_object_id for a specific object_type_code.
423      */
424     CURSOR l_task_csr(p_object_id NUMBER, p_object_type_code VARCHAR2) IS
425     SELECT task_id                ,
426            task_name              ,
427            task_type_id           ,
428            description            ,
429            task_status_id         ,
430            task_priority_id       ,
431            owner_type_code        ,
432            owner_id               ,
433            owner_territory_id     ,
434            assigned_by_id         ,
435            customer_id            ,
436            cust_account_id        ,
437            address_id             ,
438            planned_start_date     ,
439            planned_end_date       ,
440            scheduled_start_date   ,
444            timezone_id            ,
441            scheduled_end_date     ,
442            actual_start_date      ,
443            actual_end_date        ,
445            source_object_type_code,
446            source_object_id       ,
447            source_object_name     ,
448            duration               ,
449            duration_uom           ,
450            planned_effort         ,
451            planned_effort_uom     ,
452            actual_effort          ,
453            actual_effort_uom      ,
454            percentage_complete    ,
455            reason_code            ,
456            private_flag           ,
457            publish_flag           ,
458            restrict_closure_flag  ,
459            multi_booked_flag      ,
460            milestone_flag         ,
461            holiday_flag           ,
462            billable_flag          ,
463            bound_mode_code        ,
464            soft_bound_flag        ,
465            workflow_process_id    ,
466            notification_flag      ,
467            notification_period    ,
468            notification_period_uom,
469            parent_task_id         ,
470            alarm_start            ,
471            alarm_start_uom        ,
472            alarm_on               ,
473            alarm_count            ,
474            alarm_interval         ,
475            alarm_interval_uom     ,
476            palm_flag              ,
477            wince_flag             ,
478            laptop_flag            ,
479            device1_flag           ,
480            device2_flag           ,
481            device3_flag           ,
482            costs                  ,
483            currency_code          ,
484            escalation_level       ,
485            attribute1             ,
486            attribute2             ,
487            attribute3             ,
488            attribute4             ,
489            attribute5             ,
490            attribute6             ,
491            attribute7             ,
492            attribute8             ,
493            attribute9             ,
494            attribute10            ,
495            attribute11            ,
496            attribute12            ,
497            attribute13            ,
498            attribute14            ,
499            attribute15            ,
500            attribute_category
501       FROM jtf_tasks_vl tk
502      WHERE tk.source_object_id        = p_object_id
503        AND tk.source_object_type_code = p_object_type_code
504 	  AND tk.deleted_flag ='N'
505        AND (EXISTS (SELECT o.object_id
506 	       	    FROM jtf_object_mappings o
507 	       	    WHERE  o.object_id = TO_CHAR(tk.task_type_id)
508 		    AND   o.source_object_code = 'ASO_QUOTE')
509             OR    NOT EXISTS ( SELECT om.object_id
510 		  	       FROM JTF_OBJECT_MAPPINGS om
511         		       WHERE om.object_id = TO_CHAR(tk.task_type_id)));
512 
513 BEGIN
514 
515     -- Standard Start of API savepoint
516     SAVEPOINT Copy_Opp_Tasks_To_Qte_int;
517     aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
518     -- Standard call to check for call compatibility.
519     IF NOT FND_API.Compatible_API_Call(
520         L_API_VERSION,
521         p_api_version,
522         L_API_NAME   ,
523         G_PKG_NAME
524     )
525     THEN
526         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
527     END IF;
528 
529     -- Initialize message list if p_init_msg_list is set to TRUE.
530     IF FND_API.To_Boolean(p_init_msg_list) THEN
531         FND_Msg_Pub.initialize;
532     END IF;
533 
534     -- Initialize API return status to success
535     x_return_status := FND_API.G_RET_STS_SUCCESS;
536     IF aso_debug_pub.g_debug_flag = 'Y' THEN
537     aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: Begin Copy_Opp_Tasks_To_Qte()', 1, 'Y');
538     aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: old_object_id:          ' || p_old_object_id, 1, 'N');
539     aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: old_object_type_code:   ' || p_old_object_type_code, 1, 'N');
540     aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: new_object_id:          ' || p_new_object_id, 1, 'N');
541     aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: new_object_type_code:   ' || p_new_object_type_code, 1, 'N');
542     aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: new_object_name:        ' || p_new_object_name, 1, 'N');
543     END IF;
544 
545     -- API body
546 
547     FOR l_task_rec IN l_task_csr(p_old_object_id, p_old_object_type_code) LOOP
548 
549 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
550 
551         aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: l_task_rec.task_id:     ' || l_task_rec.task_id, 1, 'N');
552 	   END IF;
553 
554         JTF_Tasks_Pub.Create_Task(
555             p_api_version             => 1.0                               ,
556             p_init_msg_list           => FND_API.G_FALSE                   ,
557             p_commit                  => FND_API.G_FALSE                   ,
558             x_return_status           => x_return_status                   ,
559             x_msg_count               => x_msg_count                       ,
560             x_msg_data                => x_msg_data                        ,
561             p_task_name               => l_task_rec.task_name              ,
562             p_task_type_id            => l_task_rec.task_type_id           ,
563             p_description             => l_task_rec.description            ,
564             p_task_status_id          => l_task_rec.task_status_id         ,
565             p_task_priority_id        => l_task_rec.task_priority_id       ,
566             p_owner_type_code         => l_task_rec.owner_type_code        ,
570             p_customer_id             => l_task_rec.customer_id            ,
567             p_owner_id                => l_task_rec.owner_id               ,
568             p_owner_territory_id      => l_task_rec.owner_territory_id     ,
569             p_assigned_by_id          => l_task_rec.assigned_by_id         ,
571             p_cust_account_id         => l_task_rec.cust_account_id        ,
572             p_address_id              => l_task_rec.address_id             ,
573             p_planned_start_date      => l_task_rec.planned_start_date     ,
574             p_planned_end_date        => l_task_rec.planned_end_date       ,
575             p_scheduled_start_date    => l_task_rec.scheduled_start_date   ,
576             p_scheduled_end_date      => l_task_rec.scheduled_end_date     ,
577             p_actual_start_date       => l_task_rec.actual_start_date      ,
578             p_actual_end_date         => l_task_rec.actual_end_date        ,
579             p_timezone_id             => l_task_rec.timezone_id            ,
580             p_source_object_type_code => p_new_object_type_code            ,
581             p_source_object_id        => p_new_object_id                   ,
582             p_source_object_name      => p_new_object_name                 ,
583             p_duration                => l_task_rec.duration               ,
584             p_duration_uom            => l_task_rec.duration_uom           ,
585             p_planned_effort          => l_task_rec.planned_effort         ,
586             p_planned_effort_uom      => l_task_rec.planned_effort_uom     ,
587             p_actual_effort           => l_task_rec.actual_effort          ,
588             p_actual_effort_uom       => l_task_rec.actual_effort_uom      ,
589             p_percentage_complete     => l_task_rec.percentage_complete    ,
590             p_reason_code             => l_task_rec.reason_code            ,
591             p_private_flag            => l_task_rec.private_flag           ,
592             p_publish_flag            => l_task_rec.publish_flag           ,
593             p_restrict_closure_flag   => l_task_rec.restrict_closure_flag  ,
594             p_multi_booked_flag       => l_task_rec.multi_booked_flag      ,
595             p_milestone_flag          => l_task_rec.milestone_flag         ,
596             p_holiday_flag            => l_task_rec.holiday_flag           ,
597             p_billable_flag           => l_task_rec.billable_flag          ,
598             p_bound_mode_code         => l_task_rec.bound_mode_code        ,
599             p_soft_bound_flag         => l_task_rec.soft_bound_flag        ,
600             p_workflow_process_id     => l_task_rec.workflow_process_id    ,
601             p_notification_flag       => l_task_rec.notification_flag      ,
602             p_notification_period     => l_task_rec.notification_period    ,
603             p_notification_period_uom => l_task_rec.notification_period_uom,
604             p_parent_task_id          => l_task_rec.parent_task_id         ,
605             p_alarm_start             => l_task_rec.alarm_start            ,
606             p_alarm_start_uom         => l_task_rec.alarm_start_uom        ,
607             p_alarm_on                => l_task_rec.alarm_on               ,
608             p_alarm_count             => l_task_rec.alarm_count            ,
609             p_alarm_interval          => l_task_rec.alarm_interval         ,
610             p_alarm_interval_uom      => l_task_rec.alarm_interval_uom     ,
611             p_palm_flag               => l_task_rec.palm_flag              ,
612             p_wince_flag              => l_task_rec.wince_flag             ,
613             p_laptop_flag             => l_task_rec.laptop_flag            ,
614             p_device1_flag            => l_task_rec.device1_flag           ,
615             p_device2_flag            => l_task_rec.device2_flag           ,
616             p_device3_flag            => l_task_rec.device3_flag           ,
617             p_costs                   => l_task_rec.costs                  ,
618             p_currency_code           => l_task_rec.currency_code          ,
619             p_escalation_level        => l_task_rec.escalation_level       ,
620             p_attribute1              => l_task_rec.attribute1             ,
621             p_attribute2              => l_task_rec.attribute2             ,
622             p_attribute3              => l_task_rec.attribute3             ,
623             p_attribute4              => l_task_rec.attribute4             ,
624             p_attribute5              => l_task_rec.attribute5             ,
625             p_attribute6              => l_task_rec.attribute6             ,
626             p_attribute7              => l_task_rec.attribute7             ,
627             p_attribute8              => l_task_rec.attribute8             ,
628             p_attribute9              => l_task_rec.attribute9             ,
629             p_attribute10             => l_task_rec.attribute10            ,
630             p_attribute11             => l_task_rec.attribute11            ,
631             p_attribute12             => l_task_rec.attribute12            ,
632             p_attribute13             => l_task_rec.attribute13            ,
633             p_attribute14             => l_task_rec.attribute14            ,
634             p_attribute15             => l_task_rec.attribute15            ,
635             p_attribute_category      => l_task_rec.attribute_category     ,
636             x_task_id                 => l_task_id
637         );
638 
639 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
640           aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: l_task_id:              ' || l_task_id, 1, 'N');
641          END IF;
642 
643     END LOOP;
644 
645     -- End of API body.
646 	IF aso_debug_pub.g_debug_flag = 'Y' THEN
647       aso_debug_pub.add('ASO_TASK_INT: Copy_Opp_Tasks_To_Qte: End Copy_Opp_Tasks_To_Qte()', 1, 'Y');
648 	END IF;
649 
650     -- Standard check of p_commit.
651     IF FND_API.To_Boolean(p_commit) THEN
652         COMMIT WORK;
653     END IF;
654 
655     -- Standard call to get message count and if count is 1, get message info.
656     FND_Msg_Pub.Count_And_Get(
657         p_encoded => FND_API.G_FALSE,
658         p_count   => x_msg_count    ,
659         p_data    => x_msg_data
660     );
661 
662     EXCEPTION
663         WHEN FND_API.G_EXC_ERROR THEN
664             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
665                 P_API_NAME         => L_API_NAME,
666                 P_PKG_NAME         => G_PKG_NAME,
667                 P_EXCEPTION_LEVEL  => FND_MSG_PUB.G_MSG_LVL_ERROR,
668                 P_PACKAGE_TYPE     => ASO_UTILITY_PVT.G_INT,
669                 P_SQLCODE          => SQLCODE,
670                 P_SQLERRM          => SQLERRM,
671                 X_MSG_COUNT        => X_MSG_COUNT,
672                 X_MSG_DATA         => X_MSG_DATA,
673                 X_RETURN_STATUS    => X_RETURN_STATUS
674             );
675 
676         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
677             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
678                 P_API_NAME         => L_API_NAME,
679                 P_PKG_NAME         => G_PKG_NAME,
680                 P_EXCEPTION_LEVEL  => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
681                 P_PACKAGE_TYPE     => ASO_UTILITY_PVT.G_INT,
682                 P_SQLCODE          => SQLCODE,
683                 P_SQLERRM          => SQLERRM,
684                 X_MSG_COUNT        => X_MSG_COUNT,
685                 X_MSG_DATA         => X_MSG_DATA,
686                 X_RETURN_STATUS    => X_RETURN_STATUS
687             );
688 
689         WHEN OTHERS THEN
690             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
691                 P_API_NAME         => L_API_NAME,
692                 P_PKG_NAME         => G_PKG_NAME,
693                 P_EXCEPTION_LEVEL  => ASO_UTILITY_PVT.G_EXC_OTHERS,
694                 P_PACKAGE_TYPE     => ASO_UTILITY_PVT.G_INT,
695                 P_SQLCODE          => SQLCODE,
696                 P_SQLERRM          => SQLERRM,
697                 X_MSG_COUNT        => X_MSG_COUNT,
698                 X_MSG_DATA         => X_MSG_DATA,
699                 X_RETURN_STATUS    => X_RETURN_STATUS
700             );
701 
702 END Copy_Opp_Tasks_To_Qte;
703 
704 END ASO_TASK_INT;