DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_SD_BATCH_PUB

Source


1 PACKAGE BODY OZF_SD_BATCH_PUB AS
2 /* $Header: ozfpsdbb.pls 120.0.12010000.7 2009/05/18 09:47:05 annsrini noship $ */
3 
4   G_PKG_NAME CONSTANT VARCHAR2(30)   := 'OZF_SD_BATCH_PUB';
5   G_FILE_NAME CONSTANT VARCHAR2(12)  := 'ozfpsdbb.pls';
6 
7 -- Start of comments
8 --	API name        : MARK_BATCH_SUBMITTED
9 --	Type            : Public
10 --	Pre-reqs        : None.
11 --	Parameters      :
12 --	IN              :       p_api_version_number    IN   NUMBER
13 --                      :       p_init_msg_list         IN   VARCHAR2
14 --                      :       p_batch_id		IN   NUMBER
15 --      OUT             :       x_return_status         OUT  VARCHAR2
16 --                      :       x_msg_count             OUT  NUMBER
17 --                      :       x_msg_data              OUT  VARCHAR
18 --
19 -- End of comments
20 
21   PROCEDURE MARK_BATCH_SUBMITTED (p_api_version_number  IN NUMBER,
22 			          p_init_msg_list       IN VARCHAR2 := FND_API.G_FALSE,
23                                   p_batch_id	        IN NUMBER,
24 			          x_return_status       OUT nocopy VARCHAR2,
25                  	          x_msg_count 	        OUT nocopy NUMBER,
26 			          x_msg_data            OUT nocopy VARCHAR2
27 			          ) IS
28 
29   l_cnt_hdr          number;
30   l_cnt_line         number;
31   l_status           varchar2(30);
32 
33   l_api_version   CONSTANT NUMBER       := 1.0;
34   l_api_name      CONSTANT VARCHAR2(30) := 'MARK_BATCH_SUBMITTED';
35   l_full_name     CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
36 
37   BEGIN
38 
39 -- Standard call to check for call compatibility.
40 
41   IF NOT FND_API.Compatible_API_Call ( l_api_version,
42 	p_api_version_number,
43 	l_api_name,
44 	G_PKG_NAME)
45   THEN
46    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47   END IF;
48 
49   --Initialize message list if p_init_msg_list is TRUE.
50     IF FND_API.To_Boolean (p_init_msg_list) THEN
51        FND_MSG_PUB.initialize;
52     END IF;
53 
54   -- Initialize API return status to sucess
55   x_return_status := fnd_api.g_ret_sts_success;
56 
57 	  SELECT COUNT(1)
58 	    INTO l_cnt_hdr
59             FROM ozf_sd_batch_headers_all
60            WHERE batch_id = p_batch_id;
61 
62 	   IF l_cnt_hdr = 0 THEN
63               x_return_status := fnd_api.g_ret_sts_error;
64               x_msg_data      := 'This Batch ID does not exist ' || p_batch_id ;
65        	      RETURN;
66 	   END IF;
67 
68          SELECT STATUS_CODE
69 	   INTO l_status
70 	   FROM ozf_sd_batch_headers_all
71           WHERE batch_id = p_batch_id;
72 
73            IF l_status NOT IN ('NEW','WIP') THEN
74               x_return_status := fnd_api.g_ret_sts_error;
75               x_msg_data      := 'Batch is not in NEW or WIP status ' || p_batch_id ;
76        	      RETURN;
77 	   END IF;
78 
79 	  SELECT COUNT(1)
80 	    INTO l_cnt_line
81             FROM ozf_sd_batch_lines_all
82            WHERE batch_id = p_batch_id
83 	     AND purge_flag <> 'Y'
84 	     AND transmit_flag = 'Y';
85 
86 	   IF l_cnt_line = 0 THEN
87               x_return_status := fnd_api.g_ret_sts_error;
88               x_msg_data      := 'There are no Lines in this Batch which are ready for transmission ' || p_batch_id ;
89        	      RETURN;
90 	   END IF;
91 
92 	   IF l_status = 'NEW' THEN
93 	       UPDATE ozf_sd_batch_headers_all
94 		  SET status_code = 'SUBMITTED',
95 		      object_version_number  = object_version_number + 1,
96 		      batch_submission_date = SYSDATE,
97 		      last_update_login = NVL(FND_GLOBAL.conc_login_id,-1),
98 		      last_update_date = SYSDATE,
99 		      last_updated_by  = NVL(FND_GLOBAL.user_id,-1)
100 		WHERE batch_id = p_batch_id;
101 	   END IF;
102 
103 	   IF l_status = 'WIP' THEN
104 	       UPDATE ozf_sd_batch_line_disputes
105 		  SET object_version_number  = object_version_number + 1,
106 		      review_flag = 'Y',
107 		      last_update_login = NVL(FND_GLOBAL.conc_login_id,-1),
108 		      last_update_date = SYSDATE,
109 		      last_updated_by  = NVL(FND_GLOBAL.user_id,-1)
110 		WHERE batch_id = p_batch_id
111 		  AND batch_line_id IN ( SELECT batch_line_id
112 		                           FROM ozf_sd_batch_lines_all
113 					  WHERE batch_id = p_batch_id
114 					    AND purge_flag <> 'Y'
115 					    AND transmit_flag = 'Y' );
116 	   END IF;
117 
118 		UPDATE ozf_sd_batch_lines_all
119 		   SET status_code = 'SUBMITTED',
120 		       object_version_number  = object_version_number + 1,
121 		       transmit_flag = 'N',
122 		       process_feed_flag = 'Y',
123 		       last_sub_claim_amount = batch_curr_claim_amount,
124 		       last_update_login = NVL(FND_GLOBAL.conc_login_id,-1),
125 		       last_update_date = SYSDATE,
126 		       last_updated_by  = NVL(FND_GLOBAL.user_id,-1)
127 		 WHERE batch_id = p_batch_id
128 		   AND purge_flag <> 'Y'
129 		   AND transmit_flag = 'Y';
130 
131           EXCEPTION
132           WHEN FND_API.g_exc_error THEN
133 	    x_return_status := FND_API.g_ret_sts_error;
134 	    FND_MSG_PUB.count_and_get (
135 		   p_encoded => FND_API.g_false
136 		  ,p_count   => x_msg_count
137 		  ,p_data    => x_msg_data
138 	    );
139 
140 	  WHEN FND_API.g_exc_unexpected_error THEN
141 	    x_return_status := FND_API.g_ret_sts_unexp_error ;
142 	    FND_MSG_PUB.count_and_get (
143 		   p_encoded => FND_API.g_false
144 		  ,p_count   => x_msg_count
145 		  ,p_data    => x_msg_data
146 	    );
147 
148 	  WHEN OTHERS THEN
149 	    x_return_status := FND_API.g_ret_sts_unexp_error ;
150 	    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
151 	      FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
152 	    END IF;
153 	    FND_MSG_PUB.count_and_get(
154 		   p_encoded => FND_API.g_false
155 		  ,p_count   => x_msg_count
156 		  ,p_data    => x_msg_data
157 	    );
158 
159   END MARK_BATCH_SUBMITTED;
160 
161 END OZF_SD_BATCH_PUB;