DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMS_UTILITY_PVT

Source


1 PACKAGE BODY WMS_UTILITY_PVT as
2 -- $Header: WMSFUTLB.pls 120.1.12010000.2 2008/08/19 09:54:14 anviswan ship $
3 --
4 
5 G_PKG_NAME    CONSTANT VARCHAR2(30):='WMS_UTILITY_PVT';
6 
7 pg_file_name    VARCHAR2(100) := NULL;
8 pg_path_name    VARCHAR2(100) := NULL;
9 pg_fp           utl_file.file_type;
10 
11 -- =====================================================
12 -- API name    : Get_log_dir
13 -- Type        : Private
14 -- Function    : Get path name defined from utl_file_dir
15 -- =====================================================
16 PROCEDURE get_log_dir(
17    x_return_status        OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
18    x_msg_count            OUT NOCOPY /* file.sql.39 change */ NUMBER,
19    x_msg_data             OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
20    x_log_dir             OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
21 IS
22   Invalid_dir    EXCEPTION;
23  l_write_dir    VARCHAR2(2000) := NULL;
24  l_msg          VARCHAR2(2000);
25 
26 
27   Cursor Get_FileDebugDir IS
28    select rtrim(ltrim(value)) from v$parameter
29    where upper(name) = 'UTL_FILE_DIR';
30 
31     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
32 BEGIN
33   open Get_FileDebugDir;
34   fetch Get_FileDebugDir into l_write_dir;
35   IF(l_write_dir IS NULL) THEN
36       l_msg := 'Invalid directory defined in utl_file_dir';
37       RAISE Invalid_dir;
38    END IF;
39    close Get_FileDebugDir;
40 
41    IF(instr(l_write_dir,',') > 0) THEN
42       l_write_dir := substr(l_write_dir,1,instr(l_write_dir,',')-1);
43    END IF;
44    x_log_dir := l_write_dir;
45 
46 
47   EXCEPTION
48      WHEN Invalid_dir THEN
49 
50      x_return_status := fnd_api.g_ret_sts_error;
51      fnd_msg_pub.count_and_get( p_count => x_msg_count
52                                 ,p_data  => x_msg_data );
53 
54 END get_log_dir;
55 
56 -- ======================================================
57 -- API name    : file_debug
58 -- Type        : Private
59 -- Function    : Write message to logfile.
60 -- ======================================================
61 
62 PROCEDURE file_debug(line in varchar2) IS
63 
64     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
65 BEGIN
66   if (pg_file_name is not null) then
67 
68 --     dbms_output.put_line('pg_file_name ' || pg_file_name);
69      utl_file.put_line(pg_fp, line);
70      utl_file.fflush(pg_fp);
71   end if;
72 END file_debug;
73 
74 -- ======================================================
75 -- API name    : enable_file_debug
76 -- Type        : Private
77 -- Function    : Open the logfile for writing log message.
78 -- ======================================================
79 PROCEDURE enable_file_debug(
80    p_path_name            IN varchar2,
81    p_file_name            IN varchar2,
82    x_return_status        OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
83    x_msg_count            OUT NOCOPY /* file.sql.39 change */ NUMBER,
84    x_msg_data             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
85 ) IS
86 
87     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
88 BEGIN
89 
90   if (pg_file_name is null) then
91     pg_fp := utl_file.fopen(p_path_name, p_file_name, 'a',32767);
92     pg_file_name := p_file_name;
93     pg_path_name := p_path_name;
94   end if;
95 
96 EXCEPTION
97    WHEN utl_file.invalid_path then
98        x_return_status := fnd_api.g_ret_sts_error;
99      fnd_msg_pub.count_and_get( p_count => x_msg_count
100                                 ,p_data  => x_msg_data );
101 
102 
103    WHEN utl_file.invalid_mode then
104       x_return_status := fnd_api.g_ret_sts_error;
105      fnd_msg_pub.count_and_get( p_count => x_msg_count
106                                 ,p_data  => x_msg_data );
107 
108 
109 END enable_file_debug;
110 
111 -- ===========================================
112 -- API name    : disabel_file_debug
113 -- Type        : Private
114 -- Function    : Close the logfile
115 
116 -- ===========================================
117 PROCEDURE disable_file_debug is
118     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
119 BEGIN
120   if (pg_file_name is not null) THEN
121      utl_file.fclose(pg_fp);
122   end if;
123 END disable_file_debug;
124 
125 -- ===========================================
126 -- API name    : GET_CREATE_TRX_ID
127 -- Type        : Private
128 -- Function    : returns an approximate GET_CREATE_TRX_ID
129 --               for given item in an lpn
130 -- ===========================================
131 FUNCTION GET_CREATE_TRX_ID (
132   p_inventory_item_id IN NUMBER
133 , p_revision IN VARCHAR2
134 , p_lot_number IN VARCHAR2
135 , p_cost_group_id IN NUMBER
136 , p_parent_lpn_id IN NUMBER )
137 RETURN NUMBER
138 IS
139 l_transaction_id NUMBER;
140     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
141 BEGIN
142 
143 SELECT MIN(mmt.transaction_id)
144 INTO l_transaction_id
145 FROM MTL_MATERIAL_TRANSACTIONS mmt, MTL_TRANSACTION_LOT_NUMBERS mtln
146 WHERE  mmt.transaction_id = mtln.transaction_id (+)
147 AND mmt.INVENTORY_ITEM_ID = p_inventory_item_id
148 AND NVL(mmt.revision, '@') = NVL(p_revision, '@')
149 AND NVL(mtln.lot_number, '@') = NVL(p_lot_number, '@')
150 AND NVL(mmt.cost_group_id, -99) = NVL(p_cost_group_id, -99)
151 AND (mmt.CONTENT_LPN_ID = p_parent_lpn_id OR
152      mmt.TRANSFER_LPN_ID = p_parent_lpn_id)
153 AND NOT (mmt.TRANSACTION_ACTION_ID = 50 AND mmt.CONTENT_LPN_ID IS NOT NULL)
154 AND mmt.TRANSACTION_ACTION_ID <> 51
155 AND mmt.TRANSACTION_QUANTITY > 0;
156 
157 RETURN l_transaction_id;
158 
159 EXCEPTION
160    WHEN NO_DATA_FOUND THEN
161       RETURN NULL;
162    WHEN OTHERS THEN
163       RETURN NULL;
164 END GET_CREATE_TRX_ID;
165 
166 -- ===========================================
167 -- API name    : GET_UPDATE_TRX_ID
168 -- Type        : Private
169 -- Function    : returns an approximate GET_UPDATE_TRX_ID
170 --               for given item in an lpn
171 -- ===========================================
172 FUNCTION GET_UPDATE_TRX_ID (
173   p_inventory_item_id IN NUMBER
174 , p_revision IN VARCHAR2
175 , p_lot_number IN VARCHAR2
176 , p_cost_group_id IN NUMBER
177 , p_parent_lpn_id IN NUMBER )
178 RETURN NUMBER
179 IS
180 l_transaction_id NUMBER;
181     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
182 BEGIN
183 
184 SELECT MAX(mmt.transaction_id)
185 INTO l_transaction_id
186 FROM MTL_MATERIAL_TRANSACTIONS mmt, MTL_TRANSACTION_LOT_NUMBERS mtln
187 WHERE  mmt.transaction_id = mtln.transaction_id (+)
188 AND mmt.INVENTORY_ITEM_ID = p_inventory_item_id
189 AND NVL(mmt.revision, '@') = NVL(p_revision, '@')
190 AND NVL(mtln.lot_number, '@') = NVL(p_lot_number, '@')
191 AND NVL(mmt.cost_group_id, -99) = NVL(p_cost_group_id, -99)
192 AND (mmt.LPN_ID = p_parent_lpn_id
193      OR mmt.CONTENT_LPN_ID = p_parent_lpn_id
194      OR mmt.TRANSFER_LPN_ID = p_parent_lpn_id)
195 AND NOT (mmt.TRANSACTION_ACTION_ID IN (50, 51) AND mmt.CONTENT_LPN_ID IS NOT NULL);
196 
197 RETURN l_transaction_id;
198 
199 EXCEPTION
200    WHEN NO_DATA_FOUND THEN
201       RETURN NULL;
202    WHEN OTHERS THEN
203       RETURN NULL;
204 END GET_UPDATE_TRX_ID;
205 
206 END WMS_UTILITY_PVT;