DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_EN_VAL_AUS

Source


1 PACKAGE BODY IGS_EN_VAL_AUS AS
2 /* $Header: IGSEN25B.pls 120.0 2005/06/01 21:34:56 appldev noship $ */
3 
4   --
5   -- Validate AUSG records exist for an administrative _UNIT status
6   FUNCTION enrp_val_aus_ausg(
7   p_aus IN VARCHAR2 ,
8   p_message_name OUT NOCOPY VARCHAR2)
9   RETURN BOOLEAN AS
10 
11   BEGIN
12   DECLARE
13   	v_count		NUMBER;
14   	CURSOR c_ausg IS
15   		SELECT	count(*)
16   		FROM	IGS_AD_ADM_UT_STA_GD	ausg
17   		WHERE	ausg.administrative_unit_status = p_aus;
18   BEGIN
19   	--Validate if administrative IGS_PS_UNIT status grade records exist
20   	-- for the administrative IGS_PS_UNIT status.
21   	p_message_name := null;
22   	OPEN c_ausg;
23   	FETCH c_ausg INTO v_count;
24   	CLOSE c_ausg;
25   	IF v_count > 0 THEN
26   		p_message_name := 'IGS_EN_ADMIN_UNITST_GRD_EXIST';
27   		RETURN FALSE;
28   	END IF;
29   	--- Return the default value
30   	RETURN TRUE;
31   END;
32   EXCEPTION
33   	WHEN OTHERS THEN
34  		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
35 		FND_MESSAGE.SET_TOKEN('NAME','IGS_EN_VAL_AUS.enrp_val_aus_ausg');
36 		IGS_GE_MSG_STACK.ADD;
37 		App_Exception.Raise_Exception;
38    END enrp_val_aus_ausg;
39 
40 FUNCTION calp_val_ddcv_clash(
41    ------------------------------------------------------------------
42   --Created by  : ashok.Pelleti Oracle India
43   --Date created: 3-APR-2001
44   --
45   --Purpose:
46   --
47   --
48   --Known limitations/enhancements and/or remarks:
49   --
50   --Change History:
51   --Who         When            What
52   -------------------------------------------------------------------
53   p_non_std_disc_dl_stp_id IN NUMBER,
54   p_offset_cons_type_cd IN VARCHAR2 ,
55   p_constraint_condition IN VARCHAR2 ,
56   p_constraint_resolution IN NUMBER ,
57   p_message_name OUT NOCOPY VARCHAR2 )
58   RETURN BOOLEAN AS
59   	gv_other_detail		VARCHAR2(255);
60   BEGIN	-- calp_val_sdoct_clash
61   	-- Validate that IGS_EN_DISC_DL_CONS records
62   	-- do not result in constraints that cannot be resolved. (eg. MUST BE MONDAY,
63   	-- MUST BE WEDNESDAY).
64   	-- Note that the primary keys prevent cases such as MUST BE MONDAY, MUST NOT
65   	-- BE MONDAY from occurring.
66   	-- Refer to S_DT_OFFSET_CONSTRAINT_TYPE table for list of valid constraint
67   	-- types.
68   DECLARE
69   	v_message_name		VARCHAR2(30);
70   	CURSOR c_ddcv IS
71   		SELECT  ddcv.offset_cons_type_cd,
72   			ddcv.constraint_condition,
73   			ddcv.constraint_resolution
74   		FROM	IGS_EN_DISC_DL_CONS	 ddcv
75   		WHERE	ddcv.offset_cons_type_cd        <>p_offset_cons_type_cd		AND
76 
77   			ddcv.non_std_disc_dl_stp_id = p_non_std_disc_dl_stp_id;
78 
79   	FUNCTION calpl_val_constraint (
80   		p_offset_cons_type_cd
81   			IGS_EN_DISC_DL_CONS.offset_cons_type_cd%TYPE,
82   		p_constraint_condition		IGS_EN_DISC_DL_CONS.constraint_condition%TYPE,
83   		p_db_offset_cons_type_cd
84   	                                        IGS_EN_DISC_DL_CONS.offset_cons_type_cd%TYPE,
85   		p_db_constraint_condition	IGS_EN_DISC_DL_CONS.constraint_condition%TYPE,
86   		p_db_constraint_resolution	IGS_EN_DISC_DL_CONS.constraint_resolution%TYPE)
87   	RETURN VARCHAR2
88   	AS
89   	BEGIN
90   	DECLARE
91   		cst_must	CONSTANT	VARCHAR2(10)	:= 'MUST';
92   		cst_must_not	CONSTANT	VARCHAR2(10)	:= 'MUST NOT';
93   		cst_monday	CONSTANT	VARCHAR2(10)	:= 'MONDAY';
94   		cst_tuesday	CONSTANT	VARCHAR2(10)	:= 'TUESDAY';
95   		cst_wednesday	CONSTANT	VARCHAR2(10)	:= 'WEDNESDAY';
96   		cst_thursday	CONSTANT	VARCHAR2(10)	:= 'THURSDAY';
97   		cst_friday	CONSTANT	VARCHAR2(10)	:= 'FRIDAY';
98   		cst_saturday	CONSTANT	VARCHAR2(10)	:= 'SATURDAY';
99   		cst_sunday	CONSTANT	VARCHAR2(10)	:= 'SUNDAY';
100   		cst_week_day	CONSTANT	VARCHAR2(10)	:= 'WEEK DAY';
101   		cst_holiday	CONSTANT	VARCHAR2(10)	:= 'HOLIDAY';
102   	BEGIN
103   		-- If both constraint types are particular days of the week, then check that
104   		-- the constraint conditions are not both set to 'MUST'.  If so, an
105   		-- unresolvable situation will occur.
106   		IF	p_offset_cons_type_cd	IN (	cst_monday,
107   								cst_tuesday,
108   								cst_wednesday,
109   								cst_thursday,
110   								cst_friday,
111   								cst_saturday,
112   								cst_sunday)	AND
113   			p_constraint_condition		= cst_must		AND
114   			p_db_offset_cons_type_cd	IN (	cst_monday,
115   								cst_tuesday,
116   								cst_wednesday,
117   								cst_thursday,
118   								cst_friday,
119   								cst_saturday,
120   								cst_sunday)	AND
121   			p_db_constraint_condition	= cst_must		THEN
122   			RETURN 'IGS_CA_CONSTRAINTS_CONFLICT';
123   		END IF;
124     		-- If both constraint types are particular days of the week and both
125     		-- constraint conditions are set to 'MUST NOT', check that the resolution
126   		-- values will allow the constraint to be resolved.
127   		-- eg. MUST NOT BE MONDAY (+4) combined with MUST NOT BE FRIDAY (+3),
128   		-- will result in an unsolvable situation.
129     		IF	p_offset_cons_type_cd	IN (	cst_monday,
130     								cst_tuesday,
131     								cst_wednesday,
132     								cst_thursday,
133     								cst_friday,
134     								cst_saturday,
135     								cst_sunday)	AND
136     			p_constraint_condition		= cst_must_not		AND
137     			p_db_offset_cons_type_cd	IN (	cst_monday,
138     								cst_tuesday,
139     								cst_wednesday,
140     								cst_thursday,
141     								cst_friday,
142     								cst_saturday,
143     								cst_sunday)	AND
144     			p_db_constraint_condition	= cst_must_not		THEN
145   			IF (p_constraint_resolution +
146   			   p_db_constraint_resolution) IN (7, -7, 0) THEN
147     				RETURN 'IGS_CA_MUSTNOT_CONST_UNRSLVD';
148   			END IF;
149     		END IF;
150   		-- If current constraint type is a weekend day and the constraint type of
151   		-- the fetched record is 'WEEK DAY', check that the constraint conditions
152   		-- are different. Vice-versa.
153   		IF 	((	p_offset_cons_type_cd	IN (	cst_saturday,
154   									cst_sunday)	AND
155   				p_db_offset_cons_type_cd	= cst_week_day
156   			 )
157   			 OR	-- vice-versa
158   			 (	p_offset_cons_type_cd	= cst_week_day		AND
159   		 		p_db_offset_cons_type_cd	IN (	cst_saturday,
160   									cst_sunday)
161   			 )
162     			)	THEN
163   				IF p_constraint_condition = cst_must AND
164   				   p_db_constraint_condition = cst_must THEN
165   		  			RETURN 'IGS_CA_CONSTRAINTS_CONFLICT';
166   				END IF;
167   		END IF;
168   		-- If current constraint type is a week day and the constraint type of the
169   		-- fetched record is 'WEEK DAY', check that the constraint conditions are
170   		-- not different. Vice-versa
171   		IF	((	p_offset_cons_type_cd	IN (	cst_monday,
172   									cst_tuesday,
173   									cst_wednesday,
174   									cst_thursday,
175   									cst_friday)	AND
176   				p_db_offset_cons_type_cd	= cst_week_day  AND
177   				p_constraint_condition = 'MUST' AND
178   				p_db_constraint_condition = 'MUST NOT'
179   			 )
180   			 OR	-- vice-versa
181   			 (	p_offset_cons_type_cd	= cst_week_day		AND
182   				p_db_offset_cons_type_cd	IN (	cst_monday,
183   									cst_tuesday,
184   									cst_wednesday,
185   									cst_thursday,
186   									cst_friday) AND
187   				p_constraint_condition = 'MUST NOT' AND
188   				p_db_constraint_condition = 'MUST'
189   			 )) THEN
190   			RETURN 'IGS_CA_CONSTRAINTS_CONFLICT';
191   		END IF;
192   		-- If current constraint type is 'HOLIDAY'and the constraint type of the
193   		-- fetched record is 'SATURDAY' or 'SUNDAY', check that the conditions
194   		-- do not clash.
195   		-- Note : This check does not cause the function to return FALSE. Processing
196   		-- continues and if no further checks cause an error, the function will
197   		-- return TRUE and the message number will be recognised as a warning.
198   		IF	((	p_offset_cons_type_cd	= cst_holiday		AND
199   				p_db_offset_cons_type_cd	IN (	cst_saturday,
200   									cst_sunday)
201   			 )
202   			 OR	-- vice-versa
203   			 (	p_offset_cons_type_cd	IN (	cst_saturday,
204   									cst_sunday)	AND
205   				p_db_offset_cons_type_cd	= cst_holiday
206   			 )
207   			)	AND
208   			p_constraint_condition			= cst_must		AND
209   			p_db_constraint_condition		= cst_must		THEN
210   			RETURN 'IGS_CA_INVALID_CONSTRAINT';
211   		END IF;
212   		IF	p_offset_cons_type_cd	= cst_holiday	AND
213   			p_db_offset_cons_type_cd	= cst_week_day	AND
214   			p_constraint_condition		= cst_must	AND
215   			p_db_constraint_condition	= cst_must_not	THEN
216   			RETURN 'IGS_CA_INVALID_CONSTRAINT';
217   		END IF;
218   		-- Vice-versa
219   		IF	p_offset_cons_type_cd	= cst_week_day	AND
220   			p_db_offset_cons_type_cd	= cst_holiday	AND
221   			p_constraint_condition		= cst_must_not	AND
222   			p_db_constraint_condition	= cst_must	THEN
223   			RETURN 'IGS_CA_INVALID_CONSTRAINT';
224   		END IF;
225   		RETURN null;
226   		END;
227    		END calpl_val_constraint;
228   BEGIN
229   	-- Set default value.
230   	p_message_name := NULL;
231   	v_message_name := NULL;
232   	-- 1. Check parameters
233   	IF (		p_non_std_disc_dl_stp_id	IS NULL	OR
234   			p_offset_cons_type_cd	        IS NULL	OR
235   			p_constraint_condition		IS NULL	OR
236   			p_constraint_resolution		IS NULL) THEN
237   		RETURN TRUE;
238   	END IF;
239   	-- 2. Check constraint type / constraint resolution.
240   	-- If constraint resolution is zero, resolution will be impossible.
241   	IF	p_constraint_resolution = 0 THEN
242   			p_message_name := 'IGS_GE_INVALID_VALUE';
243   			RETURN FALSE;
244   	END IF;
245   	-- If constraint type is a particular day, check that the resolution is not
246   	-- plus or minus 7, as this will result in an unresolvable situation.
247   	IF	p_offset_cons_type_cd	IN (	'MONDAY',
248   							 'TUESDAY',
249   							'WEDNESDAY',
250   							'THURSDAY',
251   							'FRIDAY',
252   							'SATURDAY',
253   							'SUNDAY',
254   							'WEEK DAY')	AND
255   		p_constraint_resolution	IN (7, -7, 0)	THEN
256   			p_message_name := 'IGS_CA_CONSTRAINT_NOT_RESOLVE';
257   			RETURN FALSE;
258   	END IF;
259   	-- 3. Use a loop to select each existing constraint record and determine if
260   	--    the current s_dt_offset_constraint_type clashes with an existing
261   	--    s_dt_offset_constraint_type for the same dt_alias/offset_dt_alias.
262         -- function has been called from IGS_CA_DA_OFFCNT
263   		FOR v_ddcv_rec IN c_ddcv LOOP
264   			v_message_name := calpl_val_constraint(
265   								p_offset_cons_type_cd,
266   								p_constraint_condition,
267   								v_ddcv_rec.offset_cons_type_cd,
268   								v_ddcv_rec.constraint_condition,
269   								v_ddcv_rec.constraint_resolution);
270 
271   			IF v_message_name IN ('IGS_CA_CONSTRAINTS_CONFLICT','IGS_CA_CONSTRAINT_NOT_RESOLVE','IGS_CA_MUSTNOT_CONST_UNRSLVD') THEN
272   				p_message_name := v_message_name;
273   				EXIT;
274   			ELSIF v_message_name = 'IGS_CA_INVALID_CONSTRAINT' THEN
275   				p_message_name := v_message_name;
276   				-- continue check next record.
277   			ELSE
278   				-- continue check next record.
279   				NULL;
280   			END IF;
281   		END LOOP;
282 
283 
284   	IF v_message_name IS NULL OR
285   			v_message_name = 'IGS_CA_INVALID_CONSTRAINT' THEN
286   		RETURN TRUE;
287   	ELSE
288   		RETURN FALSE;
289   	END IF;
290   END;
291   END calp_val_ddcv_clash;
292 
293 
294 FUNCTION calp_val_doscv_clash(
295   ------------------------------------------------------------------
296   --Created by  : nishikanth.behera Oracle India
297   --Date created: 5-APR-2001
298   --
299   --Purpose:
300   --
301   --
302   --Known limitations/enhancements and/or remarks:
303   --
304   --Change History:
305   --Who         When            What
306   --smvk       14-Sep-2004      Bug # 3888835. Added parameter p_deadline_type.
307   -------------------------------------------------------------------
308 
309   p_non_std_usec_dls_id IN NUMBER,
310   p_offset_cons_type_cd IN VARCHAR2 ,
311   p_constraint_condition IN VARCHAR2 ,
312   p_constraint_resolution IN NUMBER ,
313   p_deadline_type IN VARCHAR2,
314   p_message_name OUT NOCOPY VARCHAR2 )
315   RETURN BOOLEAN AS
316   	gv_other_detail		VARCHAR2(255);
317   BEGIN	-- calp_val_sdoct_clash
318   	-- Validate that IGS_EN_DL_OFFSET_CONS records
319   	-- do not result in constraints that cannot be resolved. (eg. MUST BE MONDAY,
320   	-- MUST BE WEDNESDAY).
321   	-- Note that the primary keys prevent cases such as MUST BE MONDAY, MUST NOT
322   	-- BE MONDAY from occurring.
323   	-- Refer to S_DT_OFFSET_CONSTRAINT_TYPE table for list of valid constraint
324   	-- types.
325   DECLARE
326   	v_message_name		VARCHAR2(30);
327   	CURSOR c_doscv(cp_c_offset_cons_type_cd in varchar2,
328                        cp_n_non_std_usec_dls_id in number,
329                        cp_c_deadline_type in varchar2)IS
330   		SELECT  doscv.offset_cons_type_cd,
331   			doscv.constraint_condition,
332   			doscv.constraint_resolution
333   		FROM	IGS_EN_DL_OFFSET_CONS	 doscv
334   		WHERE	doscv.offset_cons_type_cd <> cp_c_offset_cons_type_cd AND
335   			doscv.non_std_usec_dls_id = cp_n_non_std_usec_dls_id AND
336                         doscv.deadline_type = cp_c_deadline_type;
337 
338   	FUNCTION calpl_val_constraint (
339   		p_offset_cons_type_cd
340   			IGS_EN_DL_OFFSET_CONS.offset_cons_type_cd%TYPE,
341   		p_constraint_condition		IGS_EN_DL_OFFSET_CONS.constraint_condition%TYPE,
342   		p_db_offset_cons_type_cd
343   	                                        IGS_EN_DL_OFFSET_CONS.offset_cons_type_cd%TYPE,
344   		p_db_constraint_condition	IGS_EN_DL_OFFSET_CONS.constraint_condition%TYPE,
345   		p_db_constraint_resolution	IGS_EN_DL_OFFSET_CONS.constraint_resolution%TYPE)
346   	RETURN VARCHAR2
347   	AS
348   	BEGIN
349   	DECLARE
350   		cst_must	CONSTANT	VARCHAR2(10)	:= 'MUST';
351   		cst_must_not	CONSTANT	VARCHAR2(10)	:= 'MUST NOT';
352   		cst_monday	CONSTANT	VARCHAR2(10)	:= 'MONDAY';
353   		cst_tuesday	CONSTANT	VARCHAR2(10)	:= 'TUESDAY';
354   		cst_wednesday	CONSTANT	VARCHAR2(10)	:= 'WEDNESDAY';
355   		cst_thursday	CONSTANT	VARCHAR2(10)	:= 'THURSDAY';
356   		cst_friday	CONSTANT	VARCHAR2(10)	:= 'FRIDAY';
357   		cst_saturday	CONSTANT	VARCHAR2(10)	:= 'SATURDAY';
358   		cst_sunday	CONSTANT	VARCHAR2(10)	:= 'SUNDAY';
359   		cst_week_day	CONSTANT	VARCHAR2(10)	:= 'WEEK DAY';
360   		cst_holiday	CONSTANT	VARCHAR2(10)	:= 'HOLIDAY';
361   	BEGIN
362   		-- If both constraint types are particular days of the week, then check that
363   		-- the constraint conditions are not both set to 'MUST'.  If so, an
364   		-- unresolvable situation will occur.
365   		IF	p_offset_cons_type_cd	IN (	cst_monday,
366   								cst_tuesday,
367   								cst_wednesday,
368   								cst_thursday,
369   								cst_friday,
370   								cst_saturday,
371   								cst_sunday)	AND
372   			p_constraint_condition		= cst_must		AND
373   			p_db_offset_cons_type_cd	IN (	cst_monday,
374   								cst_tuesday,
375   								cst_wednesday,
376   								cst_thursday,
377   								cst_friday,
378   								cst_saturday,
379   								cst_sunday)	AND
380   			p_db_constraint_condition	= cst_must		THEN
381   			RETURN 'IGS_CA_CONSTRAINTS_CONFLICT';
382   		END IF;
383     		-- If both constraint types are particular days of the week and both
384     		-- constraint conditions are set to 'MUST NOT', check that the resolution
385   		-- values will allow the constraint to be resolved.
386   		-- eg. MUST NOT BE MONDAY (+4) combined with MUST NOT BE FRIDAY (+3),
387   		-- will result in an unsolvable situation.
388     		IF	p_offset_cons_type_cd	IN (	cst_monday,
389     								cst_tuesday,
390     								cst_wednesday,
391     								cst_thursday,
395     			p_constraint_condition		= cst_must_not		AND
392     								cst_friday,
393     								cst_saturday,
394     								cst_sunday)	AND
396     			p_db_offset_cons_type_cd	IN (	cst_monday,
397     								cst_tuesday,
398     								cst_wednesday,
399     								cst_thursday,
400     								cst_friday,
401     								cst_saturday,
402     								cst_sunday)	AND
403     			p_db_constraint_condition	= cst_must_not		THEN
404   			IF (p_constraint_resolution +
405   			   p_db_constraint_resolution) IN (7, -7, 0) THEN
406     				RETURN 'IGS_CA_MUSTNOT_CONST_UNRSLVD';
407   			END IF;
408     		END IF;
409   		-- If current constraint type is a weekend day and the constraint type of
410   		-- the fetched record is 'WEEK DAY', check that the constraint conditions
411   		-- are different. Vice-versa.
412   		IF 	((	p_offset_cons_type_cd	IN (	cst_saturday,
413   									cst_sunday)	AND
414   				p_db_offset_cons_type_cd	= cst_week_day
415   			 )
416   			 OR	-- vice-versa
417   			 (	p_offset_cons_type_cd	= cst_week_day		AND
418   		 		p_db_offset_cons_type_cd	IN (	cst_saturday,
419   									cst_sunday)
420   			 )
421     			)	THEN
422   				IF p_constraint_condition = cst_must AND
423   				   p_db_constraint_condition = cst_must THEN
424   		  			RETURN 'IGS_CA_CONSTRAINTS_CONFLICT';
425   				END IF;
426   		END IF;
427   		-- If current constraint type is a week day and the constraint type of the
428   		-- fetched record is 'WEEK DAY', check that the constraint conditions are
429   		-- not different. Vice-versa
430   		IF	((	p_offset_cons_type_cd	IN (	cst_monday,
431   									cst_tuesday,
432   									cst_wednesday,
433   									cst_thursday,
434   									cst_friday)	AND
435   				p_db_offset_cons_type_cd	= cst_week_day  AND
436   				p_constraint_condition = 'MUST' AND
437   				p_db_constraint_condition = 'MUST NOT'
438   			 )
439   			 OR	-- vice-versa
440   			 (	p_offset_cons_type_cd	= cst_week_day		AND
441   				p_db_offset_cons_type_cd	IN (	cst_monday,
442   									cst_tuesday,
443   									cst_wednesday,
444   									cst_thursday,
445   									cst_friday) AND
446   				p_constraint_condition = 'MUST NOT' AND
447   				p_db_constraint_condition = 'MUST'
448   			 )) THEN
449   			RETURN 'IGS_CA_CONSTRAINTS_CONFLICT';
450   		END IF;
451   		-- If current constraint type is 'HOLIDAY'and the constraint type of the
452   		-- fetched record is 'SATURDAY' or 'SUNDAY', check that the conditions
453   		-- do not clash.
454   		-- Note : This check does not cause the function to return FALSE. Processing
455   		-- continues and if no further checks cause an error, the function will
456   		-- return TRUE and the message number will be recognised as a warning.
457   		IF	((	p_offset_cons_type_cd	= cst_holiday		AND
458   				p_db_offset_cons_type_cd	IN (	cst_saturday,
459   									cst_sunday)
460   			 )
461   			 OR	-- vice-versa
462   			 (	p_offset_cons_type_cd	IN (	cst_saturday,
463   									cst_sunday)	AND
464   				p_db_offset_cons_type_cd	= cst_holiday
465   			 )
466   			)	AND
467   			p_constraint_condition			= cst_must		AND
468   			p_db_constraint_condition		= cst_must		THEN
469   			RETURN 'IGS_CA_INVALID_CONSTRAINT';
470   		END IF;
471   		IF	p_offset_cons_type_cd	= cst_holiday	AND
472   			p_db_offset_cons_type_cd	= cst_week_day	AND
473   			p_constraint_condition		= cst_must	AND
474   			p_db_constraint_condition	= cst_must_not	THEN
475   			RETURN 'IGS_CA_INVALID_CONSTRAINT';
476   		END IF;
477   		-- Vice-versa
478   		IF	p_offset_cons_type_cd	= cst_week_day	AND
479   			p_db_offset_cons_type_cd	= cst_holiday	AND
480   			p_constraint_condition		= cst_must_not	AND
481   			p_db_constraint_condition	= cst_must	THEN
482   			RETURN 'IGS_CA_INVALID_CONSTRAINT';
483   		END IF;
484   		RETURN null;
485   		END;
486    		END calpl_val_constraint;
487   BEGIN
488   	-- Set default value.
489   	p_message_name := NULL;
490   	v_message_name := NULL;
491   	-- 1. Check parameters
492   	IF (		p_non_std_usec_dls_id   	IS NULL	OR
493   			p_offset_cons_type_cd	        IS NULL	OR
494   			p_constraint_condition		IS NULL	OR
495   			p_constraint_resolution		IS NULL) THEN
496   		RETURN TRUE;
497   	END IF;
498   	-- 2. Check constraint type / constraint resolution.
499   	-- If constraint resolution is zero, resolution will be impossible.
500   	IF	p_constraint_resolution = 0 THEN
501   			p_message_name := 'IGS_GE_INVALID_VALUE';
502   			RETURN FALSE;
503   	END IF;
504   	-- If constraint type is a particular day, check that the resolution is not
505   	-- plus or minus 7, as this will result in an unresolvable situation.
506   	IF	p_offset_cons_type_cd	IN (	'MONDAY',
507   							 'TUESDAY',
508   							'WEDNESDAY',
509   							'THURSDAY',
510   							'FRIDAY',
511   							'SATURDAY',
512   							'SUNDAY',
513   							'WEEK DAY')	AND
514   		p_constraint_resolution	IN (7, -7, 0)	THEN
515   			p_message_name := 'IGS_CA_CONSTRAINT_NOT_RESOLVE';
516   			RETURN FALSE;
517   	END IF;
518   	-- 3. Use a loop to select each existing constraint record and determine if
519   	--    the current s_dt_offset_constraint_type clashes with an existing
520   	--    s_dt_offset_constraint_type
521   		-- function has been called from IGS_CA_DA_OFFCNT
522   		FOR v_doscv_rec IN c_doscv(p_offset_cons_type_cd,
523                                            p_non_std_usec_dls_id,
524                                            p_deadline_type)  LOOP
525   			v_message_name := calpl_val_constraint(
526   								p_offset_cons_type_cd,
527   								p_constraint_condition,
528   								v_doscv_rec.offset_cons_type_cd,
529   								v_doscv_rec.constraint_condition,
530   								v_doscv_rec.constraint_resolution);
531 
532   			IF v_message_name IN ('IGS_CA_CONSTRAINTS_CONFLICT','IGS_CA_CONSTRAINT_NOT_RESOLVE','IGS_CA_MUSTNOT_CONST_UNRSLVD') THEN
533   				p_message_name := v_message_name;
534   				EXIT;
535   			ELSIF v_message_name = 'IGS_CA_INVALID_CONSTRAINT' THEN
536   				p_message_name := v_message_name;
537   				-- continue check next record.
538   			ELSE
539   				-- continue check next record.
540   				NULL;
541   			END IF;
542   		END LOOP;
543 
544 
545   	IF v_message_name IS NULL OR
546   			v_message_name = 'IGS_CA_INVALID_CONSTRAINT' THEN
547   		RETURN TRUE;
548   	ELSE
549   		RETURN FALSE;
550   	END IF;
551   END;
552   END calp_val_doscv_clash;
553   --
554 
555 END IGS_EN_VAL_AUS;