[Home] [Help]
PACKAGE BODY: APPS.AST_INVOICE_LINES_PVT
Source
1 PACKAGE BODY ast_Invoice_Lines_PVT AS
2 /* $Header: astvinlb.pls 115.3 2002/02/06 11:21:05 pkm ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AST_Invoice_Lines_PVT';
5 G_FILE_NAME CONSTANT VARCHAR2(12) :='astvinlb.pls';
6 G_APPL_ID NUMBER := FND_GLOBAL.Prog_Appl_Id;
7 G_LOGIN_ID NUMBER := FND_GLOBAL.Conc_Login_Id;
8 G_PROGRAM_ID NUMBER := FND_GLOBAL.Conc_Program_Id;
9 G_USER_ID NUMBER := FND_GLOBAL.User_Id;
10 G_REQUEST_ID NUMBER := FND_GLOBAL.Conc_Request_Id;
11
12 PROCEDURE Get_Invoice_Lines(
13 p_api_version IN NUMBER,
14 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
15 p_commit IN VARCHAR2 := FND_API.G_FALSE,
16 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
17 x_return_status OUT VARCHAR2,
18 x_msg_count OUT NUMBER,
19 x_msg_data OUT VARCHAR2,
20 p_invoice_id IN NUMBER,
21 x_line_id_t OUT line_id_tbl_type,
22 x_line_number_t OUT line_number_tbl_type,
23 x_item_t OUT item_tbl_type,
24 x_units_t OUT units_tbl_type,
25 x_quantity_t OUT quantity_tbl_type,
26 x_price_per_unit_t OUT price_per_unit_tbl_type,
27 x_original_amount_t OUT original_amount_tbl_type
28 )
29 AS
30 l_api_name CONSTANT VARCHAR2(30) := 'Get_Invoice_Lines';
31 l_api_version CONSTANT NUMBER := 1.0;
32 i BINARY_INTEGER := 0;
33 l_return_status VARCHAR2(1);
34 l_msg_count NUMBER;
35 l_msg_data VARCHAR2(32767);
36 l_invoice_id NUMBER := p_invoice_id;
37
38 l_line_id_t AST_Invoice_Lines_PVT.line_id_tbl_type;
39 l_line_number_t AST_Invoice_Lines_PVT.line_number_tbl_type;
40 l_item_t AST_Invoice_Lines_PVT.item_tbl_type;
41 l_units_t AST_Invoice_Lines_PVT.units_tbl_type;
42 l_quantity_t AST_Invoice_Lines_PVT.quantity_tbl_type;
43 l_price_per_unit_t AST_Invoice_Lines_PVT.price_per_unit_tbl_type;
44 l_original_amount_t AST_Invoice_Lines_PVT.original_amount_tbl_type;
45
46 CURSOR c_inv_line IS
47 SELECT customer_trx_line_id,
48 customer_trx_id,
49 line_number,
50 inventory_item_id,
51 uom_code,
52 quantity,
53 unit_selling_price,
54 extended_amount
55 FROM ra_customer_trx_lines_v
56 WHERE customer_trx_id = l_invoice_id;
57
58 BEGIN
59 -- Standard start of API savepoint
60 SAVEPOINT Get_Invoice_Lines_PVT;
61
62 -- Standard call to check for call compatibility
63 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
64 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
65 END IF;
66
67 -- Initialize message list if p_init_msg_list is set to TRUE
68 IF FND_API.To_Boolean(p_init_msg_list) THEN
69 FND_MSG_PUB.initialize;
70 END IF;
71
72 -- Implementation of User Hooks
73 /* Copy all parameters to local variables to be passed to Pre, Post and Business APIs */
74 /* l_rec - will be used as In Out parameter in pre/post/Business API calls */
75 /* l_return_status - will be a out variable to get return code from called APIs */
76
77 /* Customer pre -processing section - Mandatory */
78 IF (JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C' ) ) THEN
79 ast_INVOICE_LINES_CUHK.Get_Invoice_Lines_PRE(p_api_version => l_api_version,
80 x_return_status => l_return_status,
81 x_msg_count => l_msg_count,
82 x_msg_data => l_msg_data,
83 p_invoice_id => l_invoice_id);
84 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
85 RAISE FND_API.G_EXC_ERROR;
86 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
87 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
88 END IF;
89 END IF;
90
91
92 /* Verticle industry pre- processing section - mandatory */
93 IF (JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V' ) ) THEN
94 ast_INVOICE_LINES_VUHK.Get_Invoice_Lines_PRE(p_api_version => l_api_version,
95 x_return_status => l_return_status,
96 x_msg_count => l_msg_count,
97 x_msg_data => l_msg_data,
98 p_invoice_id => l_invoice_id);
99 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
100 RAISE FND_API.G_EXC_ERROR;
101 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
102 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
103 END IF;
104 END IF;
105
106 -- Initialize API return status to success
107 x_return_status := FND_API.G_RET_STS_SUCCESS;
108
109 -- API body
110
111 FOR inv_line_rec IN c_inv_line LOOP
112 i := i + 1;
113 l_line_id_t(i) := inv_line_rec.customer_trx_line_id;
114 l_line_number_t(i) := inv_line_rec.line_number;
115 l_item_t(i) := inv_line_rec.inventory_item_id;
116 l_units_t(i) := inv_line_rec.uom_code;
117 l_quantity_t(i) := inv_line_rec.quantity;
118 l_price_per_unit_t(i) := inv_line_rec.unit_selling_price;
119 l_original_amount_t(i) := inv_line_rec.extended_amount;
120 --dbms_output.put_line('Line Numer : ' || l_line_number_t(i));
121 END LOOP;
122
123 x_line_id_t := l_line_id_t;
124 x_line_number_t := l_line_number_t;
125 x_item_t := l_item_t;
126 x_units_t := l_units_t;
127 x_quantity_t := l_quantity_t;
128 x_price_per_unit_t := l_price_per_unit_t;
129 x_original_amount_t := l_original_amount_t;
130
131
132 -- End of API body
133
134 /* Vertical Post Processing section - mandatory */
135 IF (JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V' ) ) THEN
136 ast_INVOICE_LINES_VUHK.Get_Invoice_Lines_POST(p_api_version => l_api_version,
137 x_return_status => l_return_status,
138 x_msg_count => l_msg_count,
139 x_msg_data => l_msg_data,
140 p_invoice_id => l_invoice_id);
141 if (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
142 RAISE FND_API.G_EXC_ERROR;
143 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
144 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
145 END IF;
146
147 END IF;
148
149 /* Customer Post Processing section - mandatory */
150 IF (JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C' ) ) THEN
151 ast_INVOICE_LINES_CUHK.Get_Invoice_Lines_POST (p_api_version => l_api_version,
152 x_return_status => l_return_status,
153 x_msg_count => l_msg_count,
154 x_msg_data => l_msg_data,
155 p_invoice_id => l_invoice_id);
156 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
157 RAISE FND_API.G_EXC_ERROR;
158 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
159 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
160 END IF;
161 END IF;
162
163 -- Standard check of p_commit
164 IF FND_API.To_Boolean(p_commit) THEN
165 COMMIT WORK;
166 END IF;
167 -- Standard call to get message count and if count is 1, get message info
168 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
169 p_data => x_msg_data,
170 p_encoded => FND_API.G_FALSE);
171 EXCEPTION
172 WHEN FND_API.G_EXC_ERROR THEN
173 ROLLBACK TO Get_Invoice_Lines_PVT;
174 x_return_status := FND_API.G_RET_STS_ERROR;
175 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
176
177 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
178 ROLLBACK TO Get_Invoice_Lines_PVT;
179 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
180 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
181
182 WHEN OTHERS THEN
183 ROLLBACK TO Get_Invoice_Lines_PVT;
184 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
185 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
186 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
187 END IF;
188 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
189 END Get_Invoice_Lines;
190 END ast_Invoice_Lines_PVT;