DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_LTP_ASCP_ORDERS_PVT

Source


1 PACKAGE BODY AHL_LTP_ASCP_ORDERS_PVT AS
2 /* $Header: AHLSCMRB.pls 115.3 2004/01/29 00:05:59 ssurapan noship $*/
3 --
4 --
5 G_PKG_NAME  VARCHAR2(30)  := 'AHL_LTP_ASCP_ORDERS_PVT';
6 -- Start of Comments --
7 --  Procedure name    : Update_Sheduling_Results
8 --  Type        : Public
9 --  Function    : This procedure Updates Scheduled Materials table with scheduled date
10 --                from APS
11 --  Pre-reqs    :
12 --  Parameters  :
13 --
14 --  Standard IN  Parameters :
15 --      p_api_version                   IN      NUMBER                Required
16 --      p_init_msg_list                 IN      VARCHAR2     Default  FND_API.G_FALSE
17 --      p_commit                        IN      VARCHAR2     Default  FND_API.G_FALSE
18 --      p_validation_level              IN      NUMBER       Default  FND_API.G_VALID_LEVEL_FULL
19 --  Standard out Parameters :
20 --      x_return_status                 OUT     VARCHAR2               Required
21 --
22 --  Update_Scheduling_Results :
23 --
24 --
25 --
26 PROCEDURE Update_Scheduling_Results (
27    p_api_version             IN    NUMBER    := 1.0,
28    p_init_msg_list           IN    VARCHAR2  := FND_API.g_false,
29    p_commit                  IN    VARCHAR2  := FND_API.g_false,
30    p_validation_level        IN    NUMBER    := FND_API.g_valid_level_full,
31    p_sched_Orders_Tbl        IN    Sched_Orders_Tbl,
32    x_return_status              OUT NOCOPY VARCHAR2)
33    IS
34 
35    CURSOR Check_Sched_Mat_Cur(c_sch_mat_id    IN NUMBER)
36        IS
37 	 SELECT 1 FROM ahl_schedule_materials
38 	  WHERE scheduled_material_id = c_sch_mat_id;
39 
40   --Standard local variables
41   l_api_name        CONSTANT VARCHAR2(30) := 'Update_Scheduling_Results';
42   l_api_version     CONSTANT NUMBER       := 1.0;
43   l_return_status          VARCHAR2(1);
44   l_msg_data               VARCHAR2(2000);
45   l_msg_count              NUMBER;
46   l_dummy                  NUMBER;
47    BEGIN
48 
49    IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
50 		fnd_log.string
51 		(
52 			fnd_log.level_procedure,
53 			'ahl.plsql.AHL_LTP_ASCP_ORDERS_PVT.Update_Scheduling_Results.begin',
54 			'At the start of PLSQL procedure'
55 		);
56     END IF;
57     -- Standard Start of API savepoint
58     SAVEPOINT Update_Scheduling_Results;
59     -- Initialize message list if p_init_msg_list is set to TRUE.
60     IF FND_API.to_boolean(p_init_msg_list)
61     THEN
62        FND_MSG_PUB.initialize;
63      END IF;
64     --  Initialize API return status to success
65     x_return_status := FND_API.G_RET_STS_SUCCESS;
66     -- Standard call to check for call compatibility.
67    IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
68                                       l_api_version,
69                                       l_api_name,G_PKG_NAME)
70    THEN
71        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
72    END IF;
73 
74    IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
75 		fnd_log.string
76 		(
77 			fnd_log.level_statement,
78             'ahl.plsql.'||g_pkg_name||'.'||l_api_name||':',
79 			'Request for Update Scheduled Sales Orders Number of Records : ' || p_sched_Orders_tbl.COUNT
80 		);
81 
82      END IF;
83 
84 
85 	  IF p_sched_Orders_tbl.COUNT > 0 THEN
86 	     FOR i IN p_sched_Orders_tbl.FIRST..p_sched_Orders_tbl.LAST
87 		 LOOP
88 		     -- Check for record exists in schedule materials
89 			  IF p_sched_Orders_tbl(i).order_line_id IS NOT NULL THEN
90 			    OPEN Check_Sched_Mat_Cur(p_sched_Orders_tbl(i).order_line_id);
91 				FETCH Check_Sched_Mat_Cur INTO l_dummy;
92 				IF Check_Sched_Mat_Cur%FOUND THEN
93 		            UPDATE AHL_SCHEDULE_MATERIALS
94 					   SET scheduled_date = p_sched_Orders_tbl(i).schedule_ship_date,
95 					       scheduled_quantity = p_sched_Orders_tbl(i).Quantity_By_Due_Date,
96 					       object_version_number = object_version_number + 1
97    			         WHERE scheduled_material_id = p_sched_Orders_tbl(i).order_line_id;
98                  END IF;
99 				 CLOSE Check_Sched_Mat_Cur;
100 		         END IF;
101 		 END LOOP;
102 	  END IF;
103 
104       --Standard check to count messages
105       l_msg_count := FND_MSG_PUB.count_msg;
106       IF l_msg_count > 0 THEN
107         RAISE FND_API.G_EXC_ERROR;
108       END IF;
109 
110      -- Standard check of p_commit
111      IF FND_API.TO_BOOLEAN(p_commit) THEN
112         COMMIT WORK;
113      END IF;
114 
115      IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
116 		fnd_log.string
117 		(
118 			fnd_log.level_procedure,
119 			'ahl.plsql.AHL_LTP_ASCP_ORDERS_PVT.Update_Scheduling_Results.end',
120 			'At the end of PLSQL procedure'
121 		);
122      END IF;
123 
124  EXCEPTION
125     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
126        ROLLBACK TO Update_Scheduling_Results;
127        X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
128        FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
129                                   p_count => l_msg_count,
130                                   p_data  => l_msg_data);
131 
132     WHEN FND_API.G_EXC_ERROR THEN
133        ROLLBACK TO Update_Scheduling_Results;
134        X_return_status := FND_API.G_RET_STS_ERROR;
135        FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
136                                   p_count => l_msg_count,
137                                   p_data  => l_msg_data);
138 
139     WHEN OTHERS THEN
140        ROLLBACK TO Update_Scheduling_Results;
141        X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
142        IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
143        THEN
144        fnd_msg_pub.add_exc_msg(p_pkg_name        =>  'AHL_LTP_ASCP_ORDERS_PVT',
145                                p_procedure_name  =>  'UPDATE_SCHEDULING_RESULTS',
146                                p_error_text      => SUBSTR(SQLERRM,1,240));
147        END IF;
148        FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
149                                   p_count => l_msg_count,
150                                   p_data  => l_msg_data);
151 
152 
153    END Update_Scheduling_Results;
154 
155 
156 END AHL_LTP_ASCP_ORDERS_PVT;