1 PACKAGE BODY GMD_TEST_METHODS_GRP AS
2 /* $Header: GMDGMTPB.pls 120.1 2005/07/15 07:06:42 svankada noship $ */
3
4 FUNCTION test_method_exist(ptest_method IN VARCHAR2) RETURN BOOLEAN IS
5 CURSOR Cur_get_test_mthd(ptest_mthd VARCHAR2) IS
6 SELECT test_method_code
7 FROM gmd_test_methods
8 WHERE test_method_code = ptest_mthd;
9 l_test_method gmd_test_methods.test_method_code%TYPE;
10 BEGIN
11 IF (ptest_method IS NOT NULL) THEN
12 OPEN Cur_get_test_mthd(ptest_method);
13 FETCH Cur_get_test_mthd INTO l_test_method;
14 IF (Cur_get_test_mthd%FOUND) THEN
15 CLOSE Cur_get_test_mthd;
16 RETURN TRUE;
17 ELSE
18 CLOSE Cur_get_test_mthd;
19 RETURN FALSE;
20 END IF;
21 END IF;
22 END test_method_exist;
23
24 PROCEDURE Validate_Test_Method_Rec(ptestmthd_rec IN gmd_test_methods%rowtype,
25 X_return_status OUT NOCOPY VARCHAR2) IS
26 INVALID_TEST_QTY_UOM EXCEPTION;
27 INVALID_DISPLAY_PRECISION EXCEPTION;
28 INVALID_REPLICATE_VALUE EXCEPTION;
29 BEGIN
30 X_return_Status := FND_API.G_RET_STS_SUCCESS;
31
32 -- Check if test qty or test uom are missing. If one is entered other should exist.
33
34 IF ((ptestmthd_rec.test_qty IS NOT NULL AND ptestmthd_rec.test_qty_uom IS NULL)
35 OR (ptestmthd_rec.test_qty IS NULL AND ptestmthd_rec.test_qty_uom IS NOT NULL)) THEN
36 RAISE INVALID_TEST_QTY_UOM;
37 END IF;
38
39 -- display precision value should be between 0 and 9.
40
41 IF (ptestmthd_rec.display_precision NOT BETWEEN 0 AND 9) THEN
42 RAISE INVALID_DISPLAY_PRECISION;
43 END IF;
44
45 -- Check if replicate is negative
46 IF (ptestmthd_rec.test_replicate < 0) THEN
47 RAISE INVALID_REPLICATE_VALUE;
48 END IF;
49
50 EXCEPTION
51 WHEN INVALID_TEST_QTY_UOM THEN
52 FND_MESSAGE.SET_NAME('GMD','GMD_INVALID_TEST_QTY_UOM');
53 FND_MSG_PUB.add;
54 x_return_status := FND_API.G_RET_STS_ERROR;
55
56 WHEN INVALID_DISPLAY_PRECISION THEN
57 FND_MESSAGE.SET_NAME('GMD','GMD_INVALID_PRECISION');
58 FND_MSG_PUB.add;
59 X_return_status := FND_API.G_RET_STS_ERROR;
60
61 WHEN INVALID_REPLICATE_VALUE THEN
62 FND_MESSAGE.SET_NAME('GMD','GMD_INVALID_REPLICATE');
63 FND_MSG_PUB.ADD;
64 X_return_status := FND_API.G_RET_STS_ERROR;
65 END Validate_Test_Method_Rec;
66
67
68 PROCEDURE GET_TEST_DURATION
69 ( p_days IN NUMBER,
70 p_hours IN NUMBER,
71 p_mins IN NUMBER,
72 p_secs IN NUMBER,
73 x_duration_secs OUT NOCOPY NUMBER,
74 x_return_status OUT NOCOPY VARCHAR2
75 )
76 IS
77
78 l_duration_secs NUMBER;
79 l_return_Status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
80
81 BEGIN
82
83
84 IF p_days IS NULL AND
85 p_hours IS NULL AND
86 p_mins IS NULL AND
87 p_secs IS NULL THEN
88
89 l_duration_secs := 0;
90
91 ELSE
92
93 l_duration_secs := 0;
94
95 IF p_days is NOT NULL THEN
96 l_duration_secs := l_duration_secs + ( p_days * G_DAYS_SECS) ;
97 END IF;
98
99 IF p_hours is NOT NULL THEN
100 l_duration_secs := l_duration_secs + ( p_hours * G_HOURS_SECS);
101 END IF;
102
103 IF p_mins is NOT NULL THEN
104 l_duration_secs := l_duration_secs + ( p_mins * G_MINUTES_SECS );
105 END IF;
106
107 IF p_secs is NOT NULL THEN
108 l_duration_secs := l_duration_secs + p_secs;
109 END IF;
110
111 END IF;
112
113 -- Set Return Parameters
114
115 x_duration_secs := l_duration_secs;
116 x_return_status := l_return_status;
117
118 EXCEPTION
119
120 WHEN OTHERS THEN
121 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
122 END GET_TEST_DURATION;
123
124
125
126 END GMD_TEST_METHODS_GRP;