DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMS_AWARD_PUB

Source


1 PACKAGE BODY GMS_AWARD_PUB  AS
2 -- $Header: gmsawpbb.pls 120.8.12020000.4 2012/08/21 13:30:28 speddi ship $
3 
4 	G_PKG_NAME  	CONSTANT VARCHAR2(30) := 'GMS_AWARD_PUB';
5 	E_VER_MISMATCH	EXCEPTION ;
6 
7 	G_msg_count		NUMBER ;
8 	G_msg_data		    varchar2(2000) ;
9 	G_calling_module	varchar2(30) ;
10 	G_product_code		varchar2(3) 	:= 'GMS' ;
11 	G_stage		    varchar2(80) ;
12 
13     	--
14 -- init_message_stack
15 -- init_message_stack Initialize the the error message PL/SQL
16 -- Table and set the context for the private Package.
17 -- This is called at the begining of the program unit.
18 --
19 	-- +++++++++++++
20 	PROCEDURE init_message_stack is
21 	BEGIN
22 		  gms_award_pvt.init_message_stack ;
23 
24 	END init_message_stack ;
25 
26     	--
27     	-- reset_message_flag
28     	-- reset_message_flag set the context for the private Package.
29     	-- This is called at the end of the program unit.
30     	--
31 	-- ++++++++++++
32 	PROCEDURE reset_message_flag is
33 	BEGIN
34 		  gms_award_pvt.reset_message_flag ;
35 
36 	END reset_message_flag ;
37 
38     	--
39     	-- add_message_TO_STACK
40     	-- add_message_to_stack - This is a private program unit
41     	-- defined in this package to add error messages to
42     	-- the PL/SQL message table.
43     	-- This updates the G_msg_count after adding a message
44     	-- to the message variable.
45     	--
46 
47 	-- +++++++++++++
48 	PROCEDURE add_message_to_stack( P_Label	IN Varchar2,
49 				    P_token1	IN varchar2 default NULL,
50 				    P_val1	IN varchar2 default NULL,
51 				    P_token2	IN varchar2 default NULL,
52 				    P_val2	in varchar2 default NULL,
53 				    P_token3	IN varchar2 default NULL,
54 				    P_val3	in varchar2 default NULL ) is
55 	BEGIN
56 
57 		gms_award_pvt.add_message_to_stack(P_Label, P_token1, P_val1, P_token2, P_val2, P_token3, P_val3 ) ;
58 
59 
60 	END add_message_to_stack ;
61 
62 	-- SET_RETURN_STATUS
63     	-- This routine sets the return status for the failures.
64 	-- X_RETURN_STATUS : <S>uccess, [E] Business Rule Violation
65 	-- U - Unexpected Error
66 	-- P_TYPE := B - Business Validations, E- Exception
67 	--
68 
69 	-- +++++++++++++
70 	PROCEDURE set_return_status(X_return_status IN OUT NOCOPY VARCHAR2,
71 				 p_type in varchar2 DEFAULT 'B' ) is
72 	begin
73 		gms_award_pvt.set_return_status( X_return_status, p_type  ) ;
74 
75 	END set_return_status ;
76 
77     -- =====================================================
78     -- Utility Functions for creating an award
79     -- =====================================================
80 
81     --
82     -- get_Funds_ctrl_code
83     -- This is a function defined to return
84     -- funds control code for the corresponding name.
85     -- The code values are as follows
86     -- B- ABSOLUTE
87     -- D- ADVISORY
88     -- N- NONE
89     --
90     FUNCTION get_Funds_ctrl_code( p_fctrl_name varchar2 )
91     return varchar2 is
92         l_dummy varchar2(1) ;
93     begin
94         IF p_fctrl_name = 'ABSOLUTE' THEN
95             l_dummy := 'B' ;
96         ELSIF p_fctrl_name = 'ADVISORY' THEN
97             l_dummy := 'D' ;
98         ELSIF p_fctrl_name = 'NONE' THEN
99             l_dummy := 'N' ;
100         END IF ;
101 
102         return l_dummy ;
103     END  get_Funds_ctrl_code ;
104 
105     --
106     -- proc_set_record
107     -- This is a program unit defined to populate
108     -- record group for the parameters supplied
109     -- to the create_award API.
110     --
111     -- +++++++++++++
112     PROCEDURE proc_set_record (
113 				 AWARD_NUMBER                IN VARCHAR2,
114 				 AWARD_SHORT_NAME            IN VARCHAR2,
115 				 AWARD_FULL_NAME             IN VARCHAR2,
116 				 FUNDING_SOURCE_ID           IN NUMBER,
117 				 START_DATE_ACTIVE           IN DATE,
118 				 END_DATE_ACTIVE             IN DATE,
119 				 CLOSE_DATE                  IN DATE,
120 				 FUNDING_SOURCE_AWARD_NUMBER IN VARCHAR2,
121 				 AWARD_PURPOSE_CODE          IN VARCHAR2,
122 				 STATUS                      IN VARCHAR2,
123 				 ALLOWABLE_SCHEDULE_ID       IN NUMBER,
124 				 IDC_SCHEDULE_ID             IN NUMBER,
125 				 REVENUE_DISTRIBUTION_RULE   IN VARCHAR2,
126 				 BILLING_DISTRIBUTION_RULE   IN VARCHAR2,
127 				 BILLING_FORMAT              IN VARCHAR2,
128 				 BILLING_TERM                IN NUMBER,
129 				 AWARD_PROJECT_ID            IN NUMBER,
130 				 AGREEMENT_ID                IN NUMBER,
131 				 AWARD_TEMPLATE_FLAG         IN VARCHAR2,
132 				 PREAWARD_DATE               IN DATE,
133 				 AWARD_MANAGER_ID            IN NUMBER,
134 				 AGENCY_SPECIFIC_FORM        IN VARCHAR2,
135 				 BILL_TO_CUSTOMER_ID         IN NUMBER,
136 				 TRANSACTION_NUMBER          IN VARCHAR2,
137 				 AMOUNT_TYPE                 IN VARCHAR2,
138 				 BOUNDARY_CODE               IN VARCHAR2,
139 				 FUND_CONTROL_LEVEL_AWARD    IN VARCHAR2,
140 				 FUND_CONTROL_LEVEL_TASK     IN VARCHAR2,
141 				 FUND_CONTROL_LEVEL_RES_GRP  IN VARCHAR2,
142 				 FUND_CONTROL_LEVEL_RES      IN VARCHAR2,
143 				 ATTRIBUTE_CATEGORY          IN VARCHAR2,
144 				 ATTRIBUTE1                  IN VARCHAR2,
145 				 ATTRIBUTE2                  IN VARCHAR2,
146 				 ATTRIBUTE3                  IN VARCHAR2,
147 				 ATTRIBUTE4                  IN VARCHAR2,
148 				 ATTRIBUTE5                  IN VARCHAR2,
149 				 ATTRIBUTE6                  IN VARCHAR2,
150 				 ATTRIBUTE7                  IN VARCHAR2,
151 				 ATTRIBUTE8                  IN VARCHAR2,
152 				 ATTRIBUTE9                  IN VARCHAR2,
153 				 ATTRIBUTE10                 IN VARCHAR2,
154 				 ATTRIBUTE11                 IN VARCHAR2,
155 				 ATTRIBUTE12                 IN VARCHAR2,
156 				 ATTRIBUTE13                 IN VARCHAR2,
157 				 ATTRIBUTE14                 IN VARCHAR2,
158 				 ATTRIBUTE15                 IN VARCHAR2,
159 				 TEMPLATE_START_DATE_ACTIVE  IN DATE,
160 				 TEMPLATE_END_DATE_ACTIVE    IN DATE,
161 				 TYPE                        IN VARCHAR2,
162 				 ORG_ID                      IN NUMBER,
163 				 COST_IND_SCH_FIXED_DATE     IN DATE,
164 				 LABOR_INVOICE_FORMAT_ID     IN NUMBER,
165 				 NON_LABOR_INVOICE_FORMAT_ID IN NUMBER,
166 				 BILL_TO_ADDRESS_ID          IN NUMBER,
167 				 SHIP_TO_ADDRESS_ID          IN NUMBER,
168 				 LOC_BILL_TO_ADDRESS_ID      IN NUMBER,
169 				 LOC_SHIP_TO_ADDRESS_ID      IN NUMBER,
170 				 AWARD_ORGANIZATION_ID       IN NUMBER,
171 				 HARD_LIMIT_FLAG             IN VARCHAR2,
172          INVOICE_LIMIT_FLAG          IN VARCHAR2, /*Bug 6642901*/
173 				 BILLING_OFFSET              IN NUMBER,
174 				 BILLING_CYCLE_ID            IN NUMBER,
175 				 BUDGET_WF_ENABLED_FLAG      IN VARCHAR2,
176 				 PROPOSAL_ID                 IN NUMBER,
177 				 AWARD_REC                  IN OUT NOCOPY gms_awards_all%ROWTYPE ) is
178 	BEGIN
179 		award_rec.AWARD_NUMBER                    	:=    AWARD_NUMBER                    ;
180 		award_rec.AWARD_SHORT_NAME                	:=    AWARD_SHORT_NAME                ;
181 		award_rec.AWARD_FULL_NAME                 	:=    AWARD_FULL_NAME                 ;
182 		award_rec.FUNDING_SOURCE_ID               	:=    FUNDING_SOURCE_ID               ;
183 		award_rec.START_DATE_ACTIVE               	:=    START_DATE_ACTIVE               ;
184 		award_rec.END_DATE_ACTIVE                 	:=    END_DATE_ACTIVE                 ;
185 		award_rec.CLOSE_DATE                      	:=    CLOSE_DATE                      ;
186 		award_rec.FUNDING_SOURCE_AWARD_NUMBER     	:=    FUNDING_SOURCE_AWARD_NUMBER     ;
187 		award_rec.AWARD_PURPOSE_CODE              	:=    AWARD_PURPOSE_CODE              ;
188 		award_rec.STATUS                          	:=    STATUS                          ;
189 		award_rec.ALLOWABLE_SCHEDULE_ID           	:=    ALLOWABLE_SCHEDULE_ID           ;
190 		award_rec.IDC_SCHEDULE_ID                 	:=    IDC_SCHEDULE_ID                 ;
191 		award_rec.REVENUE_DISTRIBUTION_RULE       	:=    REVENUE_DISTRIBUTION_RULE       ;
192 		award_rec.BILLING_DISTRIBUTION_RULE       	:=    BILLING_DISTRIBUTION_RULE       ;
193 		award_rec.BILLING_FORMAT                  	:=    BILLING_FORMAT                  ;
194 		award_rec.BILLING_TERM                    	:=    BILLING_TERM                    ;
195 		award_rec.AWARD_PROJECT_ID                	:=    AWARD_PROJECT_ID                ;
196 		award_rec.AGREEMENT_ID                    	:=    AGREEMENT_ID                    ;
197 		award_rec.AWARD_TEMPLATE_FLAG             	:=    AWARD_TEMPLATE_FLAG             ;
198 		award_rec.PREAWARD_DATE                   	:=    PREAWARD_DATE                   ;
199 		award_rec.AWARD_MANAGER_ID                	:=    AWARD_MANAGER_ID                ;
200 		award_rec.AGENCY_SPECIFIC_FORM            	:=    AGENCY_SPECIFIC_FORM            ;
201 		award_rec.BILL_TO_CUSTOMER_ID             	:=    BILL_TO_CUSTOMER_ID             ;
202 		award_rec.TRANSACTION_NUMBER              	:=    TRANSACTION_NUMBER              ;
203 		award_rec.AMOUNT_TYPE                     	:=    AMOUNT_TYPE                     ;
204 		award_rec.BOUNDARY_CODE                   	:=    BOUNDARY_CODE                   ;
205 		award_rec.FUND_CONTROL_LEVEL_AWARD        	:=    FUND_CONTROL_LEVEL_AWARD        ;
206 		award_rec.FUND_CONTROL_LEVEL_TASK         	:=    FUND_CONTROL_LEVEL_TASK         ;
207 		award_rec.FUND_CONTROL_LEVEL_RES_GRP      	:=    FUND_CONTROL_LEVEL_RES_GRP      ;
208 		award_rec.FUND_CONTROL_LEVEL_RES          	:=    FUND_CONTROL_LEVEL_RES          ;
209 		award_rec.ATTRIBUTE_CATEGORY              	:=    ATTRIBUTE_CATEGORY              ;
210 		award_rec.ATTRIBUTE1                      	:=    ATTRIBUTE1                      ;
211 		award_rec.ATTRIBUTE2                      	:=    ATTRIBUTE2                      ;
212 		award_rec.ATTRIBUTE3                      	:=    ATTRIBUTE3                      ;
213 		award_rec.ATTRIBUTE4                      	:=    ATTRIBUTE4                      ;
214 		award_rec.ATTRIBUTE5                      	:=    ATTRIBUTE5                      ;
215 		award_rec.ATTRIBUTE6                      	:=    ATTRIBUTE6                      ;
216 		award_rec.ATTRIBUTE7                      	:=    ATTRIBUTE7                      ;
217 		award_rec.ATTRIBUTE8                      	:=    ATTRIBUTE8                      ;
218 		award_rec.ATTRIBUTE9                      	:=    ATTRIBUTE9                      ;
219 		award_rec.ATTRIBUTE10                     	:=    ATTRIBUTE10                     ;
220 		award_rec.ATTRIBUTE11                     	:=    ATTRIBUTE11                     ;
221 		award_rec.ATTRIBUTE12                     	:=    ATTRIBUTE12                     ;
222 		award_rec.ATTRIBUTE13                     	:=    ATTRIBUTE13                     ;
223 		award_rec.ATTRIBUTE14                     	:=    ATTRIBUTE14                     ;
224 		award_rec.ATTRIBUTE15                     	:=    ATTRIBUTE15                     ;
225 		award_rec.TEMPLATE_START_DATE_ACTIVE      	:=    TEMPLATE_START_DATE_ACTIVE      ;
226 		award_rec.TEMPLATE_END_DATE_ACTIVE        	:=    TEMPLATE_END_DATE_ACTIVE        ;
227 		award_rec.TYPE                            	:=    TYPE                            ;
228 		award_rec.ORG_ID                          	:=    ORG_ID                          ;
229 		award_rec.COST_IND_SCH_FIXED_DATE         	:=    COST_IND_SCH_FIXED_DATE         ;
230 		award_rec.LABOR_INVOICE_FORMAT_ID         	:=    LABOR_INVOICE_FORMAT_ID         ;
231 		award_rec.NON_LABOR_INVOICE_FORMAT_ID     	:=    NON_LABOR_INVOICE_FORMAT_ID     ;
232 		award_rec.BILL_TO_ADDRESS_ID              	:=    BILL_TO_ADDRESS_ID              ;
233 		award_rec.SHIP_TO_ADDRESS_ID              	:=    SHIP_TO_ADDRESS_ID              ;
234 		award_rec.LOC_BILL_TO_ADDRESS_ID          	:=    LOC_BILL_TO_ADDRESS_ID          ;
235 		award_rec.LOC_SHIP_TO_ADDRESS_ID          	:=    LOC_SHIP_TO_ADDRESS_ID          ;
236 		award_rec.AWARD_ORGANIZATION_ID           	:=    AWARD_ORGANIZATION_ID           ;
237 		award_rec.HARD_LIMIT_FLAG                 	:=    HARD_LIMIT_FLAG                 ;
238 		award_rec.INVOICE_LIMIT_FLAG                 	:=    INVOICE_LIMIT_FLAG              ; /*Bug 6642901*/
239 		award_rec.BILLING_OFFSET                  	:=    BILLING_OFFSET                  ;
240 		award_rec.BILLING_CYCLE_ID                	:=    BILLING_CYCLE_ID                ;
241 		award_rec.BUDGET_WF_ENABLED_FLAG          	:=    BUDGET_WF_ENABLED_FLAG          ;
242 		award_rec.PROPOSAL_ID                     	:=    PROPOSAL_ID                     ;
243 	END proc_set_record ;
244     -- ========================================================================================
245     -- End of utility Functions/Procedures for award.
246     -- ========================================================================================
247 
248     -- CREATE_AWARD
249     -- Create award is a public API provided to create award
250     -- into grants accounting. This is the API used to
251     -- transfer Legacy system data into grants accounting.
252     -- OUT NOCOPY Parameters meanings
253     -- P_MSG_COUNT              :   Holds no. of messages in the global
254     --                              message table.
255     -- P_MSG_DATE               :   Holds the message code, if the API
256     --                              returned only one error/warning message.
257     -- X_return_status          :   The indicator of success/Failure
258     --                              S- Success, E- and U- Failure
259     -- p_award_id               :   The Award ID created.
260 
261     -- ===============================================================================
262     -- CREATE_AWARD :
263     -- Create award has all the parameters that we have in gms_awards_all table.
264     -- The ID's in the table are replaced by corresponding value. Users must
265     -- provide decode values instead of code values for certain arguments.
266     -- X_return_status 	: 	S- Success,
267     --				E- Business Rule Validation error
268     --				U- Unexpected Error
269     -- P_API_VERSION_NUMBER	:	1.0
270     -- ===============================================================================
271     -- +++++++++++++
272     PROCEDURE	create_award(
273 				X_MSG_COUNT			OUT NOCOPY	NUMBER,
274 				X_MSG_DATA			OUT NOCOPY	VARCHAR2,
275 				X_return_status			OUT NOCOPY	VARCHAR2,
276 				X_AWARD_ID			OUT NOCOPY	NUMBER,
277 				P_CALLING_MODULE		IN	VARCHAR2,
278 				P_API_VERSION_NUMBER		IN	NUMBER,
279 				P_LAST_UPDATE_DATE		IN	DATE,
280 				P_LAST_UPDATED_BY		IN	NUMBER,
281 				P_CREATED_BY			IN	NUMBER,
282 				P_CREATION_DATE			IN	DATE,
283 				P_LAST_UPDATE_LOGIN		IN	NUMBER,
284 				P_AWARD_NUMBER			IN	VARCHAR2,
285 				P_AWARD_SHORT_NAME		IN	VARCHAR2,
286 				P_AWARD_FULL_NAME		IN	VARCHAR2,
287 				P_AWARD_START_DATE		IN	DATE,
288 				P_AWARD_END_DATE		IN	DATE,
289 				P_AWARD_CLOSE_DATE		IN	DATE,
290 				P_PREAWARD_DATE			IN	DATE,
291 				P_AWARD_PURPOSE_CODE		IN 	VARCHAR2,
292 				P_AWARD_STATUS_CODE		IN	VARCHAR2,
293 				P_AWARD_MANAGER_ID		IN	NUMBER,
294 				P_AWARD_ORGANIZATION_ID		IN	NUMBER,
295 				P_FUNDING_SOURCE_ID		IN	NUMBER,
296 				P_FUNDING_SOURCE_AWARD_NUM	IN	VARCHAR2,
297 				P_ALLOWABLE_SCHEDULE		IN	VARCHAR2,
298 				P_INDIRECT_SCHEDULE		IN	VARCHAR2,
299 				P_COST_IND_SCH_FIXED_DATE	IN	DATE,
300 				P_REVENUE_DISTRIBUTION_RULE	IN	VARCHAR2,
301 				P_BILLING_DISTRIBUTION_RULE	IN	VARCHAR2,
302 				P_BILLING_FORMAT		IN	VARCHAR2,
303 				P_BILLING_TERM_ID		IN	NUMBER,
304 				P_AGENCY_FORM			IN	VARCHAR2,
305 				P_BILL_TO_CUSTOMER_ID		IN	VARCHAR2,
306 				P_LABOR_INVOICE_FORMAT_ID	IN	VARCHAR2,
307 				P_NON_LABOR_INVOICE_FORMAT_ID	IN	VARCHAR2,
308 				P_BILL_TO_ADDRESS_ID		IN	NUMBER,
309 				P_SHIP_TO_ADDRESS_ID		IN	NUMBER,
310 				P_LOC_BILL_TO_ADDRESS_ID	IN	NUMBER,
311 				P_LOC_SHIP_TO_ADDRESS_ID	IN	NUMBER,
312 				P_HARD_LIMIT_FLAG		IN	VARCHAR2,
313 				P_INVOICE_LIMIT_FLAG		IN	VARCHAR2, /*Bug 6642901*/
314 				P_BILLING_OFFSET		IN	NUMBER,
315 				P_BILLING_CYCLE			IN	VARCHAR2,
316 				P_TRANSACTION_NUM		IN	VARCHAR2,
317 				P_AMOUNT_TYPE_CODE		IN	VARCHAR2,
318 				P_BOUNDARY_CODE			IN	VARCHAR2,
319 				P_FUNDS_CONTROL_AT_AWARD	IN	VARCHAR2,
320 				P_FUNDS_CONTROL_AT_TASK		IN	VARCHAR2,
321 				P_FUNDS_CONTROL_AT_RES_GROUP    IN	VARCHAR2,
322 				P_FUNDS_CONTROL_AT_RES	        IN	VARCHAR2,
323 				P_ATTRIBUTE_CATEGORY		IN	VARCHAR2,
324 				P_ATTRIBUTE1			IN	VARCHAR2,
325 				P_ATTRIBUTE2			IN	VARCHAR2,
326 				P_ATTRIBUTE3			IN	VARCHAR2,
327 				P_ATTRIBUTE4			IN	VARCHAR2,
328 				P_ATTRIBUTE5			IN	VARCHAR2,
329 				P_ATTRIBUTE6			IN	VARCHAR2,
330 				P_ATTRIBUTE7			IN	VARCHAR2,
331 				P_ATTRIBUTE8			IN	VARCHAR2,
332 				P_ATTRIBUTE9			IN	VARCHAR2,
333 				P_ATTRIBUTE10			IN	VARCHAR2,
334 				P_ATTRIBUTE11			IN	VARCHAR2,
335 				P_ATTRIBUTE12			IN	VARCHAR2,
336 				P_ATTRIBUTE13			IN	VARCHAR2,
337 				P_ATTRIBUTE14			IN	VARCHAR2,
338 				P_ATTRIBUTE15			IN	VARCHAR2,
339 				P_AGREEMENT_TYPE		IN	VARCHAR2,
340 				P_ORG_ID			    IN	NUMBER,
341 				P_WF_ENABLED_FLAG		IN	VARCHAR2,
342 				P_PROPOSAL_ID			IN	NUMBER ) IS
343 
344 
345         l_api_name              varchar2(30) := 'GMS_AWARD_PUB.CREATE_AWARD';
346         L_allow_schedule_id     gms_allowability_schedules.allowability_schedule_id%TYPE ;
347         L_error                 BOOLEAN := FALSE ;
348 
349         L_IDC_schedule_type     pa_ind_rate_schedules.ind_rate_schedule_type%TYPE ;
350         L_ind_rate_sch_id       pa_ind_rate_schedules.ind_rate_sch_id%TYPE ;
351 
352         L_award_rec             GMS_AWARDS_ALL%ROWTYPE ;
353         L_award_id              GMS_AWARDS_ALL.AWARD_ID%TYPE ;
354 
355         L_billing_cycle_id      pa_billing_cycles.billing_cycle_id%TYPE ;
356         L_fctrl_award           gms_awards_all.fund_control_level_award%TYPE;
357         L_fctrl_task            gms_awards_all.fund_control_level_task%TYPE;
358         L_fctrl_RGP             gms_awards_all.fund_control_level_res_grp%TYPE;
359         L_fctrl_res             gms_awards_all.fund_control_level_res%TYPE;
360 	L_row_id		varchar2(45) ;
361 	l_default_org_id	GMS_AWARDS_ALL.ORG_ID%TYPE;
362 	MO_ORG_INVALID_EXCEPTION EXCEPTION;
363 
364 
365         CURSOR C_BILL is
366         SELECT billing_cycle_id
367           FROM pa_billing_cycles
368          WHERE trunc(sysdate) between start_date_active
369            and NVL( end_date_active, sysdate )
370 	   and billing_cycle_name = P_BILLING_CYCLE ;
371 
372 	CURSOR C_allowable_sch is
373 	SELECT allowability_schedule_id
374 	  FROM gms_allowability_schedules
375 	 WHERE allow_sch_name = P_ALLOWABLE_SCHEDULE ;
376 
377         CURSOR C_IDC_SCH is
378             SELECT  ind_rate_sch_id,
379                     ind_rate_schedule_type
380               FROM pa_ind_rate_schedules
381              WHERE ind_rate_sch_name = P_INDIRECT_SCHEDULE ;
382 
383     BEGIN
384 	G_stage := 'CREATE_AWARD_BEGINS' ;
385        	init_message_stack  ;
386 
387 	savepoint CREATE_AWARD_SAVE ;
388 	X_return_status	:= FND_API.G_RET_STS_SUCCESS;
389 
390         G_stage := 'FND_API.Compatible_API_Call' ;
391 
392     	IF NOT FND_API.Compatible_API_Call ( g_api_version_number	,
393 		 	                     p_api_version_number	,
394 			                     l_api_name 	    	,
395 			                     G_PKG_NAME 	    	)
396      	THEN
397 		--RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
398 		RAISE e_ver_mismatch ;
399 	END IF ;
400 
401 	--=============================
402 	-- Shared Service Enhancement
403 	--=============================
404 	G_stage := 'MOAC INIT';
405 
406 	MO_GLOBAL.INIT('GMS');
407 
408 	l_default_org_id := MO_GLOBAL.get_valid_org(p_org_id);
409 
410 	IF l_default_org_id is null then
411 		FND_MESSAGE.SET_NAME ('MO',' MO_ORG_INVALID');
412 		RAISE MO_ORG_INVALID_EXCEPTION;
413 	END IF;
414 
415 
416 	-- ==============================
417 	-- Convert Names/Decode into ID's.
418 	-- ==============================
419         G_stage := 'ID-NAME-CONV' ;
420 
421         IF P_ALLOWABLE_SCHEDULE is not NULL THEN
422                 OPEN C_allowable_sch ;
423                 FETCH C_allowable_sch into L_allow_schedule_id ;
424 
425                 IF C_allowable_sch%NOTFOUND THEN
426       		   	add_message_to_stack( P_label => 'GMS_AWD_ACD_INVALID' ) ;
427 		       	l_error := TRUE ;
428                 END IF ;
429 
430                 CLOSE C_allowable_sch ;
431         END IF ;
432 
433         IF P_INDIRECT_SCHEDULE is not NULL THEN
434                 OPEN C_IDC_SCH ;
435                 FETCH C_IDC_SCH into L_ind_rate_sch_id, L_IDC_schedule_type ;
436 
437                 IF C_IDC_SCH%NOTFOUND THEN
438       	   		add_message_to_stack( P_label => 'GMS_IDC_SCH_INVALID' ) ;
439 	   		l_error := TRUE ;
440                 END IF ;
441 
442                 CLOSE C_IDC_SCH ;
443          END IF ;
444 
445          IF P_billing_cycle is not NULL THEN
446                 OPEN C_bill ;
447                 FETCH C_bill into L_billing_cycle_id ;
448 
449                 IF C_BILL%NOTFOUND THEN
450 		   add_message_to_stack( P_label => 'GMS_BILL_CYC_INVALID' ) ;
451 		   l_error := TRUE ;
452                 END IF ;
453 
454                 CLOSE C_BILL ;
455          END IF ;
456 
457 	 IF NVL(P_FUNDS_CONTROL_AT_AWARD	, 'ABSOLUTE') not in ( 'ABSOLUTE', 'ADVISORY', 'NONE' )
458          THEN
459           		add_message_to_stack( P_label => 'GMS_FUNDS_CTRL_AWD_INVALID' ) ;
460     			l_error := TRUE ;
461           END IF ;
462 
463 	  IF NVL(P_FUNDS_CONTROL_AT_TASK	, 'ABSOLUTE') not in ( 'ABSOLUTE', 'ADVISORY', 'NONE' )
464           THEN
465           		add_message_to_stack( P_label => 'GMS_FUNDS_CTRL_TASK_INVALID' ) ;
466     			l_error := TRUE ;
467           END IF ;
468 
469 	  IF NVL(P_FUNDS_CONTROL_AT_RES_GROUP	, 'ABSOLUTE') not in ( 'ABSOLUTE', 'ADVISORY', 'NONE' )
470           THEN
471           		add_message_to_stack( P_label => 'GMS_FUNDS_CTRL_RGP_INVALID' ) ;
472     			l_error := TRUE ;
473           END IF ;
474 
475 	  IF NVL(P_FUNDS_CONTROL_AT_RES	, 'ABSOLUTE') not in ( 'ABSOLUTE', 'ADVISORY', 'NONE' )
476           THEN
477           		add_message_to_stack( P_label => 'GMS_FUNDS_CTRL_RES_INVALID' ) ;
478     			l_error := TRUE ;
479           END IF ;
480 
481           L_fctrl_award := get_funds_ctrl_code(P_FUNDS_CONTROL_AT_AWARD ) ;
482           L_fctrl_task  := get_funds_ctrl_code(P_FUNDS_CONTROL_AT_TASK ) ;
483           L_fctrl_RGP   := get_funds_ctrl_code(P_FUNDS_CONTROL_AT_RES_GROUP ) ;
484           L_fctrl_res   := get_funds_ctrl_code(P_FUNDS_CONTROL_AT_RES ) ;
485 
486           If l_error then
487                 set_return_status(X_return_status, 'B' ) ;
488           END IF ;
489 
490           G_stage := 'SET RECORD PARAM' ;
491 
492           proc_set_record (
493 				 P_AWARD_NUMBER,
494 				 P_AWARD_SHORT_NAME,
495 				 P_AWARD_FULL_NAME,
496 				 P_FUNDING_SOURCE_ID,
497 				 P_AWARD_START_DATE,
498 				 P_AWARD_END_DATE,
499 				 P_AWARD_CLOSE_DATE,
500 				 P_FUNDING_SOURCE_AWARD_NUM,
501 				 P_AWARD_PURPOSE_CODE,
502 				 P_AWARD_STATUS_CODE,
503 				 L_allow_schedule_id,
504 				 L_ind_rate_sch_id,
505 				 P_REVENUE_DISTRIBUTION_RULE ,
506 				 P_BILLING_DISTRIBUTION_RULE ,
507 				 P_BILLING_FORMAT            ,
508 				 P_BILLING_TERM_ID           ,
509 				 NULL ,
510 				 NULL,
511 				 'DEFERRED',
512 				 P_PREAWARD_DATE,
513 				 P_AWARD_MANAGER_ID,
514 				 P_AGENCY_FORM,
515 				 P_BILL_TO_CUSTOMER_ID,
516 				 P_TRANSACTION_NUM ,
517 				 P_AMOUNT_TYPE_CODE,
518 				 P_BOUNDARY_CODE,
519 				 L_fctrl_award,
520 				 L_fctrl_task,
521 				 L_fctrl_rgp,
522 				 L_fctrl_res,
523 				 P_ATTRIBUTE_CATEGORY,
524 				 P_ATTRIBUTE1,
525 				 P_ATTRIBUTE2,
526 				 P_ATTRIBUTE3,
527 				 P_ATTRIBUTE4,
528 				 P_ATTRIBUTE5,
529 				 P_ATTRIBUTE6,
530 				 P_ATTRIBUTE7,
531 				 P_ATTRIBUTE8,
532 				 P_ATTRIBUTE9,
533 				 P_ATTRIBUTE10,
534 				 P_ATTRIBUTE11,
535 				 P_ATTRIBUTE12,
536 				 P_ATTRIBUTE13,
537 				 P_ATTRIBUTE14,
538 				 P_ATTRIBUTE15,
539 				 NULL,
540 				 NULL  ,
541 				 P_AGREEMENT_TYPE            ,
542 				 --P_ORG_ID                    ,
543 				 l_default_org_id,
544 				 P_COST_IND_SCH_FIXED_DATE   ,
545 				 P_LABOR_INVOICE_FORMAT_ID  ,
546 				 P_NON_LABOR_INVOICE_FORMAT_ID ,
547 				 P_BILL_TO_ADDRESS_ID   ,
548 				 P_SHIP_TO_ADDRESS_ID    ,
549 				 P_LOC_BILL_TO_ADDRESS_ID  ,
550 				 P_LOC_SHIP_TO_ADDRESS_ID  ,
551 				 P_AWARD_ORGANIZATION_ID,
552 				 P_HARD_LIMIT_FLAG     ,
553 				 P_INVOICE_LIMIT_FLAG     , /*Bug 6642901*/
554 				 P_BILLING_OFFSET      ,
555 				 L_billing_cycle_id,
556 				 P_WF_ENABLED_FLAG ,
557 				 P_PROPOSAL_ID ,
558           		         L_AWARD_REC      ) ;
559 
560           l_award_rec.last_updated_by      := NVL(P_LAST_UPDATED_BY, fnd_global.user_id) ;
561 	  l_award_rec.last_update_date     := NVL(P_LAST_UPDATE_DATE, SYSDATE) ;
562           l_award_rec.last_updated_by      := NVL(P_LAST_UPDATED_BY, fnd_global.user_id) ;
563 	  l_award_rec.created_by           := NVL(P_CREATED_BY, fnd_global.user_id ) ;
564 	  l_award_rec.creation_date        := NVL(P_CREATION_DATE, SYSDATE) ;
565 	  l_award_rec.last_update_login    := NVL(P_LAST_UPDATE_LOGIN, fnd_global.user_id ) ;
566 	  l_award_rec.award_number         := P_AWARD_NUMBER ;
567 
568           G_stage := 'gms_award_pvt.create_award' ;
569 	  gms_award_pvt.create_award( X_msg_count,
570 		                    X_MSG_DATA	,
571 		                    X_return_status	,
572 		                    L_ROW_ID	,
573 		                    X_AWARD_ID	,
574 		                    P_CALLING_MODULE,
575 		                    P_API_VERSION_NUMBER,
576 		                    L_AWARD_REC	) ;
577 
578           reset_message_flag ;
579     EXCEPTION
580 	WHEN e_ver_mismatch THEN
581          	add_message_to_stack( P_label => 'GMS_API_VER_MISMATCH' ) ;
582                 set_return_status(X_return_status, 'B' ) ;
583                 X_msg_count := G_msg_count ;
584                 X_msg_data  := G_msg_data ;
585 
586 	WHEN fnd_api.g_exc_error THEN
587 		ROLLBACK TO create_award_save ;
588                 set_return_status(X_return_status, 'B' ) ;
589                 X_msg_count := G_msg_count ;
590                 X_msg_data  := G_msg_data ;
591 	WHEN others THEN
592 		ROLLBACK TO create_award_save;
593 		X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
594 		FND_MSG_PUB.add_exc_msg
595 				( p_pkg_name		=> G_PKG_NAME
596 				, p_procedure_name	=> l_api_name	);
597 		FND_MSG_PUB.Count_And_Get
598 				(   p_count		=>	X_msg_count	,
599 				    p_data		=>	X_msg_data	);
600 
601 	END create_award ;
602 
603 	--===============================================================================
604 	-- COPY_AWARD :
605 	-- Copy award has all the parameters that we have in quick entry for award.
606 	-- The ID's in the table are replaced by corresponding value. Users must
607 	-- provide decode values instead of code values.
608 	-- X_return_status 	: 	S- Success,
609 	--				E- Business Rule Validation error
610 	--				U- Unexpected Error
611 	-- P_API_VERSION_NUMBER	:	1.0
612 	-- ===============================================================================
613         -- +++++++++++++
614 	PROCEDURE	copy_award(
615 				X_MSG_COUNT			OUT NOCOPY	NUMBER,
616 				X_MSG_DATA			OUT NOCOPY	VARCHAR2,
617 				X_return_status			OUT NOCOPY	VARCHAR2,
618 				X_AWARD_ID			OUT NOCOPY	NUMBER,
619 				P_CALLING_MODULE		IN	VARCHAR2,
620 				P_API_VERSION_NUMBER		IN	NUMBER,
621 				P_AWARD_BASE_ID			IN	NUMBER,
622 				P_AWARD_NUMBER			IN	VARCHAR2,
623 				P_AWARD_SHORT_NAME		IN	VARCHAR2,
624 				P_AWARD_FULL_NAME		IN	VARCHAR2,
625 				P_AWARD_START_DATE		IN	DATE,
626 				P_AWARD_END_DATE		IN	DATE,
627 				P_AWARD_CLOSE_DATE		IN	DATE,
628 				P_PREAWARD_DATE			IN	DATE,
629 				P_AWARD_PURPOSE_CODE		IN 	VARCHAR2,
630 				P_AWARD_STATUS_CODE		IN	VARCHAR2,
631 				P_AWARD_MANAGER_ID		IN	NUMBER,
632 				P_AWARD_ORGANIZATION_ID		IN	NUMBER,
633 				P_FUNDING_SOURCE_ID		IN	NUMBER,
634 				P_FUNDING_SOURCE_AWARD_NUM	IN	VARCHAR2,
635 				P_ALLOWABLE_SCHEDULE		IN	VARCHAR2,
636 				P_INDIRECT_SCHEDULE		IN	VARCHAR2,
637 				P_COST_IND_SCH_FIXED_DATE	IN	DATE,
638 				P_REVENUE_DISTRIBUTION_RULE	IN	VARCHAR2,
639 				P_BILLING_DISTRIBUTION_RULE	IN	VARCHAR2,
640 				P_BILLING_TERM_ID		IN	NUMBER,
641 				P_LABOR_INVOICE_FORMAT_ID	IN	VARCHAR2,
642 				P_NON_LABOR_INVOICE_FORMAT_ID	IN	VARCHAR2,
643 				P_BILLING_CYCLE			IN	VARCHAR2,
644 				P_AMOUNT_TYPE_CODE		IN	VARCHAR2,
645 				P_BOUNDARY_CODE			IN	VARCHAR2,
646 				P_AGREEMENT_TYPE		IN	VARCHAR2,
647 				P_PROPOSAL_ID			IN	NUMBER  ) is
648 	BEGIN
649 		NULL ;
650 	END copy_award ;
651 
652 
653     --
654     -- proc_installment_set_record
655     -- This is a program unit defined to populate
656     -- record group for the parameters supplied
657     -- to the create_installment API.
658     --
659     -- +++++++++++++
660   PROCEDURE proc_installment_set_record (                 /* added the program for bug 12720195 */
661        AWARD_ID                 IN      NUMBER ,
662 			 --INSTALLMENT_NUMBER       IN      NUMBER ,
663 			 INSTALLMENT_NUMBER       IN      VARCHAR2 , --Added for bug14319593
664 			 INSTALLMENT_TYPE_CODE    IN      VARCHAR2 ,
665 			 DESCRIPTION              IN      VARCHAR2  ,
666 			 ISSUE_DATE               IN      DATE ,
667 			 INSTALLMENT_START_DATE   IN      DATE ,
668 			 INSTALLMENT_END_DATE     IN      DATE ,
669 			 INSTALLMENT_CLOSE_DATE   IN      DATE  ,
670 			 ACTIVE_FLAG              IN      VARCHAR2 ,
671 			 BILLABLE_FLAG            IN      VARCHAR2 ,
672 			 DIRECT_COST              IN      NUMBER ,
673 			 INDIRECT_COST            IN      NUMBER ,
674 			 ATTRIBUTE_CATEGORY       IN      VARCHAR2 ,
675 			 ATTRIBUTE1               IN      VARCHAR2 ,
676 			 ATTRIBUTE2               IN      VARCHAR2 ,
677 			 ATTRIBUTE3               IN      VARCHAR2 ,
678 			 ATTRIBUTE4               IN      VARCHAR2 ,
679 			 ATTRIBUTE5               IN      VARCHAR2 ,
680 			 ATTRIBUTE6               IN      VARCHAR2 ,
681 			 ATTRIBUTE7               IN      VARCHAR2 ,
682 			 ATTRIBUTE8               IN      VARCHAR2 ,
683 			 ATTRIBUTE9               IN      VARCHAR2 ,
684 			 ATTRIBUTE10              IN      VARCHAR2 ,
685 			 ATTRIBUTE11              IN      VARCHAR2 ,
686 			 ATTRIBUTE12              IN      VARCHAR2 ,
687 			 ATTRIBUTE13              IN      VARCHAR2 ,
688 			 ATTRIBUTE14              IN      VARCHAR2 ,
689 			 ATTRIBUTE15              IN      VARCHAR2 ,
690 			 PROPOSAL_ID              IN      NUMBER ,
691 			 INSTALLMENT_REC             IN OUT NOCOPY gms_installments%ROWTYPE ) is
692 	BEGIN
693     INSTALLMENT_REC.AWARD_ID           	        :=    AWARD_ID       ;
694     INSTALLMENT_REC.INSTALLMENT_NUM           	:=    INSTALLMENT_NUMBER       ;
695     INSTALLMENT_REC.TYPE 	                     	:=    INSTALLMENT_TYPE_CODE    ;
696     INSTALLMENT_REC.DESCRIPTION                	:=    DESCRIPTION              ;
697     INSTALLMENT_REC.ISSUE_DATE                 	:=    ISSUE_DATE               ;
698     INSTALLMENT_REC.START_DATE_ACTIVE          	:=    INSTALLMENT_START_DATE   ;
699     INSTALLMENT_REC.END_DATE_ACTIVE 	         	:=    INSTALLMENT_END_DATE     ;
700     INSTALLMENT_REC.CLOSE_DATE 	               	:=    INSTALLMENT_CLOSE_DATE   ;
701     INSTALLMENT_REC.ACTIVE_FLAG 	             	:=    ACTIVE_FLAG              ;
702     INSTALLMENT_REC.BILLABLE_FLAG              	:=    BILLABLE_FLAG            ;
703     INSTALLMENT_REC.DIRECT_COST                	:=    DIRECT_COST              ;
704     INSTALLMENT_REC.INDIRECT_COST              	:=    INDIRECT_COST            ;
705     INSTALLMENT_REC.ATTRIBUTE_CATEGORY         	:=    ATTRIBUTE_CATEGORY       ;
706     INSTALLMENT_REC.ATTRIBUTE1 	               	:=    ATTRIBUTE1               ;
707     INSTALLMENT_REC.ATTRIBUTE2 	               	:=    ATTRIBUTE2               ;
708     INSTALLMENT_REC.ATTRIBUTE3 	               	:=    ATTRIBUTE3               ;
709     INSTALLMENT_REC.ATTRIBUTE4 	               	:=    ATTRIBUTE4               ;
710     INSTALLMENT_REC.ATTRIBUTE5 	               	:=    ATTRIBUTE5               ;
711     INSTALLMENT_REC.ATTRIBUTE6 	               	:=    ATTRIBUTE6               ;
712     INSTALLMENT_REC.ATTRIBUTE7 	               	:=    ATTRIBUTE7               ;
713     INSTALLMENT_REC.ATTRIBUTE8 	               	:=    ATTRIBUTE8               ;
714     INSTALLMENT_REC.ATTRIBUTE9 	               	:=    ATTRIBUTE9               ;
715     INSTALLMENT_REC.ATTRIBUTE10 	             	:=    ATTRIBUTE10              ;
716     INSTALLMENT_REC.ATTRIBUTE11  	            	:=    ATTRIBUTE11              ;
717     INSTALLMENT_REC.ATTRIBUTE12 		           	:=    ATTRIBUTE12              ;
718     INSTALLMENT_REC.ATTRIBUTE13 	             	:=    ATTRIBUTE13              ;
719     INSTALLMENT_REC.ATTRIBUTE14 	 	           	:=    ATTRIBUTE14              ;
720     INSTALLMENT_REC.ATTRIBUTE15 	             	:=    ATTRIBUTE15              ;
721     INSTALLMENT_REC.PROPOSAL_ID 	             	:=    PROPOSAL_ID              ;
722 	END proc_installment_set_record ;
723     -- ========================================================================================
724     -- End of utility Functions/Procedures for installment.
725     -- ========================================================================================
726 
727 
728 	-- ===============================================================================
729 	-- CREATE_INSTALLMENT :
730 	-- Create award installment  has all the parameters that we have in gms_installment table.
731 	-- The ID's in the table are replaced by corresponding value. Users must
732 	-- provide decode values instead of code values.
733 	-- X_return_status 	: 	S- Success,
734 	--				E- Business Rule Validation error
735 	--				U- Unexpected Error
736 	-- P_API_VERSION_NUMBER	:	1.0
737 	-- ===============================================================================
738         -- +++++++++++++
739 	PROCEDURE CREATE_INSTALLMENT
740 			(X_MSG_COUNT                OUT NOCOPY     NUMBER ,
741 			 X_MSG_DATA                 OUT NOCOPY     VARCHAR2 ,
742 			 X_return_status            OUT NOCOPY     VARCHAR2 ,
743 			 X_INSTALLMENT_ID           OUT NOCOPY     NUMBER ,
744 			 P_CALLING_MODULE           IN      VARCHAR2 ,
745 			 P_API_VERSION_NUMBER       IN      NUMBER,
746 			 P_LAST_UPDATE_DATE         IN      DATE   ,
747 			 P_LAST_UPDATED_BY          IN      NUMBER ,
748 			 P_CREATED_BY               IN      NUMBER ,
749 			 P_CREATION_DATE            IN      DATE   ,
750 			 P_LAST_UPDATE_LOGIN        IN      NUMBER ,
751 			 P_AWARD_NUMBER             IN      VARCHAR2 ,
752 			 --P_INSTALLMENT_NUMBER       IN      NUMBER ,
753 			 P_INSTALLMENT_NUMBER       IN      VARCHAR2 , --Added for bug14319593
754 			 P_INSTALLMENT_TYPE_CODE    IN      VARCHAR2 ,
755 			 P_DESCRIPTION              IN      VARCHAR2  ,
756 			 P_ISSUE_DATE               IN      DATE ,
757 			 P_INSTALLMENT_START_DATE   IN      DATE ,
758 			 P_INSTALLMENT_END_DATE     IN      DATE ,
759 			 P_INSTALLMENT_CLOSE_DATE   IN      DATE  ,
760 			 P_ACTIVE_FLAG              IN      VARCHAR2 ,
761 			 P_BILLABLE_FLAG            IN      VARCHAR2 ,
762 			 P_DIRECT_COST              IN      NUMBER ,
763 			 P_INDIRECT_COST            IN      NUMBER ,
764 			 P_ATTRIBUTE_CATEGORY       IN      VARCHAR2 ,
765 			 P_ATTRIBUTE1               IN      VARCHAR2 ,
766 			 P_ATTRIBUTE2               IN      VARCHAR2 ,
767 			 P_ATTRIBUTE3               IN      VARCHAR2 ,
768 			 P_ATTRIBUTE4               IN      VARCHAR2 ,
769 			 P_ATTRIBUTE5               IN      VARCHAR2 ,
770 			 P_ATTRIBUTE6               IN      VARCHAR2 ,
771 			 P_ATTRIBUTE7               IN      VARCHAR2 ,
772 			 P_ATTRIBUTE8               IN      VARCHAR2 ,
773 			 P_ATTRIBUTE9               IN      VARCHAR2 ,
774 			 P_ATTRIBUTE10              IN      VARCHAR2 ,
775 			 P_ATTRIBUTE11              IN      VARCHAR2 ,
776 			 P_ATTRIBUTE12              IN      VARCHAR2 ,
777 			 P_ATTRIBUTE13              IN      VARCHAR2 ,
778 			 P_ATTRIBUTE14              IN      VARCHAR2 ,
779 			 P_ATTRIBUTE15              IN      VARCHAR2 ,
780 			 P_PROPOSAL_ID              IN      NUMBER
781 			)  IS
782 
783 		  /* added below code for 12720195 */
784     	  l_api_name              varchar2(50) := 'GMS_AWARD_PUB.CREATE_INSTALLMENT';
785         L_error                 BOOLEAN := FALSE ;
786         L_validate              BOOLEAN := FALSE; --TRUE ;
787 /* Changed for bug14456621 */
788         L_installment_rec       GMS_INSTALLMENTS%ROWTYPE ;
789         L_installment_id        GMS_INSTALLMENTS.INSTALLMENT_ID%TYPE ;
790        	L_row_id	            	varchar2(45) ;
791        	L_award_id              GMS_INSTALLMENTS.AWARD_ID%TYPE;
792 
793      CURSOR C_AWARD is
794         SELECT award_id
795           FROM gms_awards_all
796          WHERE award_number = P_AWARD_NUMBER;
797 
798 	BEGIN
799 	/*	NULL ;    */ /* commented the line and added below code for 12720195 */
800 
801 	G_stage := 'CREATE_INSTALLMENT_BEGINS' ;
802        	init_message_stack  ;
803 
804 	savepoint CREATE_INSTALLMENT_SAVE ;
805 	X_return_status	:= FND_API.G_RET_STS_SUCCESS;
806 
807         G_stage := 'FND_API.Compatible_API_Call' ;
808 
809     	IF NOT FND_API.Compatible_API_Call ( g_api_version_number	,
810 		 	                     p_api_version_number	,
811 			                     l_api_name 	    	,
812 			                     G_PKG_NAME 	    	)
813      	THEN
814 		--RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
815 		RAISE e_ver_mismatch ;
816 	END IF ;
817 
818    G_stage := 'SET RECORD PARAM' ;
819 
820 
821      OPEN C_AWARD ;
822                 FETCH C_AWARD into L_award_id ;
823      IF C_AWARD%NOTFOUND THEN
824 		   add_message_to_stack( P_label => 'GMS_AWARD_INVALID' ) ;
825 		   l_error := TRUE ;
826      END IF ;
827 
828      CLOSE C_AWARD ;
829 
830 
831     proc_installment_set_record (
832        L_award_id,
833 			 P_INSTALLMENT_NUMBER,
834 			 P_INSTALLMENT_TYPE_CODE ,
835 			 P_DESCRIPTION,
836 			 P_ISSUE_DATE,
837 			 P_INSTALLMENT_START_DATE ,
838 			 P_INSTALLMENT_END_DATE ,
839 			 P_INSTALLMENT_CLOSE_DATE ,
840 			 P_ACTIVE_FLAG ,
841 			 P_BILLABLE_FLAG ,
842 			 P_DIRECT_COST ,
843 			 P_INDIRECT_COST ,
844 			 P_ATTRIBUTE_CATEGORY ,
845 			 P_ATTRIBUTE1 ,
846 			 P_ATTRIBUTE2 ,
847 			 P_ATTRIBUTE3 ,
848 			 P_ATTRIBUTE4 ,
849 			 P_ATTRIBUTE5 ,
850 			 P_ATTRIBUTE6 ,
851 			 P_ATTRIBUTE7 ,
852 			 P_ATTRIBUTE8 ,
853 			 P_ATTRIBUTE9 ,
854 			 P_ATTRIBUTE10 ,
855 			 P_ATTRIBUTE11 ,
856 			 P_ATTRIBUTE12 ,
857 			 P_ATTRIBUTE13 ,
858 			 P_ATTRIBUTE14 ,
859 			 P_ATTRIBUTE15 ,
860 			 P_PROPOSAL_ID ,
861 			 L_installment_rec );
862 
863     l_installment_rec.last_updated_by      := NVL(P_LAST_UPDATED_BY, fnd_global.user_id) ;
864 	  l_installment_rec.last_update_date     := NVL(P_LAST_UPDATE_DATE, SYSDATE) ;
865 	  l_installment_rec.created_by           := NVL(P_CREATED_BY, fnd_global.user_id ) ;
866 	  l_installment_rec.creation_date        := NVL(P_CREATION_DATE, SYSDATE) ;
867 	  l_installment_rec.last_update_login    := NVL(P_LAST_UPDATE_LOGIN, fnd_global.user_id ) ;
868 
869           G_stage := 'gms_award_pvt.create_installment' ;
870 	  gms_award_pvt.create_installment( X_msg_count,
871 		                    X_MSG_DATA	,
872 		                    X_return_status	,
873 		                    L_ROW_ID	,
874 		                    X_INSTALLMENT_ID	,
875 		                    P_CALLING_MODULE,
876 		                    P_API_VERSION_NUMBER,
877 		                    L_validate,
878 		                    L_installment_rec	) ;
879 
880           reset_message_flag ;
881 
882         EXCEPTION
883                 WHEN E_VER_MISMATCH THEN
884 			add_message_to_stack( P_label => 'GMS_API_VER_MISMATCH',
885 					      p_token1 => 'SUPVER',
886 					      P_VAL1 => g_api_version_number) ;
887                         set_return_status(X_return_status, 'B' ) ;
888                         x_msg_count := G_msg_count ;
889                         x_msg_data  := G_msg_data ;
890 
891                 WHEN OTHERS THEN
892                         ROLLBACK TO CREATE_INSTALLMENT_SAVE ;
893                         X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
894 
895                         FND_MSG_PUB.add_exc_msg
896                                         ( p_pkg_name            => G_PKG_NAME
897                                         , p_procedure_name      => l_api_name   );
898 
899                         FND_MSG_PUB.Count_And_Get
900                                         (   p_count             =>      x_msg_count     ,
901                                             p_data              =>      x_msg_data      );
902 
903 	END create_installment ;
904 
905 
906 	-- ==========================================================================================
907 	-- Personal or Award Roles are user defined positions or functions that people perform in
908 	-- activities funded by an award. Each Personnel or Award Role is linked to an individual
909 	-- Award .
910 	-- ==========================================================================================
911         -- +++++++++++++
912 	PROCEDURE CREATE_PERSONNEL
913 			(X_MSG_COUNT                OUT NOCOPY     NUMBER ,
914 			 X_MSG_DATA                 OUT NOCOPY     VARCHAR2 ,
915 			 X_return_status            OUT NOCOPY     VARCHAR2 ,
916 			 X_PERSONNEL_ID             OUT NOCOPY     NUMBER ,
917 			 P_CALLING_MODULE           IN      VARCHAR2  ,
918 			 P_API_VERSION_NUMBER       IN      NUMBER ,
919 			 P_LAST_UPDATE_DATE         IN      DATE   ,
920 			 P_LAST_UPDATED_BY          IN      NUMBER ,
921 			 P_CREATED_BY               IN      NUMBER ,
922 			 P_CREATION_DATE            IN      DATE  ,
923 			 P_LAST_UPDATE_LOGIN        IN      NUMBER,
924 			 P_AWARD_NUMBER             IN      VARCHAR2 ,
925 			 P_AWARD_ROLE_CODE          IN      VARCHAR2 ,
926 			 P_PERSON_ID                IN      VARCHAR2 ,
927 			 P_START_DATE_ACTIVE        IN      DATE ,
928 			 P_END_DATE_ACTIVE          IN      DATE ,
929 			 P_REQUIRED_FLAG            IN      VARCHAR2
930  			)IS
931 	BEGIN
932 			NULL ;
933 	END create_personnel ;
934 
935 
936 	-- ===========================================================================
937 	-- Award terms and conditions are stipulated by the Grantor that are indicated
938 	-- in an agreement or contract.
939 	-- ===========================================================================
940         -- +++++++++++++
941 	PROCEDURE CREATE_TERM_CONDITION
942 			(X_MSG_COUNT                OUT NOCOPY     NUMBER ,
943 			 X_MSG_DATA                 OUT NOCOPY     VARCHAR2 ,
944 			 X_return_status            OUT NOCOPY     VARCHAR2 ,
945 			 P_CALLING_MODULE           IN      VARCHAR2 ,
946 			 P_API_VERSION_NUMBER       IN      NUMBER ,
947 			 P_LAST_UPDATE_DATE             IN      DATE   ,
948 			 P_LAST_UPDATED_BY          IN      NUMBER ,
949 			 P_CREATED_BY               IN      NUMBER ,
950 			 P_CREATION_DATE            IN      DATE ,
951 			 P_LAST_UPDATE_LOGIN        IN      NUMBER ,
952 			 P_AWARD_NUMBER             IN      VARCHAR2 ,
953 			 P_CATEGORY_NAME            IN      VARCHAR2 ,
954 			 P_TERM_ID                IN      NUMBER ,
955 			 P_OPERAND                  IN      VARCHAR2 ,
956 			 P_VALUE                    IN      NUMBER
957 			) is
958 	BEGIN
959 			NULL ;
960 	END create_term_condition ;
961 
962 
963 	-- =============================================================================
964 	-- Reference Numbers are user defined values or characters assigned to an award
965 	-- for identification purposes.
966 	-- =============================================================================
967 	PROCEDURE CREATE_REFERENCE_NUMBER
968 			(X_MSG_COUNT                OUT NOCOPY     NUMBER ,
969 			 X_MSG_DATA                 OUT NOCOPY     VARCHAR2 ,
970 			 X_return_status            OUT NOCOPY     VARCHAR2 ,
971 			 P_CALLING_MODULE           IN      VARCHAR2 ,
972 			 P_API_VERSION_NUMBER       IN      NUMBER ,
973 			 P_LAST_UPDATE_DATE	    IN      DATE,
974 			 P_LAST_UPDATED_BY          IN      NUMBER ,
975 			 P_CREATED_BY               IN      NUMBER ,
976 			 P_CREATION_DATE            IN      DATE ,
977 			 P_LAST_UPDATE_LOGIN        IN      NUMBER ,
978 			 P_AWARD_NUMBER             IN      VARCHAR2 ,
979 			 P_REFERENCE_TYPE           IN      VARCHAR2 ,
980 			 P_REFERENCE_VALUE          IN      VARCHAR2 ,
981 			 P_REQUIRED_FLAG	    IN      VARCHAR2
982 			) is
983 	BEGIN
984 		NULL ;
985 	END create_reference_number ;
986 
987 
988 	-- ==========================================================
989 	-- Create Contacts
990 	-- ==========================================================
991 
992 	PROCEDURE CREATE_CONTACT
993 			(X_MSG_COUNT                OUT NOCOPY     NUMBER ,
994 			 X_MSG_DATA                 OUT NOCOPY     VARCHAR2 ,
995 			 X_RETURN_STATUS            OUT NOCOPY     VARCHAR2 ,
996 			 P_CALLING_MODULE           IN      VARCHAR2 ,
997 			 P_API_VERSION_NUMBER       IN      NUMBER ,
998 			 P_LAST_UPDATE_DATE	    IN      DATE,
999 			 P_LAST_UPDATED_BY          IN      NUMBER ,
1000 			 P_CREATED_BY               IN      NUMBER ,
1001 			 P_CREATION_DATE            IN      DATE ,
1002 			 P_LAST_UPDATE_LOGIN        IN      NUMBER ,
1003 			 P_AWARD_NUMBER             IN      VARCHAR2 ,
1004 			 P_CONTACT_ID               IN      NUMBER ,
1005 			 P_PRIMARY_FLAG	            IN      VARCHAR2 ,
1006 			 P_USAGE_CODE	            IN      VARCHAR2
1007 			) IS
1008 	BEGIN
1009 
1010 		NULL ;
1011 	END create_contact ;
1012 
1013 	-- ==========================================================
1014 	-- Create Reports
1015 	-- ==========================================================
1016 	PROCEDURE CREATE_REPORT
1017 			(X_MSG_COUNT                OUT NOCOPY     NUMBER ,
1018 			 X_MSG_DATA                 OUT NOCOPY     VARCHAR2 ,
1019 			 X_RETURN_STATUS            OUT NOCOPY     VARCHAR2 ,
1020 			 X_DEFAULT_REPORT_ID        OUT NOCOPY     NUMBER ,
1021 			 P_CALLING_MODULE           IN      VARCHAR2 ,
1022 			 P_API_VERSION_NUMBER       IN      NUMBER ,
1023 			 P_LAST_UPDATE_DATE	    IN      DATE,
1024 			 P_LAST_UPDATED_BY          IN      NUMBER ,
1025 			 P_CREATED_BY               IN      NUMBER ,
1026 			 P_CREATION_DATE            IN      DATE ,
1027 			 P_LAST_UPDATE_LOGIN        IN      NUMBER ,
1028 			 P_AWARD_NUMBER             IN      VARCHAR2 ,
1029 			 P_REPORT_NAME              IN      VARCHAR2 ,
1030 			 P_FREQUENCY_CODE                IN      VARCHAR2 ,
1031 			 P_DUE_WITHIN_DAYS          IN      NUMBER ,
1032 			 P_SITE_USE_ID	            IN      NUMBER ,
1033 			 P_NUMBER_OF_COPIES         IN      NUMBER
1034 			) IS
1035 	BEGIN
1036 		NULL ;
1037 	END create_report ;
1038 
1039 
1040 /* added below procedure for 12943930 */
1041 	-- ==========================================================
1042 	-- Add Funding
1043 	-- ==========================================================
1044 	PROCEDURE ADD_FUNDING
1045 			(X_MSG_COUNT                IN OUT NOCOPY     	NUMBER ,
1046 			 X_MSG_DATA                 IN OUT NOCOPY     	VARCHAR2 ,
1047 			 X_RETURN_STATUS            IN OUT NOCOPY     	VARCHAR2 ,
1048 			 X_GMS_PROJECT_FUNDING_ID   IN OUT NOCOPY     	NUMBER ,
1049 			 X_ROW_ID	               OUT NOCOPY     	VARCHAR2 ,
1050 			 P_CALLING_MODULE           IN      	VARCHAR2 ,
1051 			 P_API_VERSION_NUMBER       IN      	NUMBER ,
1052 			 P_AWARD_ID		    IN		NUMBER,
1053 			 P_INSTALLMENT_ID	    IN		NUMBER,
1054 			 P_PROJECT_ID		    IN		NUMBER,
1055 			 P_TASK_ID		    IN		NUMBER,
1056 			 P_AMOUNT		    IN		NUMBER,
1057 			 P_FUNDING_DATE		    IN		DATE
1058 			) IS
1059 
1060       l_api_name 			VARCHAR2(30) := 'ADD_FUNDING' ;
1061 
1062 	BEGIN
1063 
1064 
1065 	G_stage := 'ADD_FUNDING_BEGINS' ;
1066 
1067   init_message_stack;
1068 
1069   G_msg_count	  := X_MSG_COUNT ;
1070 	G_msg_data	  := X_MSG_DATA ;
1071 	G_calling_module  := P_CALLING_MODULE ;
1072 
1073 
1074   	-- ============================
1075 		-- Initialize the return status
1076 		-- ============================
1077 
1078 		savepoint add_funding_pub;
1079 
1080     G_stage := 'FND_API.Compatible_API_Call' ;
1081 
1082     IF NOT FND_API.Compatible_API_Call ( g_api_version_number	,
1083 		 	                     p_api_version_number	,
1084 			                     l_api_name 	    	,
1085 			                     G_PKG_NAME 	    	)
1086     THEN
1087 		--RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1088 		RAISE e_ver_mismatch ;
1089   	END IF ;
1090 
1091   	G_stage := 'gms_award_pub.add_funding' ;
1092 
1093 	  gms_award_pvt.add_funding(
1094 		   X_MSG_COUNT ,
1095 			 X_MSG_DATA ,
1096 			 X_RETURN_STATUS ,
1097 			 X_GMS_PROJECT_FUNDING_ID ,
1098 			 X_ROW_ID	,
1099 			 P_CALLING_MODULE ,
1100 			 P_API_VERSION_NUMBER ,
1101 			 P_AWARD_ID	,
1102 			 P_INSTALLMENT_ID ,
1103 			 P_PROJECT_ID	,
1104 			 P_TASK_ID ,
1105 			 P_AMOUNT	,
1106 			 P_FUNDING_DATE
1107     ) ;
1108 
1109 
1110 	EXCEPTION
1111 		WHEN E_VER_MISMATCH THEN
1112 			add_message_to_stack(
1113 				P_LABEL 			=> 	'GMS_API_VER_MISMATCH',
1114 			      	P_TOKEN1 			=> 	'SUPVER',
1115 			      	P_VAL1 				=> 	g_api_version_number) ;
1116 			set_return_status(X_RETURN_STATUS, 'B' ) ;
1117 
1118 			x_msg_count := G_msg_count ;
1119 			x_msg_data  := G_msg_data ;
1120 
1121 
1122 		WHEN OTHERS THEN
1123 			ROLLBACK TO add_funding_pub;
1124 			X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1125 
1126 			FND_MSG_PUB.add_exc_msg
1127 					( P_PKG_NAME		=> 	G_PKG_NAME
1128 					, P_PROCEDURE_NAME	=> 	l_api_name	);
1129 			FND_MSG_PUB.Count_And_Get
1130 					(   P_COUNT		=>	x_msg_count	,
1131 					    P_DATA		=>	x_msg_data	);
1132 
1133 
1134   END ADD_FUNDING ;
1135 
1136 END GMS_AWARD_PUB ;