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