1 PACKAGE BODY zx_check_required_params_pkg AS
2 /* $Header: zxifreqparampkgb.pls 120.39 2006/09/22 19:38:11 ssakamur ship $ */
3
4 /* ======================================================================*
5 | Global Data Types |
6 * ======================================================================*/
7
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ZX_CHECK_REQUIRED_PARAMS_PKG';
9 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
10 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
11 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
12 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
13 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
14 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
15 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
16 G_MODULE_NAME CONSTANT VARCHAR2(80) := 'ZX.PLSQL.ZX_CHECK_REQUIRED_PARAMS_PKG.';
17
18
19 /*----------------------------------------------------------------------------*
20 | PRIVATE FUNCTIONS/PROCEDURES |
21 *----------------------------------------------------------------------------*/
22
23 /*----------------------------------------------------------------------------*
24 | PUBLIC FUNCTIONS/PROCEDURES |
25 *----------------------------------------------------------------------------*/
26
27 /* ===========================================================================*
28 | PROCEDURE Check_trx_line_tbl : Checks the required elements of the |
29 | transaction line |
30 | Called by: |
31 | zx_valid_init_params_pkg.calculate_tax (GTT version) |
32 | zx_valid_init_params_pkg.import_document_with_tax |
33 * ===========================================================================*/
34
35 PROCEDURE Check_trx_line_tbl
36 ( x_return_status OUT NOCOPY VARCHAR2,
37 p_event_class_rec IN ZX_API_PUB.event_class_rec_type
38 )
39 IS
40 l_api_name CONSTANT VARCHAR2(30):= 'CHECK_TRX_LINE_TBL';
41 l_count NUMBER;
42 l_context_info_rec ZX_API_PUB.context_info_rec_type;
43 l_message_locm VARCHAR2(240);
44 l_message_unitp VARCHAR2(240);
45
46 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
47
48 BEGIN
49 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
50 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
51 END IF;
52
53 x_return_status := FND_API.G_RET_STS_SUCCESS;
54 l_count := 0;
55
56 l_message_locm := fnd_message.get_string('ZX','ZX_LOCATION_MISSING');
57 l_message_unitp := fnd_message.get_string('ZX','ZX_UNIT_PRICE_REQD');
58 INSERT ALL
59 WHEN (ZX_LOCATION_MISSING = 'Y') THEN
60 INTO ZX_ERRORS_GT(
61 application_id,
62 entity_code,
63 event_class_code,
64 trx_id,
65 trx_line_id,
66 MESSAGE_TEXT,
67 TRX_LEVEL_TYPE
68 )
69 VALUES(
70 application_id,
71 entity_code,
72 event_class_code,
73 trx_id,
74 trx_line_id,
75 l_message_locm,
76 trx_level_type
77 )
78 /* Bug 5516630: Unit price needs to be checked only for distribution lines
79 WHEN (ZX_UNIT_PRICE_MISSING = 'Y') THEN
80 INTO ZX_ERRORS_GT(
81 application_id,
82 entity_code,
83 event_class_code,
84 trx_id,
85 trx_line_id,
86 MESSAGE_TEXT,
87 TRX_LEVEL_TYPE
88 )
89 VALUES(
90 application_id,
91 entity_code,
92 event_class_code,
93 trx_id,
94 trx_line_id,
95 l_message_unitp,
96 trx_level_type
97 )
98 */
99
100 SELECT
101 header.application_id,
102 header.entity_code,
103 header.event_class_code,
104 header.trx_id,
105 lines_gt.trx_line_id,
106 lines_gt.trx_level_type,
107 -- Check for existence of at least one location at line
108 CASE WHEN (lines_gt.ship_from_location_id is not null OR
109 lines_gt.ship_to_location_id is not NULL OR
110 lines_gt.poa_location_id is not NULL OR
111 lines_gt.poo_location_id is not NULL OR
112 lines_gt.paying_location_id is not NULL OR
113 lines_gt.own_hq_location_id is not NULL OR
114 lines_gt.trading_hq_location_id is not NULL OR
115 lines_gt.poc_location_id is not NULL OR
116 lines_gt.poi_location_id is not NULL OR
117 lines_gt.pod_location_id is not NULL OR
118 lines_gt.bill_to_location_id is not NULL OR
119 lines_gt.bill_from_location_id is not NULL OR
120 lines_gt.title_transfer_location_id is not NULL)
121 THEN NULL
122 ELSE 'Y'
123 END ZX_LOCATION_MISSING
124 /*,
125 CASE WHEN (p_event_class_rec.tax_variance_calc_flag = 'Y'
126 and lines_gt.unit_price is null
127 and lines_gt.ref_doc_application_id IS NOT NULL
128 and lines_gt.line_class <> 'AMOUNT_MATCHED')
129 THEN 'Y'
130 ELSE NULL
131 END ZX_UNIT_PRICE_MISSING
132 */
133 FROM ZX_TRX_HEADERS_GT header,
134 ZX_TRANSACTION_LINES_GT lines_gt
135 WHERE lines_gt.trx_id = header.trx_id
136 AND lines_gt.application_id = header.application_id
137 AND lines_gt.entity_code = header.entity_code
138 AND lines_gt.event_class_code = header.event_class_code;
139
140 END check_trx_line_tbl;
141
142
143 /* ===========================================================================*
144 | PROCEDURE Check_trx_lines : Checks the required elements of the |
145 | transaction line in structure |
146 | Called by: |
147 | zx_valid_init_params_pkg.calculate_tax (PLS/WIN version) |
148 | zx_valid_init_params_pkg.insupd_line_det_factors |
149 * ===========================================================================*/
150
151 PROCEDURE Check_trx_lines
152 ( x_return_status OUT NOCOPY VARCHAR2,
153 p_event_class_rec IN ZX_API_PUB.event_class_rec_type
154 )
155 IS
156 l_api_name CONSTANT VARCHAR2(30):= 'CHECK_TRX_LINE';
157 l_count NUMBER;
158 l_context_info_rec ZX_API_PUB.context_info_rec_type;
159
160 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
161
162 BEGIN
163
164 x_return_status := FND_API.G_RET_STS_SUCCESS;
165 l_count := 0;
166
167 FOR l_trx_line_index IN 1 .. nvl(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.LAST,0)
168 LOOP
169 IF zx_global_structures_pkg.trx_line_dist_tbl.LINE_LEVEL_ACTION(l_trx_line_index) not in ('CANCEL','DELETE') THEN
170 IF zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_LOCATION_ID(l_trx_line_index) is NULL
171 AND zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_LOCATION_ID(l_trx_line_index) is NULL
172 AND zx_global_structures_pkg.trx_line_dist_tbl.POA_LOCATION_ID(l_trx_line_index) is NULL
173 AND zx_global_structures_pkg.trx_line_dist_tbl.poo_location_id(l_trx_line_index) is NULL
174 AND zx_global_structures_pkg.trx_line_dist_tbl.PAYING_LOCATION_ID(l_trx_line_index) is NULL
175 AND zx_global_structures_pkg.trx_line_dist_tbl.OWN_HQ_LOCATION_ID(l_trx_line_index) is NULL
176 AND zx_global_structures_pkg.trx_line_dist_tbl.TRADING_HQ_LOCATION_ID(l_trx_line_index) is NULL
177 AND zx_global_structures_pkg.trx_line_dist_tbl.POC_LOCATION_ID(l_trx_line_index) is NULL
178 AND zx_global_structures_pkg.trx_line_dist_tbl.POI_LOCATION_ID(l_trx_line_index) is NULL
179 AND zx_global_structures_pkg.trx_line_dist_tbl.POD_LOCATION_ID(l_trx_line_index) is NULL
180 AND zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_LOCATION_ID(l_trx_line_index) is NULL
181 AND zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_LOCATION_ID(l_trx_line_index) is NULL
182 AND zx_global_structures_pkg.trx_line_dist_tbl.TITLE_TRANSFER_LOCATION_ID(l_trx_line_index) is NULL THEN
183 x_return_status := FND_API.G_RET_STS_ERROR;
184 FND_MESSAGE.SET_NAME('ZX','ZX_LOCATION_MISSING');
185 l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
186 l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
187 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
188 l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
189 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
190 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
191 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'At least one location is required');
192 END IF;
193 EXIT;
194 END IF;
195 END IF;
196 END LOOP;
197
198 FOR l_trx_line_index IN 1 .. nvl(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.LAST,0)
199 LOOP
200 IF p_event_class_rec.header_level_currency_flag is null THEN
201 IF zx_global_structures_pkg.trx_line_dist_tbl.LINE_LEVEL_ACTION(l_trx_line_index) not in ('CANCEL','DELETE') THEN
202 IF zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_CURRENCY_CODE(l_trx_line_index) is NULL and
203 zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_PRECISION(l_trx_line_index) is NULL THEN
204 x_return_status := FND_API.G_RET_STS_ERROR;
205 FND_MESSAGE.SET_NAME('ZX','ZX_CURRENCY_INFO_REQD');
206 l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
207 l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
208 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
209 l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
210 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
211 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
212 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Currency code and precision are required at line level');
213 END IF;
214 EXIT;
215 END IF;
216 END IF;
217 END IF;
218 END LOOP;
219
220 IF p_event_class_rec.tax_variance_calc_flag = 'Y' THEN
221 IF ZX_API_PUB.G_PUB_SRVC = 'CALCULATE_TAX' THEN
222 FOR l_trx_line_index IN 1 .. nvl(zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID.LAST,0)
223 LOOP
224 IF zx_global_structures_pkg.trx_line_dist_tbl.LINE_LEVEL_ACTION(l_trx_line_index) not in ('CANCEL','DELETE') AND
225 zx_global_structures_pkg.trx_line_dist_tbl.LINE_CLASS(l_trx_line_index) <> 'AMOUNT_MATCHED' AND
226 zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_APPLICATION_ID(l_trx_line_index) is not null THEN
227 IF zx_global_structures_pkg.trx_line_dist_tbl.UNIT_PRICE(l_trx_line_index) is NULL THEN
228 x_return_status := FND_API.G_RET_STS_ERROR;
229 FND_MESSAGE.SET_NAME('ZX','ZX_UNIT_PRICE_REQD');
230 l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
231 l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
232 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
233 l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
234 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
235 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
236 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unit price is required');
237 END IF;
238 EXIT;
239 END IF;
240 END IF;
241 END LOOP;
242 END IF; --g_pub_srvc
243 END IF; --tax_variance_calc_flag
244
245 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
246 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',
247 G_PKG_NAME||': '||l_api_name||'()-'||' RETURN_STATUS = ' || x_return_status);
248 END IF;
249
250 END check_trx_lines;
251
252 /* ===========================================================================*
253 | PROCEDURE Check_trx_headers_tbl : Checks the required elements of the |
254 | Transaction Header |
255 | Called by: |
256 | zx_valid_init_params_pkg.calculate_tax (GTT version) |
257 | zx_valid_init_params_pkg.import_document_with_tax |
258 | zx_valid_init_params_pkg.determine_recovery |
259 | zx_valid_init_params_pkg.insupd_line_det_factors |
260 * ===========================================================================*/
261
262 PROCEDURE Check_trx_headers_tbl
263 ( x_return_status OUT NOCOPY VARCHAR2,
264 p_event_class_rec IN OUT NOCOPY ZX_API_PUB.event_class_rec_type
265 )
266 IS
267 l_api_name CONSTANT VARCHAR2(30):= 'CHECK_TRX_HEADERS_TBL';
268 l_func_curr_code VARCHAR2(80);
269 l_count NUMBER;
270 l_context_info_rec ZX_API_PUB.context_info_rec_type;
271 l_message_pty VARCHAR2(240);
272 l_message_curr VARCHAR2(240);
273
274 BEGIN
275 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
276 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
277 END IF;
278
279 x_return_status := FND_API.G_RET_STS_SUCCESS;
280 IF ZX_API_PUB.G_PUB_SRVC <> 'DETERMINE_RECOVERY' THEN
281 IF ZX_API_PUB.G_DATA_TRANSFER_MODE <> 'TAB' THEN
282
283 IF (p_event_class_rec.rounding_ship_to_party_id is NULL) AND
284 (p_event_class_rec.rounding_ship_from_party_id is NULL) AND
285 (p_event_class_rec.rounding_bill_to_party_id is NULL) AND
286 (p_event_class_rec.rounding_bill_from_party_id is NULL) THEN
287 x_return_status := FND_API.G_RET_STS_ERROR;
288 FND_MESSAGE.SET_NAME('ZX','ZX_ROUND_PARTY_MISSING');
289 l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
290 l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
291 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
292 l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
293 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
294 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
295 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'At least one rounding party is required');
296 END IF;
297 END IF;
298 ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'TAB' THEN
299 l_message_pty := fnd_message.get_string('ZX','ZX_ROUND_PARTY_MISSING');
300 l_message_curr := fnd_message.get_string('ZX','ZX_CURRENCY_INFO_REQD');
301 INSERT ALL
302 WHEN (ZX_ROUND_PARTY_MISSING = 'Y') THEN
303 INTO ZX_ERRORS_GT(
304 application_id,
305 entity_code,
306 event_class_code,
307 trx_id,
308 trx_line_id,
309 MESSAGE_TEXT,
310 TRX_LEVEL_TYPE
311 )
312 VALUES(
313 application_id,
314 entity_code,
315 event_class_code,
316 trx_id,
317 NULL ,--trx_line_id,
318 l_message_pty,
319 NULL --interface_line_id
320 )
321 WHEN (ZX_CURRENCY_INFO_REQD = 'Y') THEN
322 INTO ZX_ERRORS_GT(
323 application_id,
324 entity_code,
325 event_class_code,
326 trx_id,
327 trx_line_id,
328 MESSAGE_TEXT,
329 TRX_LEVEL_TYPE
330 )
331 VALUES(
332 application_id,
333 entity_code,
334 event_class_code,
335 trx_id,
336 NULL ,--trx_line_id,
337 l_message_curr,
338 NULL --interface_line_id
339 )
340 SELECT
341 header.application_id,
342 header.entity_code,
343 header.event_class_code,
344 header.trx_id,
345 -- Check for existence of at least one rounding party
346 CASE WHEN (header.rounding_ship_from_party_id is NULL AND
347 header.rounding_ship_to_party_id is NULL AND
348 header.rounding_bill_to_party_id is NULL AND
349 header.rounding_bill_from_party_id is NULL )
350 THEN 'Y'
351 ELSE NULL
352 END ZX_ROUND_PARTY_MISSING,
353 CASE WHEN (header.TRX_CURRENCY_CODE is NULL
354 AND header.precision is NULL )
355 AND EXISTS
356 ( SELECT 1 FROM zx_transaction_lines_gt
357 WHERE application_id = header.application_id
358 AND entity_code = header.entity_code
359 AND event_class_code = header.event_class_code
360 AND trx_id = header.trx_id
361 AND ( TRX_LINE_CURRENCY_CODE is NULL
362 OR trx_line_precision is NULL)
363 )
364 THEN 'Y'
365 ELSE NULL
366 END ZX_CURRENCY_INFO_REQD
367
368 FROM
369 ZX_TRX_HEADERS_GT header
370 WHERE VALIDATION_CHECK_FLAG is null;
371
372 END IF; -- ZX_API_PUB.G_DATA_TRANSFER_MODE <> 'TAB'
373
374 /* Needs to be moved to service types package
375
376 IF p_event_class_rec.trx_currency_code is not NULL AND
377 p_event_class_rec.precision is not NULL THEN
378 p_event_class_rec.header_level_currency_flag := 'Y';
379 END IF;
380 */
381
382 ELSIF ZX_API_PUB.G_PUB_SRVC = 'DETERMINE_RECOVERY' THEN
383 IF p_event_class_rec.tax_variance_calc_flag = 'Y' THEN
384 /* -----------------------------------------------------------------------------+
385 | If tax_variance_calc_flag is 'Y' then trx_line_quantity cannot be null |
386 + ----------------------------------------------------------------------------*/
387 --BUGFIX 4938906 - No need to check for trx_line_quantity
388 /*BEGIN
389 SELECT /*+ INDEX (ZX_ITM_DISTRIBUTIONS_GT ZX_ITM_DISTRIBUTIONS_GT_U1)*/
390 /* 1
391 INTO l_count
392 FROM ZX_ITM_DISTRIBUTIONS_GT
393 WHERE application_id = p_event_class_rec.application_id
394 AND entity_code = p_event_class_rec.entity_code
395 AND event_class_code = p_event_class_rec.event_class_code
396 AND trx_id = p_event_class_rec.trx_id
397 AND trx_line_quantity is null;
398
399 EXCEPTION
400 WHEN NO_DATA_FOUND THEN
401 l_count := 0;
402 WHEN OTHERS THEN
403 l_count := 1;
404 END;
405 IF l_count <> 0 THEN
406 x_return_status := FND_API.G_RET_STS_ERROR;
407 FND_MESSAGE.SET_NAME('ZX','ZX_TRX_LINE_QUANTITY_REQD');
408 l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
409 l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
410 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
411 l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
412 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
413 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
414 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction line quantity is required');
415 END IF;
416 END IF;
417 */
418 /* ---------------------------------------------------------------------+
419 | If tax_variance_calc_flag is 'Y' then unit price cannot be null |
420 + ---------------------------------------------------------------------*/
421 --BUGFIX 4779214 - No need to check for unit_price
422 /*
423 BEGIN
424 SELECT /*+ INDEX (ZX_ITM_DISTRIBUTIONS_GT ZX_ITM_DISTRIBUTIONS_GT_U1)*/
425 /* 1
426 INTO l_count
427 FROM ZX_ITM_DISTRIBUTIONS_GT
428 WHERE application_id = p_event_class_rec.application_id
429 AND entity_code = p_event_class_rec.entity_code
430 AND event_class_code = p_event_class_rec.event_class_code
431 AND trx_id = p_event_class_rec.trx_id
432 AND unit_price is null;
433
434 EXCEPTION
435 WHEN NO_DATA_FOUND THEN
436 l_count := 0;
437 WHEN OTHERS THEN
438 l_count := 1;
439 END;
440 IF l_count <> 0 THEN
441 x_return_status := FND_API.G_RET_STS_ERROR;
442 FND_MESSAGE.SET_NAME('ZX','ZX_UNIT_PRICE_REQD');
443 l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
444 l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
445 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
446 l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
447 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
448 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
449 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unit Price is required');
450 END IF;
451 END IF;
452 */
453 /* ------------------------------------------------------------------------- -+
454 | If tax_variance_calc_flag is 'Y' then trx line dist qty cannot be null |
455 + ----------------------------------------------------------------------------*/
456 NULL;
457 -- moved this logic to ZX_API_PUB and execute it only once
458 -- BEGIN
459 -- SELECT /*+ INDEX (ZX_ITM_DISTRIBUTIONS_GT ZX_ITM_DISTRIBUTIONS_GT_U1)*/
460 -- 1
461 -- INTO l_count
462 -- FROM ZX_ITM_DISTRIBUTIONS_GT
463 -- WHERE application_id = p_event_class_rec.application_id
464 -- AND entity_code = p_event_class_rec.entity_code
465 -- AND event_class_code = p_event_class_rec.event_class_code
466 -- AND trx_id = p_event_class_rec.trx_id
467 -- AND ref_doc_application_id is not null
468 -- AND trx_line_dist_qty is null;
469 --
470 -- EXCEPTION
471 -- WHEN NO_DATA_FOUND THEN
472 -- l_count := 0;
473 -- WHEN OTHERS THEN
474 -- l_count := 1;
475 -- END;
476 -- IF l_count <> 0 THEN
477 -- x_return_status := FND_API.G_RET_STS_ERROR;
478 -- FND_MESSAGE.SET_NAME('ZX','ZX_TRX_LINE_DIST_QTY_REQD');
479 -- l_context_info_rec.APPLICATION_ID := p_event_class_rec.APPLICATION_ID;
480 -- l_context_info_rec.ENTITY_CODE := p_event_class_rec.ENTITY_CODE;
481 -- l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
482 -- l_context_info_rec.TRX_ID := p_event_class_rec.TRX_ID;
483 -- ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
484 -- IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
485 -- FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction line distribution quantity is required');
486 -- END IF;
487 -- END IF;
488 END IF; --tax_variance_calc_flag
489 END IF; -- g_pub_srvc
490
491
492 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
493 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',
494 G_PKG_NAME||': '||l_api_name||'()-'||' RETURN_STATUS = ' || x_return_status);
495 END IF;
496
497 END check_trx_headers_tbl;
498
499
500 /* ===========================================================================*
501 | PROCEDURE Check_trx_rec : Checks the required elements of the transaction |
502 | record |
503 | Called by: |
504 | zx_valid_init_params_pkg.override_tax |
505 | zx_valid_init_params_pkg.global_document_update |
506 | zx_valid_init_params_pkg.override_recovery |
507 | zx_valid_init_params_pkg.freeze_distribution_lines |
508 | zx_valid_init_params_pkg.validate_document_for_tax |
509 | zx_valid_init_params_pkg.discard_tax_only_lines |
510 * ===========================================================================*/
511
512 PROCEDURE Check_trx_rec
513 ( x_return_status OUT NOCOPY VARCHAR2,
514 p_trx_rec IN ZX_API_PUB.transaction_rec_type
515 )
516 IS
517 l_api_name CONSTANT VARCHAR2(30):= 'CHECK_TRX_REC';
518 l_count NUMBER;
519 l_context_info_rec ZX_API_PUB.context_info_rec_type;
520
521 BEGIN
522 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
523 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
524 END IF;
525
526 l_count := 0;
527 x_return_status := FND_API.G_RET_STS_SUCCESS;
528
529 /*Bugfix 3423297
530 IF p_trx_rec.internal_organization_id is NULL THEN
531
532 x_return_status := FND_API.G_RET_STS_ERROR;
533 FND_MESSAGE.SET_NAME('ZX','ZX_ORG_ID_REQD');
534 FND_MSG_PUB.Add;
535
536 END IF;
537 */
538 IF p_trx_rec.application_id is NULL THEN
539 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
540 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
541 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Application ID is required');
542 END IF;
543 END IF;
544
545 IF p_trx_rec.entity_code is NULL THEN
546 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
547 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
548 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Entity code is required');
549 END IF;
550 END IF;
551
552
553 IF p_trx_rec.event_class_code is NULL THEN
554 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
555 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
556 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Event class code is required');
557 END IF;
558 END IF;
559
560 IF p_trx_rec.event_type_code is NULL THEN
561 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
562 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
563 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Event type code is required');
564 END IF;
565 END IF;
566
567 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
568 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',
569 G_PKG_NAME||': '||l_api_name||'()-'||' RETURN_STATUS = ' || x_return_status);
570 END IF;
571
572 END check_trx_rec;
573
574
575 /*==============================================================================*
576 | PROCEDURE Check_trx_line_rec : Checks the required elements of the specified |
577 | transaction line have values |
578 | Called by: |
579 | zx_valid_init_params_pkg.mark_tax_lines_deleted |
580 * ============================================================================*/
581
582 PROCEDURE Check_trx_line_rec
583 ( x_return_status OUT NOCOPY VARCHAR2,
584 p_trx_line_rec IN zx_api_pub.transaction_line_rec_type
585 ) IS
586 l_api_name CONSTANT VARCHAR2(30) := 'CHECK_TRX_LINE_REC';
587 l_context_info_rec ZX_API_PUB.context_info_rec_type;
588
589 BEGIN
590 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
591 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
592 END IF;
593
594 x_return_status := FND_API.G_RET_STS_SUCCESS;
595
596 IF p_trx_line_rec.internal_organization_id is NULL THEN
597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
598 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
599 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Org ID is required');
600 END IF;
601 END IF;
602
603 IF p_trx_line_rec.application_id is NULL THEN
604 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
605 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
606 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Application ID is required');
607 END IF;
608 END IF;
609
610 IF p_trx_line_rec.entity_code is NULL THEN
611 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
612 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
613 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Entity code is required');
614 END IF;
615 END IF;
616
617 IF p_trx_line_rec.event_class_code is NULL THEN
618 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
619 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
620 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Event class code is required');
621 END IF;
622 END IF;
623
624 IF p_trx_line_rec.trx_id is NULL THEN
625 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
627 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction ID is required');
628 END IF;
629 END IF;
630
631 IF p_trx_line_rec.trx_line_id is NULL THEN
632 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
633 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
634 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction line ID is required');
635 END IF;
636 END IF;
637
638 IF p_trx_line_rec.trx_level_type is NULL THEN
639 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
640 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
641 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction line level type is required');
642 END IF;
643 END IF;
644
645 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
646 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',
647 G_PKG_NAME||': '||l_api_name||'()-'||' RETURN_STATUS = ' || x_return_status);
648 END IF;
649 END check_trx_line_rec ;
650
651 END ZX_CHECK_REQUIRED_PARAMS_PKG;