DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMF_GLSYNCH

Source


1 PACKAGE BODY Gmf_Glsynch AS
2 /*       $Header: gmfsyncb.pls 115.10 2002/11/11 00:46:04 rseshadr ship $ */
3 	/* Package variable will be used in cursor fetches */
4 	DummyN	NUMBER := 0;
5 
6 	/* This procedure will insert exceptions into the sy_excp_tbl.
7 	The interface_id and co_code will always be -99 and ' ' respectively.*/
8 
9 PROCEDURE Write_Exception(
10 		pi_table_code 	in	varchar2,
11 		pi_key_name 	in	varchar2,
12 		pi_message_code	in	varchar2,
13 		pi_col1	 	in	varchar2,
14 		pi_col2 	in	varchar2,
15 		pi_col3 	in	varchar2,
16 		pi_col4 	in	varchar2,
17 		pi_col5 	in	varchar2,
18 		pi_key_value 	in	varchar2) IS
19 	message_args	GMF_MSG_PKG.SubstituteTabTyp;
20 	message_id	number;
21 	message_text	varchar2(512);
22 	error_status	number;
23 BEGIN
24 	Gmf_Session_Vars.FOUND_ERRORS := 'Y';
25 	<<GL_LOG_TRIGGER_ERROR>>
26 	IF Gmf_Session_Vars.GL_LOG_TRIGGER_ERROR = 1 THEN
27 		INSERT into sy_excp_tbl(
28 			software_code,
29 			table_code ,
30 			message_code ,
31 			exception_date ,
32 			col1,
33 			col2,
34 			col3,
35 			col4,
36 			col5,
37 			LAST_UPDATE_DATE,
38 			LAST_UPDATED_BY,
39 			CREATED_BY,
40 			CREATION_DATE,
41 			interface_id ,
42 			co_code,
43 			key_value)
44 		VALUES(
45 			'ORAFIN',
46 			substrb(pi_table_code, 1, 16),
47 			substrb(pi_message_code, 1, 32),
48 			sysdate,
49 			substrb(pi_key_name || ' `' || pi_key_value || '`', 1, 64),
50 			substrb(pi_col2, 1, 64),
51 			substrb(pi_col3, 1, 64),
52 			substrb(pi_col4, 1, 64),
53 			substrb(pi_col5, 1, 64),
54 			sysdate,
55 			Gmf_session_vars.last_updated_by,
56 			Gmf_session_vars.last_updated_by,
57 			sysdate,
58 			-99,
59 			decode(pi_table_code, 'Customers', Gmf_Session_Vars.GL_EXCP_CO_CODE, NULL),
60 			substrb(pi_key_value, 1, 256));
61 	ELSE
62 		BEGIN
63 			message_args (1) := substrb(pi_key_name || ' ''' || pi_key_value || '''', 1, 64);
64 			message_args (2) :=substrb(pi_col2, 1, 64);
65 			message_args (3) :=substrb(pi_col3, 1, 64);
66 			message_args (4) :=substrb(pi_col4, 1, 64);
67 			message_args (5) :=substrb(pi_col5, 1, 64);
68 
69 			GMF_MSG_PKG.get_msg_from_code(message_id,
70 						pi_message_code,
71 						message_text,
72 						gmf_session_vars.last_updated_by,
73 						message_args,
74 						error_status);
75 
76 			Gmf_Session_Vars.ERROR_TEXT := substrb(message_text,1,512);
77 
78 		EXCEPTION
79 			/*
80 			When there is no user defined in the GEMMS for the
81 			corresponding user of Oracle APPS an exception will be
82 			raised. In such case an error will be diaplayed in the
83 			default language of ORAF user which exists when
84 			integrating  Oracle Apps and GEMMS.
85 			*/
86 
87 			WHEN others THEN
88 			BEGIN
89 				GMF_MSG_PKG.get_msg_from_code(message_id,
90 						pi_message_code,
91 						message_text,
92 						'ORAF',
93 						message_args,
94 						error_status);
95 
96 				Gmf_Session_Vars.ERROR_TEXT := substrb(message_text,1,512);
97 			EXCEPTION
98 				When others THEN
99 					Gmf_Session_Vars.ERROR_TEXT:=pi_message_code;
100 			END;
101 		END;
102 	END IF; /*GL_LOG_TRIGGER_ERROR*/
103 EXCEPTION
104 	WHEN others THEN
105 		null;
106 END; /*Write_Exception*/
107 
108 /* This procedure will delete exceptions from the sy_excp_tbl. */
109 
110 PROCEDURE Delete_Exception(
111 		pi_table_code 	in	varchar2,
112 		pi_key_value 	in	varchar2) IS
113 BEGIN
114 	DELETE  FROM sy_excp_tbl
115 	WHERE key_value = pi_key_value
116 	AND table_code = pi_table_code;
117 
118 EXCEPTION
119 	WHEN others THEN
120 		null;
121 END; /*  Delete_Exception */
122 
123 
124 
125 /* This procedure will check if the field_value is NULL.
126    If it is NULL, it logs an error into the sy_excp_tbl. */
127 
128 PROCEDURE Check_Required(
129 		pi_table_name	in 	varchar2,
130 		pi_key_name	in	varchar2,
131 		pi_key_value	in	varchar2,
132 		pi_field_name	in	varchar2,
133 		pi_field_value	in	varchar2) IS
134 BEGIN
135 	IF pi_field_value is NULL THEN
136 		write_exception(pi_table_name, pi_key_name,
137 				'GL_MISSING_VAL', ' ',
138 				pi_field_name, pi_field_value,
139 				' ', ' ', pi_key_value);
140 		RAISE Gmf_Session_Vars.ex_error_found;
141 	END IF;
142 END; /* Check_Required */
143 
144 
145 /* This procedure will check if the field_value is
146    in Upper case. If not, it logs an error into the
147    sy_excp_tbl. */
148 
149 PROCEDURE Check_Case(
150 		pi_table_name	in 	varchar2,
151 		pi_key_name	in	varchar2,
152 		pi_key_value	in	varchar2,
153 		pi_field_name	in	varchar2,
154 		pi_field_value	in	varchar2) IS
155 BEGIN
156 	IF pi_field_value <> UPPER(pi_field_value) THEN
157 		write_exception(pi_table_name, pi_key_name,
158 				'GL_INVALID_CASE', ' ',
159 				pi_field_value, pi_field_name,
160 				' ', ' ',pi_key_value);
161 		RAISE Gmf_Session_Vars.ex_error_found;
162 	END IF;
163 END; /* Check_Case */
164 
165 
166 /* This procedure will check if the length the field_value
167    is greater than field_length. If yes, it logs an error
168    into the sy_excp_tbl. */
169 
170 PROCEDURE Check_Length(
171 		pi_table_name	in 	varchar2,
172 		pi_key_name	in	varchar2,
173 		pi_key_value	in	varchar2,
174 		pi_field_name	in	varchar2,
175 		pi_field_value	in	varchar2,
176 		pi_field_length	in	number) IS
177 BEGIN
178 	IF (LENGTHB(pi_field_value) > pi_field_length) THEN
179 		write_exception(pi_table_name, pi_key_name,
180 				'GL_INVALID_LEN', ' ',
181 				pi_field_value, pi_field_name,
182 				pi_field_length, ' ', pi_key_value);
183 		RAISE Gmf_Session_Vars.ex_error_found;
184 	END IF;
185 END; /* Check_Length */
186 
187 
188 /* This function validates that the Currency Codes exists
189    in gl_curr_mst table */
190 
191 PROCEDURE Validate_Currency(
192 		pi_table_name	in 	varchar2,
193 		pi_key_name	in	varchar2,
194 		pi_key_value	in	varchar2,
195 		pi_field_name	in	varchar2,
196 		pi_field_value	in	varchar2) IS
197 CURSOR C_Val_Currency (v_apps_currency_code in varchar2) IS
198 	SELECT 1
199 	FROM gl_curr_mst
200 	WHERE currency_code = v_apps_currency_code;
201 BEGIN
202 	IF pi_field_value IS NOT NULL THEN
203 		IF C_Val_Currency%ISOPEN THEN
204 			CLOSE C_Val_Currency;
205 		END IF;
206 
207 		OPEN C_Val_Currency (pi_field_value);
208 		FETCH C_Val_Currency INTO DummyN;
209 		IF C_Val_Currency%NOTFOUND THEN
210 			write_exception(pi_table_name, pi_key_name,
211 					'GL_INVALID_VAL', ' ',
212 					pi_field_value, pi_field_name,
213 					' ', ' ',pi_key_value);
214 			IF C_Val_Currency%ISOPEN THEN
215 				CLOSE C_Val_Currency;
216 			END IF;
217 			RAISE Gmf_Session_Vars.ex_error_found;
218 		END IF;
219 		IF C_Val_Currency%ISOPEN THEN
220 			CLOSE C_Val_Currency;
221 		END IF;
222 	END IF;
223 END; /* Validate_Currency */
224 
225 
226 /* This procedure will check if the field_value contains
227    multiple delimiters.
228    If yes, it logs an error into the sy_excp_tbl. */
229 
230 PROCEDURE Check_Multiple_Delim(
231 		pi_table_name	in 	varchar2,
232 		pi_key_name	in	varchar2,
233 		pi_key_value	in	varchar2,
234 		pi_field_name	in	varchar2,
235 		pi_field_value	in	varchar2,
236 		pi_delim	in	varchar2) IS
237 BEGIN
238 	IF instr(pi_field_value,pi_delim,instr(pi_field_value, pi_delim)+1) > 0 THEN
239 		write_exception(pi_table_name, pi_key_name,
240 				'GL_INVALID_DELIM', ' ',
241 				pi_field_value, pi_field_name,
242 				' ', ' ',pi_key_value);
243 		RAISE Gmf_Session_Vars.ex_error_found;
244 	END IF;
245 END; /* Check_Multiple_delimiters */
246 
247 /* This function validates that the Rate Type Codes
248    exists in gl_rate_typ table */
249 
250 PROCEDURE Validate_Rate_Type(
251 		pi_table_name	in 	varchar2,
252 		pi_key_name	in	varchar2,
253 		pi_key_value	in	varchar2,
254 		pi_field_name	in	varchar2,
255 		pi_field_value	in	varchar2) IS
256 CURSOR C_Val_Rate_Type (v_apps_rate_type_code in varchar2) IS
257 	SELECT 1
258 	FROM gl_rate_typ
259 	WHERE rate_type_code = v_apps_rate_type_code;
260 BEGIN
261 	IF pi_field_value IS NOT NULL THEN
262 		IF C_Val_Rate_Type%ISOPEN THEN
263 			CLOSE C_Val_Rate_Type;
264 		END IF;
265 		OPEN C_Val_Rate_Type (pi_field_value);
266 		FETCH C_Val_Rate_Type INTO DummyN;
267 		IF C_Val_Rate_Type%NOTFOUND THEN
268 			write_exception(pi_table_name, pi_key_name,
269 					'GL_INVALID_VAL', ' ',
270 					pi_field_value, pi_field_name,
271 					' ', ' ',pi_key_value);
272 			RAISE Gmf_Session_Vars.ex_error_found;
273 			IF C_Val_Rate_Type%ISOPEN THEN
274 				CLOSE C_Val_Rate_Type;
275 			END IF;
276 		END IF;
277 		IF C_Val_Rate_Type%ISOPEN THEN
278 			CLOSE C_Val_Rate_Type;
279 		END IF;
280 	END IF;
281 END; /* Validate_Rate_Type */
282 
283 /* This function validates that the Terms Codes
284    exists in op_term_mst table */
285 
286 PROCEDURE Validate_Terms_Code(
287 		pi_table_name	in 	varchar2,
288 		pi_key_name	in	varchar2,
289 		pi_key_value	in	varchar2,
290 		pi_field_name	in	varchar2,
291 		pi_field_value	in out	NOCOPY varchar2) IS
292 CURSOR C_Val_Terms_Code (v_of_terms_code in varchar2,
293 			 v_terms_code out varchar2) IS
294 	SELECT terms_code
295 	FROM op_term_mst
296 	WHERE of_terms_code = v_of_terms_code;
297 v_temp_terms_code	op_term_mst.terms_code%TYPE;
298 BEGIN
299 	IF pi_field_value IS NOT NULL THEN
300 		IF C_Val_Terms_Code%ISOPEN THEN
301 			CLOSE C_Val_Terms_Code;
302 		END IF;
303 		OPEN C_Val_Terms_Code (pi_field_value, v_temp_terms_code);
304 		FETCH C_Val_Terms_Code INTO v_temp_terms_code;
305 		IF C_Val_Terms_Code%NOTFOUND THEN
306 			write_exception(pi_table_name, pi_key_name,
307 					'GL_INVALID_VAL', ' ',
308 					pi_field_value, pi_field_name,
309 					' ', ' ',pi_key_value);
310 			IF C_Val_Terms_Code%ISOPEN THEN
311 				CLOSE C_Val_Terms_Code;
312 			END IF;
313 			RAISE Gmf_Session_Vars.ex_error_found;
314 		END IF;
315 		pi_field_value := v_temp_terms_code;
316 		IF C_Val_Terms_Code%ISOPEN THEN
317 			CLOSE C_Val_Terms_Code;
318 		END IF;
319 	END IF;
320 END; /* Validate_Terms_Code */
321 
322 /* This function validates that the shipper code
323    exists in op_ship_mst table */
324 
325 PROCEDURE Validate_Shipper_Code(
326 		pi_table_name	in 	varchar2,
327 		pi_key_name	in	varchar2,
328 		pi_key_value	in	varchar2,
329 		pi_field_name	in	varchar2,
330 		pi_field_value	in out	NOCOPY varchar2) IS
331 CURSOR C_Val_Shipper_Code (v_of_shipper_code in varchar2,
332 			 v_shipper_code out varchar2) IS
333 	SELECT shipper_code
334 	FROM op_ship_mst
335 	WHERE of_shipper_code = v_of_shipper_code;
336 v_temp_shipper_code	op_ship_mst.shipper_code%TYPE;
337 BEGIN
338 	IF pi_field_value IS NOT NULL THEN
339 		IF C_Val_Shipper_Code%ISOPEN THEN
340 			CLOSE C_Val_Shipper_Code;
341 		END IF;
342 		OPEN C_Val_Shipper_Code (pi_field_value, v_temp_shipper_code);
343 		FETCH C_Val_Shipper_Code INTO v_temp_shipper_code;
344 		IF C_Val_Shipper_Code%NOTFOUND THEN
345 			write_exception(pi_table_name, pi_key_name,
346 					'GL_INVALID_VAL', ' ',
347 					pi_field_value, pi_field_name,
348 					' ', ' ',pi_key_value);
349 			IF C_Val_Shipper_Code%ISOPEN THEN
350 				CLOSE C_Val_Shipper_Code;
351 			END IF;
352 			RAISE Gmf_Session_Vars.ex_error_found;
353 		END IF;
354 		pi_field_value := v_temp_shipper_code;
355 		IF C_Val_Shipper_Code%ISOPEN THEN
356 			CLOSE C_Val_Shipper_Code;
357 		END IF;
358 	END IF;
359 END; /* Validate_Shipper_Code */
360 
361 /* This function validates that the FOB Codes
362    exists in op_fobc_mst table */
363 
364 PROCEDURE Validate_FOB_Code(
365 		pi_table_name	in 	varchar2,
366 		pi_key_name	in	varchar2,
367 		pi_key_value	in	varchar2,
368 		pi_field_name	in	varchar2,
369 		pi_field_value	in out	NOCOPY varchar2) IS
370 CURSOR C_Val_FOB_Code (v_of_fob_code in varchar2,
371 			 v_fob_code out varchar2) IS
372 	SELECT fob_code
373 	FROM op_fobc_mst
374 	WHERE of_fob_code = v_of_fob_code;
375 v_temp_fob_code	op_fobc_mst.fob_code%TYPE;
376 BEGIN
377 	IF pi_field_value IS NOT NULL THEN
378 		IF C_Val_FOB_Code%ISOPEN THEN
379 			CLOSE C_Val_FOB_Code;
380 		END IF;
381 		OPEN C_Val_FOB_Code (pi_field_value, v_temp_fob_code);
382 		FETCH C_Val_FOB_Code INTO v_temp_fob_code;
383 		IF C_Val_FOB_Code%NOTFOUND THEN
384 			write_exception(pi_table_name, pi_key_name,
385 					'GL_INVALID_VAL', ' ',
386 					pi_field_value, pi_field_name,
387 					' ', ' ',pi_key_value);
388 			IF C_Val_FOB_Code%ISOPEN THEN
389 				CLOSE C_Val_FOB_Code;
390 			END IF;
391 			RAISE Gmf_Session_Vars.ex_error_found;
392 		END IF;
393 		pi_field_value := v_temp_fob_code;
394 		IF C_Val_FOB_Code%ISOPEN THEN
395 			CLOSE C_Val_FOB_Code;
396 		END IF;
397 	END IF;
398 END; /* Validate_FOB_Code */
399 
400 /* This function validates that the Frtbill Method
401    exists in op_frgt_mth table */
402 
403 PROCEDURE Validate_Frtbill_Mthd(
404 		pi_table_name	in 	varchar2,
405 		pi_key_name	in	varchar2,
406 		pi_key_value	in	varchar2,
407 		pi_field_name	in	varchar2,
408 		pi_field_value	in out	NOCOPY varchar2) IS
409 CURSOR C_Val_Frtbill_Mthd (v_of_Frtbill_Mthd in varchar2,
410 			 v_Frtbill_Mthd out varchar2) IS
411 	SELECT Frtbill_Mthd
412 	FROM op_frgt_mth
413 	WHERE of_Frtbill_Mthd = v_of_Frtbill_Mthd;
414 v_temp_Frtbill_Mthd	op_frgt_mth.Frtbill_Mthd%TYPE;
415 BEGIN
416 	IF pi_field_value IS NOT NULL THEN
417 		IF C_Val_Frtbill_Mthd%ISOPEN THEN
418 			CLOSE C_Val_Frtbill_Mthd;
419 		END IF;
420 		OPEN C_Val_Frtbill_Mthd (pi_field_value, v_temp_Frtbill_Mthd);
421 		FETCH C_Val_Frtbill_Mthd INTO v_temp_Frtbill_Mthd;
422 		IF C_Val_Frtbill_Mthd%NOTFOUND THEN
423 			write_exception(pi_table_name, pi_key_name,
424 					'GL_INVALID_VAL', ' ',
425 					pi_field_value, pi_field_name,
426 					' ', ' ',pi_key_value);
427 			IF C_Val_Frtbill_Mthd%ISOPEN THEN
428 				CLOSE C_Val_Frtbill_Mthd;
429 			END IF;
430 			RAISE Gmf_Session_Vars.ex_error_found;
431 		END IF;
432 		pi_field_value := v_temp_Frtbill_Mthd;
433 		IF C_Val_Frtbill_Mthd%ISOPEN THEN
434 			CLOSE C_Val_Frtbill_Mthd;
435 		END IF;
436 	END IF;
437 END; /* Validate_Frtbill_Mthd */
438 
439 /* This function validates that the Rate Type Codes
440    exists in gl_rate_typ table */
441 
442 PROCEDURE Validate_Vendgl_Class(
443 		pi_table_name	in 	varchar2,
444 		pi_key_name	in	varchar2,
445 		pi_key_value	in	varchar2,
446 		pi_field_name	in	varchar2,
447 		pi_field_value	in	varchar2) IS
448 CURSOR C_Val_Vendgl_Class (v_apps_Vendgl_Class in varchar2) IS
449 	SELECT 1
450 	FROM po_vgld_cls
451 	WHERE Vendgl_Class = v_apps_Vendgl_Class;
452 BEGIN
453 	IF pi_field_value IS NOT NULL THEN
454 		IF C_Val_Vendgl_Class%ISOPEN THEN
455 			CLOSE C_Val_Vendgl_Class;
456 		END IF;
457 		OPEN C_Val_Vendgl_Class (pi_field_value);
458 		FETCH C_Val_Vendgl_Class INTO DummyN;
459 		IF C_Val_Vendgl_Class%NOTFOUND THEN
460 			write_exception(pi_table_name, pi_key_name,
461 					'GL_INVALID_VAL', ' ',
462 					pi_field_value, pi_field_name,
463 					' ', ' ',pi_key_value);
464 			IF C_Val_Vendgl_Class%ISOPEN THEN
465 				CLOSE C_Val_Vendgl_Class;
466 			END IF;
467 			RAISE Gmf_Session_Vars.ex_error_found;
468 		END IF;
469 		IF C_Val_Vendgl_Class%ISOPEN THEN
470 			CLOSE C_Val_Vendgl_Class;
471 		END IF;
472 	END IF;
473 END; /* Validate_Vendgl_Class */
474 
475 /* This function validates that the Slsrep Code
476    exists in op_slsr_mst table */
477 
478 PROCEDURE Validate_Slsrep_Code(
479 		pi_table_name	in 	varchar2,
480 		pi_key_name	in	varchar2,
481 		pi_key_value	in	varchar2,
482 		pi_field_name	in	varchar2,
483 		pi_field_value	in	varchar2) IS
484 CURSOR C_Val_Slsrep_Code (v_apps_Slsrep_Code in varchar2) IS
485 	SELECT 1
486 	FROM op_slsr_mst
487 	WHERE Slsrep_Code = v_apps_Slsrep_Code;
488 BEGIN
489 	IF pi_field_value IS NOT NULL THEN
490 		IF C_Val_Slsrep_Code%ISOPEN THEN
491 			CLOSE C_Val_Slsrep_Code;
492 		END IF;
493 		OPEN C_Val_Slsrep_Code (pi_field_value);
494 		FETCH C_Val_Slsrep_Code INTO DummyN;
495 		IF C_Val_Slsrep_Code%NOTFOUND THEN
496 			write_exception(pi_table_name, pi_key_name,
497 					'GL_INVALID_VAL', ' ',
498 					pi_field_value, pi_field_name,
499 					' ', ' ',pi_key_value);
500 			IF C_Val_Slsrep_Code%ISOPEN THEN
501 				CLOSE C_Val_Slsrep_Code;
502 			END IF;
503 			RAISE Gmf_Session_Vars.ex_error_found;
504 		END IF;
505 		IF C_Val_Slsrep_Code%ISOPEN THEN
506 			CLOSE C_Val_Slsrep_Code;
507 		END IF;
508 	END IF;
509 END; /* Validate_Slsrep_Code */
510 
511 /* This function validates that the cust_class
512    exists in op_cust_cls table */
513 
514 PROCEDURE Validate_Cust_Class(
515 		pi_table_name	in 	varchar2,
516 		pi_key_name	in	varchar2,
517 		pi_key_value	in	varchar2,
518 		pi_field_name	in	varchar2,
519 		pi_field_value	in	varchar2) IS
520 CURSOR C_Val_Cust_Class (v_apps_Cust_Class in varchar2) IS
521 	SELECT 1
522 	FROM op_cust_cls
523 	WHERE Cust_Class = v_apps_Cust_Class;
524 BEGIN
525 	IF pi_field_value IS NOT NULL THEN
526 		IF C_Val_Cust_Class%ISOPEN THEN
527 			CLOSE C_Val_Cust_Class;
528 		END IF;
529 		OPEN C_Val_Cust_Class (pi_field_value);
530 		FETCH C_Val_Cust_Class INTO DummyN;
531 		IF C_Val_Cust_Class%NOTFOUND THEN
532 			write_exception(pi_table_name, pi_key_name,
533 					'GL_INVALID_VAL', ' ',
534 					pi_field_value, pi_field_name,
535 					' ', ' ',pi_key_value);
536 			IF C_Val_Cust_Class%ISOPEN THEN
537 				CLOSE C_Val_Cust_Class;
538 			END IF;
539 			RAISE Gmf_Session_Vars.ex_error_found;
540 		END IF;
541 		IF C_Val_Cust_Class%ISOPEN THEN
542 			CLOSE C_Val_Cust_Class;
543 		END IF;
544 	END IF;
545 END; /* Validate_Cust_Class */
546 
547 /* This function validates that the Custgl Class
548    exists in op_cgld_cls table */
549 
550 PROCEDURE Validate_Custgl_Class(
551 		pi_table_name	in 	varchar2,
552 		pi_key_name	in	varchar2,
553 		pi_key_value	in	varchar2,
554 		pi_field_name	in	varchar2,
555 		pi_field_value	in	varchar2) IS
556 CURSOR C_Val_Custgl_Class (v_apps_Custgl_Class in varchar2) IS
557 	SELECT 1
558 	FROM op_cgld_cls
559 	WHERE Custgl_Class = v_apps_Custgl_Class;
560 BEGIN
561 	IF pi_field_value IS NOT NULL THEN
562 		IF C_Val_Custgl_Class%ISOPEN THEN
563 			CLOSE C_Val_Custgl_Class;
564 		END IF;
565 		OPEN C_Val_Custgl_Class (pi_field_value);
566 		FETCH C_Val_Custgl_Class INTO DummyN;
567 		IF C_Val_Custgl_Class%NOTFOUND THEN
568 			write_exception(pi_table_name, pi_key_name,
569 					'GL_INVALID_VAL', ' ',
570 					pi_field_value, pi_field_name,
571 					' ', ' ',pi_key_value);
572 			IF C_Val_Custgl_Class%ISOPEN THEN
573 				CLOSE C_Val_Custgl_Class;
574 			END IF;
575 			RAISE Gmf_Session_Vars.ex_error_found;
576 		END IF;
577 		IF C_Val_Custgl_Class%ISOPEN THEN
578 			CLOSE C_Val_Custgl_Class;
579 		END IF;
580 	END IF;
581 END; /* Validate_Custgl_Class */
582 
583 /* This function validates that the custprice_class
584    exists in op_cprc_cls table */
585 
586 PROCEDURE Validate_Custprice_Class(
587 		pi_table_name	in 	varchar2,
588 		pi_key_name	in	varchar2,
589 		pi_key_value	in	varchar2,
590 		pi_field_name	in	varchar2,
591 		pi_field_value	in	varchar2) IS
592 CURSOR C_Val_Custprice_Class (v_apps_Custprice_Class in varchar2) IS
593 	SELECT 1
594 	FROM op_cprc_cls
595 	WHERE Custprice_Class = v_apps_Custprice_Class;
596 BEGIN
597 	IF pi_field_value IS NOT NULL THEN
598 		IF C_Val_Custprice_Class%ISOPEN THEN
599 			CLOSE C_Val_Custprice_Class;
600 		END IF;
601 		OPEN C_Val_Custprice_Class (pi_field_value);
602 		FETCH C_Val_Custprice_Class INTO DummyN;
603 		IF C_Val_Custprice_Class%NOTFOUND THEN
604 			write_exception(pi_table_name, pi_key_name,
605 					'GL_INVALID_VAL', ' ',
606 					pi_field_value, pi_field_name,
607 					' ', ' ',pi_key_value);
608 			IF C_Val_Custprice_Class%ISOPEN THEN
609 				CLOSE C_Val_Custprice_Class;
610 			END IF;
611 			RAISE Gmf_Session_Vars.ex_error_found;
612 		END IF;
613 		IF C_Val_Custprice_Class%ISOPEN THEN
614 			CLOSE C_Val_Custprice_Class;
615 		END IF;
616 	END IF;
617 END; /* Validate_Custprice_Class */
618 
619 /* This function validates that the taxloc_code
620    exists in tx_tloc_cds table */
621 
622 PROCEDURE Validate_Taxloc_Code(
623 		pi_table_name	in 	varchar2,
624 		pi_key_name	in	varchar2,
625 		pi_key_value	in	varchar2,
626 		pi_field_name	in	varchar2,
627 		pi_field_value	in	varchar2) IS
628 CURSOR C_Val_Taxloc_Code (v_apps_Taxloc_Code in varchar2) IS
629 	SELECT 1
630 	FROM tx_tloc_cds
631 	WHERE Taxloc_Code = v_apps_Taxloc_Code;
632 BEGIN
633 	IF pi_field_value IS NOT NULL THEN
634 		IF C_Val_Taxloc_Code%ISOPEN THEN
635 			CLOSE C_Val_Taxloc_Code;
636 		END IF;
637 		OPEN C_Val_Taxloc_Code (pi_field_value);
638 		FETCH C_Val_Taxloc_Code INTO DummyN;
639 		IF C_Val_Taxloc_Code%NOTFOUND THEN
640 			write_exception(pi_table_name, pi_key_name,
641 					'GL_INVALID_VAL', ' ',
642 					pi_field_value, pi_field_name,
643 					' ', ' ',pi_key_value);
644 			IF C_Val_Taxloc_Code%ISOPEN THEN
645 				CLOSE C_Val_Taxloc_Code;
646 			END IF;
647 			RAISE Gmf_Session_Vars.ex_error_found;
648 		END IF;
649 		IF C_Val_Taxloc_Code%ISOPEN THEN
650 			CLOSE C_Val_Taxloc_Code;
651 		END IF;
652 	END IF;
653 END; /* Validate_Taxloc_Code */
654 
655 /* This function validates that the taxcalc_code
656    exists in tx_calc_mst table */
657 
658 PROCEDURE Validate_Taxcalc_Code(
659 		pi_table_name	in 	varchar2,
660 		pi_key_name	in	varchar2,
661 		pi_key_value	in	varchar2,
662 		pi_field_name	in	varchar2,
663 		pi_field_value	in	varchar2) IS
664 CURSOR C_Val_Taxcalc_Code (v_apps_Taxcalc_Code in varchar2) IS
665 	SELECT 1
666 	FROM tx_calc_mst
667 	WHERE Taxcalc_Code = v_apps_Taxcalc_Code;
668 BEGIN
669 	IF pi_field_value IS NOT NULL THEN
670 		IF C_Val_Taxcalc_Code%ISOPEN THEN
671 			CLOSE C_Val_Taxcalc_Code;
672 		END IF;
673 		OPEN C_Val_Taxcalc_Code (pi_field_value);
674 		FETCH C_Val_Taxcalc_Code INTO DummyN;
675 		IF C_Val_Taxcalc_Code%NOTFOUND THEN
676 			write_exception(pi_table_name, pi_key_name,
677 					'GL_INVALID_VAL', ' ',
678 					pi_field_value, pi_field_name,
679 					' ', ' ',pi_key_value);
680 			IF C_Val_Taxcalc_Code%ISOPEN THEN
681 				CLOSE C_Val_Taxcalc_Code;
682 			END IF;
683 			RAISE Gmf_Session_Vars.ex_error_found;
684 		END IF;
685 		IF C_Val_Taxcalc_Code%ISOPEN THEN
686 			CLOSE C_Val_Taxcalc_Code;
687 		END IF;
688 	END IF;
689 END; /* Validate_Taxcalc_Code */
690 
691 /* This function validates that the taxcalc_code
692    exists in ic_whse_mst table */
693 
694 PROCEDURE Validate_Whse_Code(
695 		pi_table_name	in 	varchar2,
696 		pi_key_name	in	varchar2,
697 		pi_key_value	in	varchar2,
698 		pi_field_name	in	varchar2,
699 		pi_field_value	in	varchar2) IS
700 CURSOR C_Val_Whse_Code (v_apps_Whse_Code in varchar2) IS
701 	SELECT 1
702 	FROM ic_whse_mst
703 	WHERE Whse_Code = v_apps_Whse_Code;
704 BEGIN
705 	IF pi_field_value IS NOT NULL THEN
706 		IF C_Val_Whse_Code%ISOPEN THEN
707 			CLOSE C_Val_Whse_Code;
708 		END IF;
709 		OPEN C_Val_Whse_Code (pi_field_value);
710 		FETCH C_Val_Whse_Code INTO DummyN;
711 		IF C_Val_Whse_Code%NOTFOUND THEN
712 			write_exception(pi_table_name, pi_key_name,
713 					'GL_INVALID_VAL', ' ',
714 					pi_field_value, pi_field_name,
715 					' ', ' ',pi_key_value);
716 			IF C_Val_Whse_Code%ISOPEN THEN
717 				CLOSE C_Val_Whse_Code;
718 			END IF;
719 			RAISE Gmf_Session_Vars.ex_error_found;
720 		END IF;
721 		IF C_Val_Whse_Code%ISOPEN THEN
722 			CLOSE C_Val_Whse_Code;
723 		END IF;
724 	END IF;
725 END; /* Validate_Whse_Code */
726 
727 PROCEDURE Save_Addr(
728 		pi_addr_id	in out	NOCOPY number,
729 		pi_addr1	in	varchar2,
730 		pi_addr2	in	varchar2,
731 		pi_addr3	in	varchar2,
732 		pi_addr4	in	varchar2,
733 		pi_ora_addr4	in	varchar2,
734 		pi_province	in	varchar2,
735 		pi_county	in	varchar2,
736 		pi_state_code	in	varchar2,
737 		pi_country_code	in	varchar2,
738 		pi_postal_code	in	varchar2,
739 		pi_pseudo_key	in	varchar2,
740 		pi_date_modified	in	date,
741 		pi_modified_by	in	varchar2,
742 		pi_date_added	in	varchar2,
743 		pi_added_by	in	varchar2) IS
744 BEGIN
745 	IF pi_addr_id <> 0 and pi_addr_id is not null THEN
746 		UPDATE sy_addr_mst
747 		SET
748 			addr1 = nvl(pi_addr1,' '),
749 			addr2 = nvl(pi_addr2,' '),
750 			addr3 = nvl(pi_addr3,' '),
751 			addr4 = nvl(pi_addr4,' '),
752 			ora_addr4     = nvl(pi_ora_addr4,' '),
753 			province = nvl(pi_province,' '),
754 			county   = nvl(pi_county,' '),
755 			state_code = nvl(pi_state_code,' '),
756 			country_code = nvl(pi_country_code,' '),
757 			postal_code = nvl(pi_postal_code,' '),
758 			pseudo_key = pi_pseudo_key,
759 			last_update_date = nvl(pi_date_modified, to_date(2440588,'J')),
760 			last_updated_by = nvl(pi_modified_by,0),
761 			creation_date = nvl(pi_date_added, to_date(2440588,'J')),
762 			created_by = nvl(pi_added_by,0)
763 		WHERE
764 			addr_id = pi_addr_id;
765 	END IF;
766 
767 	IF SQL%NOTFOUND OR pi_addr_id = 0 or pi_addr_id is NULL THEN
768 		SELECT GEM5_address_id_s.nextval INTO pi_addr_id FROM dual;
769 		INSERT into sy_addr_mst(
770 			addr_id,
771 			addr1,
772 			addr2,
773 			addr3,
774 			addr4,
775 			ora_addr4,
776 			province,
777 			county,
778 			state_code,
779 			country_code,
780 			postal_code,
781 			pseudo_key,
782 			last_update_date,
783 			last_updated_by,
784 			creation_date,
785 			created_by,
786 			comments,
787 			delete_mark,
788 			trans_cnt)
789 		values(
790 			pi_addr_id,
791 			nvl(pi_addr1, ' '),
792 			nvl(pi_addr2, ' '),
793 			nvl(pi_addr3, ' '),
794 			nvl(pi_addr4, ' '),
795 			nvl(pi_ora_addr4, ' '),
796 			nvl(pi_province, ' '),
797 			nvl(pi_county, ' '),
798 			nvl(pi_state_code, ' '),
799 			nvl(pi_country_code, ' '),
800 			nvl(pi_postal_code, ' '),
801 			pi_pseudo_key,
802 			nvl(pi_date_modified, to_date(2440588,'J')),
803 			nvl(pi_modified_by,0),
804 			nvl(pi_date_added, to_date(2440588,'J')),
805 			nvl(pi_added_by,0),
806 			' ',
807 			0,
808 			0);
809 	END IF;
810 	/* Insert the state_code if it is not already there in sy_geog_mst */
811 	IF pi_state_code is not NULL THEN
812 		INSERT into SY_GEOG_MST(
813 			geog_type,
814 			geog_code,
815 			geog_desc,
816 			delete_mark,
817 			trans_cnt,
818 			creation_date,
819 			created_by,
820 			last_update_date,
821 			last_updated_by)
822 		SELECT
823 			2,
824 			pi_state_code,
825 			pi_state_code,
826 			0,
827 			0,
828 			nvl(pi_date_added, to_date(2440588,'J')),
829 			nvl(pi_added_by,0),
830 			nvl(pi_date_modified, to_date(2440588,'J')),
831 			nvl(pi_modified_by,0)
832 		FROM	SYS.DUAL
833 		WHERE   not exists(
834 			SELECT 1 FROM SY_GEOG_MST
835 			WHERE geog_type = 2 and geog_code = pi_state_code);
836 	END IF;
837 	/* Insert the Country Code if it is not already there in sy_geog_mst */
838 	IF pi_country_code is not NULL THEN
839 		INSERT into SY_GEOG_MST(
840 			geog_type,
841 			geog_code,
842 			geog_desc,
843 			delete_mark,
844 			trans_cnt,
845 			creation_date,
846 			created_by,
847 			last_update_date,
848 			last_updated_by)
849 		SELECT
850 			1,
851 			pi_country_code,
852 			territory_short_name,
853 			0,
854 			0,
855 			nvl(pi_date_added, to_date(2440588,'J')),
856 			nvl(pi_added_by,0),
857 			nvl(pi_date_modified, to_date(2440588,'J')),
858 			nvl(pi_modified_by,0)
859 		FROM	fnd_territories_vl
860 		WHERE   territory_code = pi_country_code and
861 			not exists(
862 			SELECT 1 FROM SY_GEOG_MST
863 			WHERE geog_type = 1 and geog_code = pi_country_code);
864 	END IF;
865 END; /* Save_Adddr */
866 
867 
868 FUNCTION Validate_Terms_Code(pi_field_value in varchar2) return boolean IS
869 CURSOR C_Val_Terms_Code (v_of_terms_code in varchar2) IS
870 	SELECT 1
871 	FROM op_term_mst
872 	WHERE of_terms_code = v_of_terms_code;
873 BEGIN
874 	IF pi_field_value IS NOT NULL THEN
875 		IF C_Val_Terms_Code%ISOPEN THEN
876 			CLOSE C_Val_Terms_Code;
877 		END IF;
878 		OPEN C_Val_Terms_Code (pi_field_value);
879 		FETCH C_Val_Terms_Code INTO DummyN;
880 		IF C_Val_Terms_Code%NOTFOUND THEN
881 			IF C_Val_Terms_Code%ISOPEN THEN
882 				CLOSE C_Val_Terms_Code;
883 			END IF;
884 			return FALSE;
885 		END IF;
886 		IF C_Val_Terms_Code%ISOPEN THEN
887 			CLOSE C_Val_Terms_Code;
888 		END IF;
889 		return TRUE;
890 	END IF;
891 	return TRUE;
892 END; /* Validate_Terms_Code */
893 
894 
895 FUNCTION Validate_Shipper_Code(pi_field_value varchar2) return boolean IS
896 CURSOR C_Val_Shipper_Code (v_of_shipper_code in varchar2) IS
897 	SELECT 1
898 	FROM op_ship_mst
899 	WHERE of_shipper_code = v_of_shipper_code;
900 BEGIN
901 	IF pi_field_value IS NOT NULL THEN
902 		IF C_Val_Shipper_Code%ISOPEN THEN
903 			CLOSE C_Val_Shipper_Code;
904 		END IF;
905 		OPEN C_Val_Shipper_Code (pi_field_value);
906 		FETCH C_Val_Shipper_Code INTO DummyN;
907 		IF C_Val_Shipper_Code%NOTFOUND THEN
908 			IF C_Val_Shipper_Code%ISOPEN THEN
909 				CLOSE C_Val_Shipper_Code;
910 			END IF;
911 			return FALSE;
912 		END IF;
913 		IF C_Val_Shipper_Code%ISOPEN THEN
914 			CLOSE C_Val_Shipper_Code;
915 		END IF;
916 		return TRUE;
917 	END IF;
918 	return TRUE;
919 END; /* Validate_Shipper_Code */
920 
921 
922 FUNCTION Validate_FOB_Code(pi_field_value varchar2) return boolean IS
923 CURSOR C_Val_FOB_Code (v_of_fob_code in varchar2) IS
924 	SELECT 1
925 	FROM op_fobc_mst
926 	WHERE of_fob_code = v_of_fob_code;
927 BEGIN
928 	IF pi_field_value IS NOT NULL THEN
929 		IF C_Val_FOB_Code%ISOPEN THEN
930 			CLOSE C_Val_FOB_Code;
931 		END IF;
932 		OPEN C_Val_FOB_Code (pi_field_value);
933 		FETCH C_Val_FOB_Code INTO DummyN;
934 		IF C_Val_FOB_Code%NOTFOUND THEN
935 			IF C_Val_FOB_Code%ISOPEN THEN
936 				CLOSE C_Val_FOB_Code;
937 			END IF;
938 			return FALSE;
939 		END IF;
940 		IF C_Val_FOB_Code%ISOPEN THEN
941 			CLOSE C_Val_FOB_Code;
942 		END IF;
943 		return TRUE;
944 	END IF;
945 	return TRUE;
946 END; /* Validate_FOB_Code */
947 
948 
949 FUNCTION Validate_Slsrep_Code(pi_field_value varchar2) return boolean IS
950 CURSOR C_Val_Slsrep_Code (v_apps_Slsrep_Code in varchar2) IS
951 	SELECT 1
952 	FROM op_slsr_mst
953 	WHERE Slsrep_Code = v_apps_Slsrep_Code;
954 BEGIN
955 	IF pi_field_value IS NOT NULL THEN
956 		IF C_Val_Slsrep_Code%ISOPEN THEN
957 			CLOSE C_Val_Slsrep_Code;
958 		END IF;
959 		OPEN C_Val_Slsrep_Code (pi_field_value);
960 		FETCH C_Val_Slsrep_Code INTO DummyN;
961 		IF C_Val_Slsrep_Code%NOTFOUND THEN
962 			IF C_Val_Slsrep_Code%ISOPEN THEN
963 				CLOSE C_Val_Slsrep_Code;
964 			END IF;
965 			return FALSE;
966 		END IF;
967 		IF C_Val_Slsrep_Code%ISOPEN THEN
968 			CLOSE C_Val_Slsrep_Code;
969 		END IF;
970 		return TRUE;
971 	END IF;
972 	return TRUE;
973 END; /* Validate_Slsrep_Code */
974 
975 
976 END; /* Gmf_Glsynch package body */