DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_TEST_METHODS_GRP

Source


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;