[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;