DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_CONTRACTTMPL_PVT

Source


1 PACKAGE BODY CS_CONTRACTTMPL_PVT AS
2 /* $Header: csctcteb.pls 115.1 99/07/16 08:51:38 porting ship $ */
3   FUNCTION get_seq_id RETURN NUMBER IS
4     CURSOR get_seq_id_csr IS
5       SELECT CS_CONTRACT_TEMPLATES_S.nextval FROM SYS.DUAL;
6       l_seq_id                       NUMBER := 0;
7   BEGIN
8     OPEN get_seq_id_csr;
9     FETCH get_seq_id_csr INTO l_seq_id;
10     CLOSE get_seq_id_csr;
11     RETURN(l_seq_id);
12   END get_seq_id;
13 
14 
15   -- Validation
16   FUNCTION Validate_Item_Attributes
17   (
18     p_contracttmpl_rec IN  ContractTmpl_Rec_Type
19   )
20   RETURN VARCHAR2
21   IS
22     l_return_status	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
23   BEGIN
24     IF p_contracttmpl_rec.name = TAPI_DEV_KIT.G_MISS_CHAR OR
25        p_contracttmpl_rec.name IS NULL
26     THEN
27       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'name');
28       l_return_status := FND_API.G_RET_STS_ERROR;
29     ELSIF p_contracttmpl_rec.contract_type_id = TAPI_DEV_KIT.G_MISS_NUM OR
30           p_contracttmpl_rec.contract_type_id IS NULL
31     THEN
32       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'contract_type_id');
33       l_return_status := FND_API.G_RET_STS_ERROR;
34     ELSIF p_contracttmpl_rec.duration = TAPI_DEV_KIT.G_MISS_NUM OR
35           p_contracttmpl_rec.duration IS NULL
36     THEN
37       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'duration');
38       l_return_status := FND_API.G_RET_STS_ERROR;
39     ELSIF p_contracttmpl_rec.period_code = TAPI_DEV_KIT.G_MISS_CHAR OR
40           p_contracttmpl_rec.period_code IS NULL
41     THEN
42       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'period_code');
43       l_return_status := FND_API.G_RET_STS_ERROR;
44     ELSIF p_contracttmpl_rec.price_list_id = TAPI_DEV_KIT.G_MISS_NUM OR
45           p_contracttmpl_rec.price_list_id IS NULL
46     THEN
47       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'price_list_id');
48       l_return_status := FND_API.G_RET_STS_ERROR;
49     ELSIF p_contracttmpl_rec.currency_code = TAPI_DEV_KIT.G_MISS_CHAR OR
50           p_contracttmpl_rec.currency_code IS NULL
51     THEN
52       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'currency_code');
53       l_return_status := FND_API.G_RET_STS_ERROR;
54     ELSIF p_contracttmpl_rec.terms_id = TAPI_DEV_KIT.G_MISS_NUM OR
55           p_contracttmpl_rec.terms_id IS NULL
56     THEN
57       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'terms_id');
58       l_return_status := FND_API.G_RET_STS_ERROR;
59     ELSIF p_contracttmpl_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE OR
60           p_contracttmpl_rec.last_update_date IS NULL
61     THEN
62       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_update_date');
63       l_return_status := FND_API.G_RET_STS_ERROR;
64     ELSIF p_contracttmpl_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM OR
65           p_contracttmpl_rec.last_updated_by IS NULL
66     THEN
67       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_updated_by');
68       l_return_status := FND_API.G_RET_STS_ERROR;
69     ELSIF p_contracttmpl_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE OR
70           p_contracttmpl_rec.creation_date IS NULL
71     THEN
72       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'creation_date');
73       l_return_status := FND_API.G_RET_STS_ERROR;
74     ELSIF p_contracttmpl_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM OR
75           p_contracttmpl_rec.created_by IS NULL
76     THEN
77       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'created_by');
78       l_return_status := FND_API.G_RET_STS_ERROR;
79     ELSIF p_contracttmpl_rec.start_date_active = TAPI_DEV_KIT.G_MISS_DATE OR
80           p_contracttmpl_rec.start_date_active IS NULL
81     THEN
82       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'start_date_active');
83       l_return_status := FND_API.G_RET_STS_ERROR;
84     ELSIF p_contracttmpl_rec.end_date_active = TAPI_DEV_KIT.G_MISS_DATE OR
85           p_contracttmpl_rec.end_date_active IS NULL
86     THEN
87       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'end_date_active');
88       l_return_status := FND_API.G_RET_STS_ERROR;
89     END IF;
90     RETURN(l_return_status);
91   END Validate_Item_Attributes;
92 
93 
94   ----- Default
95   FUNCTION Default_Item_Attributes
96   (
97     p_contracttmpl_rec IN  ContractTmpl_Rec_Type,
98     l_def_contracttmpl_rec OUT  ContractTmpl_Rec_Type
99   )
100   RETURN VARCHAR2
101   IS
102     l_return_status 	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
103   BEGIN
104     l_def_contracttmpl_rec := p_contracttmpl_rec;
105     l_def_contracttmpl_rec.OBJECT_VERSION_NUMBER := NVL(l_def_contracttmpl_rec.OBJECT_VERSION_NUMBER, 0) + 1;
106     RETURN(l_return_status);
107   End Default_Item_attributes;
108 
109 
110   FUNCTION Validate_Item_Record (
111     p_contracttmpl_rec IN ContractTmpl_Rec_Type
112   )
113   RETURN VARCHAR2 IS
114     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
115     FUNCTION validate_foreign_keys (
116       p_contracttmpl_rec IN ContractTmpl_Rec_Type
117     )
118     RETURN VARCHAR2 IS
119       item_not_found_error          EXCEPTION;
120       CURSOR cs_contract_types_pk_csr (p_contract_type_id   IN NUMBER) IS
121       SELECT *
122         FROM Cs_Contract_Types
123        WHERE cs_contract_types.contract_type_id = p_contract_type_id;
124       l_cs_contract_types_pk         cs_contract_types_pk_csr%ROWTYPE;
125       l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
126       l_row_notfound                 BOOLEAN := TRUE;
127     BEGIN
128       IF (p_contracttmpl_rec.CONTRACT_TYPE_ID IS NOT NULL)
129       THEN
130         OPEN cs_contract_types_pk_csr(p_contracttmpl_rec.CONTRACT_TYPE_ID);
131         FETCH cs_contract_types_pk_csr INTO l_cs_contract_types_pk;
132         l_row_notfound := cs_contract_types_pk_csr%NOTFOUND;
133         CLOSE cs_contract_types_pk_csr;
134         IF (l_row_notfound) THEN
135           TAPI_DEV_KIT.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CONTRACT_TYPE_ID');
136           RAISE item_not_found_error;
137         END IF;
138       END IF;
139       RETURN (l_return_status);
140     EXCEPTION
141       WHEN item_not_found_error THEN
142         l_return_status := FND_API.G_RET_STS_ERROR;
143         RETURN (l_return_status);
144     END validate_foreign_keys;
145   BEGIN
146     l_return_status := validate_foreign_keys (p_contracttmpl_rec);
147     RETURN (l_return_status);
148   END Validate_Item_Record;
149 
150 
151   PROCEDURE migrate (
152     p_from	IN ContractTmpl_Val_Rec_Type,
153     p_to	OUT ContractTmpl_Rec_Type
154   ) IS
155   BEGIN
156     p_to.contract_template_id := p_from.contract_template_id;
157     p_to.name := p_from.name;
158     p_to.contract_type_id := p_from.contract_type_id;
159     p_to.duration := p_from.duration;
160     p_to.period_code := p_from.period_code;
161     p_to.workflow := p_from.workflow;
162     p_to.price_list_id := p_from.price_list_id;
163     p_to.currency_code := p_from.currency_code;
164     p_to.conversion_type_code := p_from.conversion_type_code;
165     p_to.conversion_rate := p_from.conversion_rate;
166     p_to.conversion_date := p_from.conversion_date;
167     p_to.invoicing_rule_id := p_from.invoicing_rule_id;
168     p_to.accounting_rule_id := p_from.accounting_rule_id;
169     p_to.billing_frequency_period := p_from.billing_frequency_period;
170     p_to.create_sales_order := p_from.create_sales_order;
171     p_to.renewal_rule := p_from.renewal_rule;
172     p_to.termination_rule := p_from.termination_rule;
173     p_to.terms_id := p_from.terms_id;
174     p_to.tax_handling := p_from.tax_handling;
175     p_to.tax_exempt_num := p_from.tax_exempt_num;
176     p_to.tax_exempt_reason_code := p_from.tax_exempt_reason_code;
177     p_to.contract_amount := p_from.contract_amount;
178     p_to.discount_id := p_from.discount_id;
179     p_to.last_update_date := p_from.last_update_date;
180     p_to.last_updated_by := p_from.last_updated_by;
181     p_to.creation_date := p_from.creation_date;
182     p_to.created_by := p_from.created_by;
183     p_to.auto_renewal_flag := p_from.auto_renewal_flag;
184     p_to.last_update_login := p_from.last_update_login;
185     p_to.start_date_active := p_from.start_date_active;
186     p_to.end_date_active := p_from.end_date_active;
187     p_to.attribute1 := p_from.attribute1;
188     p_to.attribute2 := p_from.attribute2;
189     p_to.attribute3 := p_from.attribute3;
190     p_to.attribute4 := p_from.attribute4;
191     p_to.attribute5 := p_from.attribute5;
192     p_to.attribute6 := p_from.attribute6;
193     p_to.attribute7 := p_from.attribute7;
194     p_to.attribute8 := p_from.attribute8;
195     p_to.attribute9 := p_from.attribute9;
196     p_to.attribute10 := p_from.attribute10;
197     p_to.attribute11 := p_from.attribute11;
198     p_to.attribute12 := p_from.attribute12;
199     p_to.attribute13 := p_from.attribute13;
200     p_to.attribute14 := p_from.attribute14;
201     p_to.attribute15 := p_from.attribute15;
202     p_to.context := p_from.context;
203     p_to.object_version_number := p_from.object_version_number;
204   END migrate;
205   PROCEDURE migrate (
206     p_from	IN ContractTmpl_Rec_Type,
207     p_to	OUT ContractTmpl_Val_Rec_Type
208   ) IS
209   BEGIN
210     p_to.contract_template_id := p_from.contract_template_id;
211     p_to.name := p_from.name;
212     p_to.contract_type_id := p_from.contract_type_id;
213     p_to.duration := p_from.duration;
214     p_to.period_code := p_from.period_code;
215     p_to.workflow := p_from.workflow;
216     p_to.price_list_id := p_from.price_list_id;
217     p_to.currency_code := p_from.currency_code;
218     p_to.conversion_type_code := p_from.conversion_type_code;
219     p_to.conversion_rate := p_from.conversion_rate;
220     p_to.conversion_date := p_from.conversion_date;
221     p_to.invoicing_rule_id := p_from.invoicing_rule_id;
222     p_to.accounting_rule_id := p_from.accounting_rule_id;
223     p_to.billing_frequency_period := p_from.billing_frequency_period;
224     p_to.create_sales_order := p_from.create_sales_order;
225     p_to.renewal_rule := p_from.renewal_rule;
226     p_to.termination_rule := p_from.termination_rule;
227     p_to.terms_id := p_from.terms_id;
228     p_to.tax_handling := p_from.tax_handling;
229     p_to.tax_exempt_num := p_from.tax_exempt_num;
230     p_to.tax_exempt_reason_code := p_from.tax_exempt_reason_code;
231     p_to.contract_amount := p_from.contract_amount;
232     p_to.discount_id := p_from.discount_id;
233     p_to.last_update_date := p_from.last_update_date;
234     p_to.last_updated_by := p_from.last_updated_by;
235     p_to.creation_date := p_from.creation_date;
236     p_to.created_by := p_from.created_by;
237     p_to.auto_renewal_flag := p_from.auto_renewal_flag;
238     p_to.last_update_login := p_from.last_update_login;
239     p_to.start_date_active := p_from.start_date_active;
240     p_to.end_date_active := p_from.end_date_active;
241     p_to.attribute1 := p_from.attribute1;
242     p_to.attribute2 := p_from.attribute2;
243     p_to.attribute3 := p_from.attribute3;
244     p_to.attribute4 := p_from.attribute4;
245     p_to.attribute5 := p_from.attribute5;
246     p_to.attribute6 := p_from.attribute6;
247     p_to.attribute7 := p_from.attribute7;
248     p_to.attribute8 := p_from.attribute8;
249     p_to.attribute9 := p_from.attribute9;
250     p_to.attribute10 := p_from.attribute10;
251     p_to.attribute11 := p_from.attribute11;
252     p_to.attribute12 := p_from.attribute12;
253     p_to.attribute13 := p_from.attribute13;
254     p_to.attribute14 := p_from.attribute14;
255     p_to.attribute15 := p_from.attribute15;
256     p_to.context := p_from.context;
257     p_to.object_version_number := p_from.object_version_number;
258   END migrate;
259   PROCEDURE insert_row
260   (
261     p_api_version                  IN NUMBER,
262     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
263     p_validation_level             IN NUMBER,
264     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
265     x_return_status                OUT VARCHAR2,
266     x_msg_count                    OUT NUMBER,
267     x_msg_data                     OUT VARCHAR2,
268     p_contracttmpl_rec             IN ContractTmpl_Rec_Type := G_MISS_CONTRACTTMPL_REC,
269     x_contract_template_id         OUT NUMBER,
270     x_object_version_number        OUT NUMBER) IS
271     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
272     l_api_version                  CONSTANT NUMBER := 1;
273     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
274     l_contracttmpl_rec             ContractTmpl_Rec_Type;
275     l_def_contracttmpl_rec         ContractTmpl_Rec_Type;
276   BEGIN
277     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
278                                               G_PKG_NAME,
279                                               l_api_version,
280                                               p_api_version,
281                                               p_init_msg_list,
282                                               '_Pvt',
283                                               x_return_status);
284     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
285       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
286     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
287       RAISE FND_API.G_EXC_ERROR;
288     END IF;
289     l_contracttmpl_rec := p_contracttmpl_rec;
290     --- Validate all non-missing attributes (Item Level Validation)
291     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
292       l_return_status := Validate_Item_Attributes
293       (
294         l_contracttmpl_rec    ---- IN
295       );
296       --- If any errors happen abort API
297       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
298         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
299       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
300         RAISE FND_API.G_EXC_ERROR;
301       END IF;
302     END IF;
303     --- Defaulting item attributes
304     l_return_status := Default_Item_Attributes
305     (
306       l_contracttmpl_rec,    ---- IN
307       l_def_contracttmpl_rec
308     );
309     --- If any errors happen abort API
310     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
311       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
312     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
313       RAISE FND_API.G_EXC_ERROR;
314     END IF;
318         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
315     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
316       l_return_status := Validate_Item_Record(l_def_contracttmpl_rec);
317       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
319       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
320         RAISE FND_API.G_EXC_ERROR;
321       END IF;
322     END IF;
323     -- Set primary key value
324     l_def_contracttmpl_rec.contract_template_id := get_seq_id;
325     INSERT INTO CS_CONTRACT_TEMPLATES(
326         contract_template_id,
327         name,
328         contract_type_id,
329         duration,
330         period_code,
331         workflow,
332         price_list_id,
333         currency_code,
334         conversion_type_code,
335         conversion_rate,
336         conversion_date,
337         invoicing_rule_id,
338         accounting_rule_id,
339         billing_frequency_period,
340         create_sales_order,
341         renewal_rule,
342         termination_rule,
343         terms_id,
344         tax_handling,
345         tax_exempt_num,
346         tax_exempt_reason_code,
347         contract_amount,
348         discount_id,
349         last_update_date,
350         last_updated_by,
351         creation_date,
352         created_by,
353         auto_renewal_flag,
354         last_update_login,
355         start_date_active,
356         end_date_active,
357         attribute1,
358         attribute2,
359         attribute3,
360         attribute4,
361         attribute5,
362         attribute6,
363         attribute7,
364         attribute8,
365         attribute9,
366         attribute10,
367         attribute11,
368         attribute12,
369         attribute13,
370         attribute14,
371         attribute15,
372         context,
373         object_version_number)
374       VALUES (
375         l_def_contracttmpl_rec.contract_template_id,
376         l_def_contracttmpl_rec.name,
377         l_def_contracttmpl_rec.contract_type_id,
378         l_def_contracttmpl_rec.duration,
379         l_def_contracttmpl_rec.period_code,
380         l_def_contracttmpl_rec.workflow,
381         l_def_contracttmpl_rec.price_list_id,
382         l_def_contracttmpl_rec.currency_code,
383         l_def_contracttmpl_rec.conversion_type_code,
384         l_def_contracttmpl_rec.conversion_rate,
385         l_def_contracttmpl_rec.conversion_date,
386         l_def_contracttmpl_rec.invoicing_rule_id,
387         l_def_contracttmpl_rec.accounting_rule_id,
388         l_def_contracttmpl_rec.billing_frequency_period,
389         l_def_contracttmpl_rec.create_sales_order,
390         l_def_contracttmpl_rec.renewal_rule,
391         l_def_contracttmpl_rec.termination_rule,
392         l_def_contracttmpl_rec.terms_id,
393         l_def_contracttmpl_rec.tax_handling,
394         l_def_contracttmpl_rec.tax_exempt_num,
395         l_def_contracttmpl_rec.tax_exempt_reason_code,
396         l_def_contracttmpl_rec.contract_amount,
397         l_def_contracttmpl_rec.discount_id,
398         l_def_contracttmpl_rec.last_update_date,
399         l_def_contracttmpl_rec.last_updated_by,
400         l_def_contracttmpl_rec.creation_date,
401         l_def_contracttmpl_rec.created_by,
402         l_def_contracttmpl_rec.auto_renewal_flag,
403         l_def_contracttmpl_rec.last_update_login,
404         l_def_contracttmpl_rec.start_date_active,
405         l_def_contracttmpl_rec.end_date_active,
406         l_def_contracttmpl_rec.attribute1,
407         l_def_contracttmpl_rec.attribute2,
408         l_def_contracttmpl_rec.attribute3,
409         l_def_contracttmpl_rec.attribute4,
410         l_def_contracttmpl_rec.attribute5,
411         l_def_contracttmpl_rec.attribute6,
412         l_def_contracttmpl_rec.attribute7,
413         l_def_contracttmpl_rec.attribute8,
414         l_def_contracttmpl_rec.attribute9,
415         l_def_contracttmpl_rec.attribute10,
416         l_def_contracttmpl_rec.attribute11,
417         l_def_contracttmpl_rec.attribute12,
418         l_def_contracttmpl_rec.attribute13,
419         l_def_contracttmpl_rec.attribute14,
420         l_def_contracttmpl_rec.attribute15,
421         l_def_contracttmpl_rec.context,
422         l_def_contracttmpl_rec.object_version_number);
423     -- Set OUT values
424     x_contract_template_id := l_def_contracttmpl_rec.contract_template_id;
425     x_object_version_number       := l_def_contracttmpl_rec.OBJECT_VERSION_NUMBER;
426     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
427   EXCEPTION
428     WHEN FND_API.G_EXC_ERROR THEN
429       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
430       (
431         l_api_name,
432         G_PKG_NAME,
433         'FND_API.G_RET_STS_ERROR',
434         x_msg_count,
435         x_msg_data,
436         '_Pvt'
437       );
438     APP_EXCEPTION.RAISE_EXCEPTION;
439     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
440       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
441       (
442         l_api_name,
443         G_PKG_NAME,
444         'FND_API.G_RET_STS_UNEXP_ERROR',
445         x_msg_count,
446         x_msg_data,
447         '_Pvt'
448       );
449     APP_EXCEPTION.RAISE_EXCEPTION;
450     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
451       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
452       (
453         l_api_name,
454         G_PKG_NAME,
455         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
456         x_msg_count,
457         x_msg_data,
458         '_Pvt'
459       );
460     APP_EXCEPTION.RAISE_EXCEPTION;
461   END insert_row;
462   PROCEDURE insert_row
463   (
467     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
464     p_api_version                  IN NUMBER,
465     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
466     p_validation_level             IN NUMBER,
468     x_return_status                OUT VARCHAR2,
469     x_msg_count                    OUT NUMBER,
470     x_msg_data                     OUT VARCHAR2,
471     p_name                         IN CS_CONTRACT_TEMPLATES.NAME%TYPE := NULL,
472     p_contract_type_id             IN NUMBER := NULL,
473     p_duration                     IN NUMBER := NULL,
474     p_period_code                  IN CS_CONTRACT_TEMPLATES.PERIOD_CODE%TYPE := NULL,
475     p_workflow                     IN CS_CONTRACT_TEMPLATES.WORKFLOW%TYPE := NULL,
476     p_price_list_id                IN NUMBER := NULL,
477     p_currency_code                IN CS_CONTRACT_TEMPLATES.CURRENCY_CODE%TYPE := NULL,
478     p_conversion_type_code         IN CS_CONTRACT_TEMPLATES.CONVERSION_TYPE_CODE%TYPE := NULL,
479     p_conversion_rate              IN NUMBER := NULL,
480     p_conversion_date              IN CS_CONTRACT_TEMPLATES.CONVERSION_DATE%TYPE := NULL,
481     p_invoicing_rule_id            IN NUMBER := NULL,
482     p_accounting_rule_id           IN NUMBER := NULL,
483     p_billing_frequency_period     IN CS_CONTRACT_TEMPLATES.BILLING_FREQUENCY_PERIOD%TYPE := NULL,
484     p_create_sales_order           IN CS_CONTRACT_TEMPLATES.CREATE_SALES_ORDER%TYPE := NULL,
485     p_renewal_rule                 IN CS_CONTRACT_TEMPLATES.RENEWAL_RULE%TYPE := NULL,
486     p_termination_rule             IN CS_CONTRACT_TEMPLATES.TERMINATION_RULE%TYPE := NULL,
487     p_terms_id                     IN NUMBER := NULL,
488     p_tax_handling                 IN CS_CONTRACT_TEMPLATES.TAX_HANDLING%TYPE := NULL,
489     p_tax_exempt_num               IN CS_CONTRACT_TEMPLATES.TAX_EXEMPT_NUM%TYPE := NULL,
490     p_tax_exempt_reason_code       IN CS_CONTRACT_TEMPLATES.TAX_EXEMPT_REASON_CODE%TYPE := NULL,
491     p_contract_amount              IN NUMBER := NULL,
492     p_discount_id                  IN NUMBER := NULL,
493     p_last_update_date             IN CS_CONTRACT_TEMPLATES.LAST_UPDATE_DATE%TYPE := NULL,
494     p_last_updated_by              IN NUMBER := NULL,
495     p_creation_date                IN CS_CONTRACT_TEMPLATES.CREATION_DATE%TYPE := NULL,
496     p_created_by                   IN NUMBER := NULL,
497     p_auto_renewal_flag            IN CS_CONTRACT_TEMPLATES.AUTO_RENEWAL_FLAG%TYPE := NULL,
498     p_last_update_login            IN NUMBER := NULL,
499     p_start_date_active            IN CS_CONTRACT_TEMPLATES.START_DATE_ACTIVE%TYPE := NULL,
500     p_end_date_active              IN CS_CONTRACT_TEMPLATES.END_DATE_ACTIVE%TYPE := NULL,
501     p_attribute1                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE1%TYPE := NULL,
502     p_attribute2                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE2%TYPE := NULL,
503     p_attribute3                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE3%TYPE := NULL,
504     p_attribute4                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE4%TYPE := NULL,
505     p_attribute5                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE5%TYPE := NULL,
506     p_attribute6                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE6%TYPE := NULL,
507     p_attribute7                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE7%TYPE := NULL,
508     p_attribute8                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE8%TYPE := NULL,
509     p_attribute9                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE9%TYPE := NULL,
510     p_attribute10                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE10%TYPE := NULL,
511     p_attribute11                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE11%TYPE := NULL,
512     p_attribute12                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE12%TYPE := NULL,
513     p_attribute13                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE13%TYPE := NULL,
514     p_attribute14                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE14%TYPE := NULL,
515     p_attribute15                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE15%TYPE := NULL,
516     p_context                      IN CS_CONTRACT_TEMPLATES.CONTEXT%TYPE := NULL,
517     p_object_version_number        IN NUMBER := NULL,
518     x_contract_template_id         OUT NUMBER,
519     x_object_version_number        OUT NUMBER) IS
520     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
521     l_api_version                  CONSTANT NUMBER := 1;
522     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
523     l_contracttmpl_rec             ContractTmpl_Rec_Type;
524   BEGIN
525     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
526                                               G_PKG_NAME,
527                                               l_api_version,
528                                               p_api_version,
529                                               p_init_msg_list,
530                                               '_Pvt',
531                                               x_return_status);
532     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
533       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
534     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
535       RAISE FND_API.G_EXC_ERROR;
536     END IF;
537     l_contracttmpl_rec.NAME := p_name;
538     l_contracttmpl_rec.CONTRACT_TYPE_ID := p_contract_type_id;
539     l_contracttmpl_rec.DURATION := p_duration;
540     l_contracttmpl_rec.PERIOD_CODE := p_period_code;
541     l_contracttmpl_rec.WORKFLOW := p_workflow;
542     l_contracttmpl_rec.PRICE_LIST_ID := p_price_list_id;
543     l_contracttmpl_rec.CURRENCY_CODE := p_currency_code;
544     l_contracttmpl_rec.CONVERSION_TYPE_CODE := p_conversion_type_code;
545     l_contracttmpl_rec.CONVERSION_RATE := p_conversion_rate;
546     l_contracttmpl_rec.CONVERSION_DATE := p_conversion_date;
547     l_contracttmpl_rec.INVOICING_RULE_ID := p_invoicing_rule_id;
548     l_contracttmpl_rec.ACCOUNTING_RULE_ID := p_accounting_rule_id;
549     l_contracttmpl_rec.BILLING_FREQUENCY_PERIOD := p_billing_frequency_period;
550     l_contracttmpl_rec.CREATE_SALES_ORDER := p_create_sales_order;
551     l_contracttmpl_rec.RENEWAL_RULE := p_renewal_rule;
555     l_contracttmpl_rec.TAX_EXEMPT_NUM := p_tax_exempt_num;
552     l_contracttmpl_rec.TERMINATION_RULE := p_termination_rule;
553     l_contracttmpl_rec.TERMS_ID := p_terms_id;
554     l_contracttmpl_rec.TAX_HANDLING := p_tax_handling;
556     l_contracttmpl_rec.TAX_EXEMPT_REASON_CODE := p_tax_exempt_reason_code;
557     l_contracttmpl_rec.CONTRACT_AMOUNT := p_contract_amount;
558     l_contracttmpl_rec.DISCOUNT_ID := p_discount_id;
559     l_contracttmpl_rec.LAST_UPDATE_DATE := p_last_update_date;
560     l_contracttmpl_rec.LAST_UPDATED_BY := p_last_updated_by;
561     l_contracttmpl_rec.CREATION_DATE := p_creation_date;
562     l_contracttmpl_rec.CREATED_BY := p_created_by;
563     l_contracttmpl_rec.AUTO_RENEWAL_FLAG := p_auto_renewal_flag;
564     l_contracttmpl_rec.LAST_UPDATE_LOGIN := p_last_update_login;
565     l_contracttmpl_rec.START_DATE_ACTIVE := p_start_date_active;
566     l_contracttmpl_rec.END_DATE_ACTIVE := p_end_date_active;
567     l_contracttmpl_rec.ATTRIBUTE1 := p_attribute1;
568     l_contracttmpl_rec.ATTRIBUTE2 := p_attribute2;
569     l_contracttmpl_rec.ATTRIBUTE3 := p_attribute3;
570     l_contracttmpl_rec.ATTRIBUTE4 := p_attribute4;
571     l_contracttmpl_rec.ATTRIBUTE5 := p_attribute5;
572     l_contracttmpl_rec.ATTRIBUTE6 := p_attribute6;
573     l_contracttmpl_rec.ATTRIBUTE7 := p_attribute7;
574     l_contracttmpl_rec.ATTRIBUTE8 := p_attribute8;
575     l_contracttmpl_rec.ATTRIBUTE9 := p_attribute9;
576     l_contracttmpl_rec.ATTRIBUTE10 := p_attribute10;
577     l_contracttmpl_rec.ATTRIBUTE11 := p_attribute11;
578     l_contracttmpl_rec.ATTRIBUTE12 := p_attribute12;
579     l_contracttmpl_rec.ATTRIBUTE13 := p_attribute13;
580     l_contracttmpl_rec.ATTRIBUTE14 := p_attribute14;
581     l_contracttmpl_rec.ATTRIBUTE15 := p_attribute15;
582     l_contracttmpl_rec.CONTEXT := p_context;
583     l_contracttmpl_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
584     insert_row(
585       p_api_version,
586       p_init_msg_list,
587       p_validation_level,
588       p_commit,
589       x_return_status,
590       x_msg_count,
591       x_msg_data,
592       l_contracttmpl_rec,
593       x_contract_template_id,
594       x_object_version_number
595     );
596     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
597   EXCEPTION
598     WHEN FND_API.G_EXC_ERROR THEN
599       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
600       (
601         l_api_name,
602         G_PKG_NAME,
603         'FND_API.G_RET_STS_ERROR',
604         x_msg_count,
605         x_msg_data,
606         '_Pvt'
607       );
608     APP_EXCEPTION.RAISE_EXCEPTION;
609     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
610       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
611       (
612         l_api_name,
613         G_PKG_NAME,
614         'FND_API.G_RET_STS_UNEXP_ERROR',
615         x_msg_count,
616         x_msg_data,
617         '_Pvt'
618       );
619     APP_EXCEPTION.RAISE_EXCEPTION;
620     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
621       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
622       (
623         l_api_name,
624         G_PKG_NAME,
625         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
626         x_msg_count,
627         x_msg_data,
628         '_Pvt'
629       );
630     APP_EXCEPTION.RAISE_EXCEPTION;
631   END insert_row;
632   Procedure lock_row
633   (
634     p_api_version                  IN NUMBER,
635     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
636     p_validation_level             IN NUMBER,
637     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
638     x_return_status                OUT VARCHAR2,
639     x_msg_count                    OUT NUMBER,
640     x_msg_data                     OUT VARCHAR2,
641     p_contract_template_id         IN NUMBER,
642     p_object_version_number        IN NUMBER) IS
643     E_Resource_Busy               EXCEPTION;
644     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
645     CURSOR lock_csr IS
646     SELECT OBJECT_VERSION_NUMBER
647      FROM CS_CONTRACT_TEMPLATES
648     WHERE
649       CONTRACT_TEMPLATE_ID = p_contract_template_id AND
650       OBJECT_VERSION_NUMBER = p_object_version_number
651     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
652 
653     CURSOR  lchk_csr IS
654     SELECT OBJECT_VERSION_NUMBER
655      FROM CS_CONTRACT_TEMPLATES
656     WHERE
657       CONTRACT_TEMPLATE_ID = p_contract_template_id
658       ;
659     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_row';
660     l_api_version                  CONSTANT NUMBER := 1;
661     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
662     l_object_version_number       CS_CONTRACT_TEMPLATES.OBJECT_VERSION_NUMBER%TYPE;
663     lc_object_version_number      CS_CONTRACT_TEMPLATES.OBJECT_VERSION_NUMBER%TYPE;
664     l_row_notfound                BOOLEAN := FALSE;
665     lc_row_notfound               BOOLEAN := FALSE;
666   BEGIN
667     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
668                                               G_PKG_NAME,
669                                               l_api_version,
670                                               p_api_version,
671                                               p_init_msg_list,
672                                               '_Pvt',
673                                               x_return_status);
674     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
675       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
676     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
677       RAISE FND_API.G_EXC_ERROR;
678     END IF;
679     BEGIN
680       OPEN lock_csr;
681       FETCH lock_csr INTO l_object_version_number;
682       l_row_notfound := lock_csr%NOTFOUND;
683       CLOSE lock_csr;
687           CLOSE lock_csr;
684     EXCEPTION
685       WHEN E_Resource_Busy THEN
686         IF (lock_csr%ISOPEN) THEN
688         END IF;
689         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
690         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
691     END;
692 
693     IF ( l_row_notfound ) THEN
694       OPEN lchk_csr;
695       FETCH lchk_csr INTO lc_object_version_number;
696       lc_row_notfound := lchk_csr%NOTFOUND;
697       CLOSE lchk_csr;
698     END IF;
699     IF (lc_row_notfound) THEN
700       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
701       RAISE FND_API.G_EXC_ERROR;
702     ELSIF lc_object_version_number > p_object_version_number THEN
703       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
704       RAISE FND_API.G_EXC_ERROR;
705     ELSIF lc_object_version_number <> p_object_version_number THEN
706       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
707       RAISE FND_API.G_EXC_ERROR;
708     ELSIF lc_object_version_number = -1 THEN
709       TAPI_DEV_KIT.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
710       RAISE FND_API.G_EXC_ERROR;
711     END IF;
712     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
713   EXCEPTION
714     WHEN FND_API.G_EXC_ERROR THEN
715       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
716       (
717         l_api_name,
718         G_PKG_NAME,
719         'FND_API.G_RET_STS_ERROR',
720         x_msg_count,
721         x_msg_data,
722         '_Pvt'
723       );
724     APP_EXCEPTION.RAISE_EXCEPTION;
725     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
726       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
727       (
728         l_api_name,
729         G_PKG_NAME,
730         'FND_API.G_RET_STS_UNEXP_ERROR',
731         x_msg_count,
732         x_msg_data,
733         '_Pvt'
734       );
735     APP_EXCEPTION.RAISE_EXCEPTION;
736     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
737       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
738       (
739         l_api_name,
740         G_PKG_NAME,
741         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
742         x_msg_count,
743         x_msg_data,
744         '_Pvt'
745       );
746     APP_EXCEPTION.RAISE_EXCEPTION;
747   END lock_row;
748   Procedure update_row
749   (
750     p_api_version                  IN NUMBER,
751     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
752     p_validation_level             IN NUMBER,
753     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
754     x_return_status                OUT VARCHAR2,
755     x_msg_count                    OUT NUMBER,
756     x_msg_data                     OUT VARCHAR2,
757     p_contracttmpl_val_rec         IN ContractTmpl_Val_Rec_Type := G_MISS_CONTRACTTMPL_VAL_REC,
758     x_object_version_number        OUT NUMBER) IS
759     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
760     l_api_version                  CONSTANT NUMBER := 1;
761     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
762     l_contracttmpl_rec             ContractTmpl_Rec_Type;
763     l_def_contracttmpl_rec         ContractTmpl_Rec_Type;
764     FUNCTION populate_new_record (
765       p_contracttmpl_rec	IN ContractTmpl_Rec_Type,
766       x_contracttmpl_rec	OUT ContractTmpl_Rec_Type
767     ) RETURN VARCHAR2 IS
768       CURSOR cs_contract_templates_pk_csr (p_contract_template_id  IN NUMBER) IS
769       SELECT *
770         FROM Cs_Contract_Templates
771        WHERE cs_contract_templates.contract_template_id = p_contract_template_id;
772       l_cs_contract_templates_pk     cs_contract_templates_pk_csr%ROWTYPE;
773       l_row_notfound		BOOLEAN := TRUE;
774       l_return_status		VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
775     BEGIN
776       x_contracttmpl_rec := p_contracttmpl_rec;
777       -- Get current database values
778       OPEN cs_contract_templates_pk_csr (p_contracttmpl_rec.contract_template_id);
779       FETCH cs_contract_templates_pk_csr INTO l_cs_contract_templates_pk;
780       l_row_notfound := cs_contract_templates_pk_csr%NOTFOUND;
781       CLOSE cs_contract_templates_pk_csr;
782       IF (l_row_notfound) THEN
783         l_return_status := FND_API.G_RET_STS_ERROR;
784       END IF;
785       IF (x_contracttmpl_rec.contract_template_id = TAPI_DEV_KIT.G_MISS_NUM)
786       THEN
787         x_contracttmpl_rec.contract_template_id := l_cs_contract_templates_pk.contract_template_id;
788       END IF;
789       IF (x_contracttmpl_rec.name = TAPI_DEV_KIT.G_MISS_CHAR)
790       THEN
791         x_contracttmpl_rec.name := l_cs_contract_templates_pk.name;
792       END IF;
793       IF (x_contracttmpl_rec.contract_type_id = TAPI_DEV_KIT.G_MISS_NUM)
794       THEN
795         x_contracttmpl_rec.contract_type_id := l_cs_contract_templates_pk.contract_type_id;
796       END IF;
797       IF (x_contracttmpl_rec.duration = TAPI_DEV_KIT.G_MISS_NUM)
798       THEN
799         x_contracttmpl_rec.duration := l_cs_contract_templates_pk.duration;
800       END IF;
801       IF (x_contracttmpl_rec.period_code = TAPI_DEV_KIT.G_MISS_CHAR)
802       THEN
803         x_contracttmpl_rec.period_code := l_cs_contract_templates_pk.period_code;
804       END IF;
805       IF (x_contracttmpl_rec.workflow = TAPI_DEV_KIT.G_MISS_CHAR)
806       THEN
807         x_contracttmpl_rec.workflow := l_cs_contract_templates_pk.workflow;
808       END IF;
809       IF (x_contracttmpl_rec.price_list_id = TAPI_DEV_KIT.G_MISS_NUM)
810       THEN
811         x_contracttmpl_rec.price_list_id := l_cs_contract_templates_pk.price_list_id;
812       END IF;
813       IF (x_contracttmpl_rec.currency_code = TAPI_DEV_KIT.G_MISS_CHAR)
814       THEN
815         x_contracttmpl_rec.currency_code := l_cs_contract_templates_pk.currency_code;
819         x_contracttmpl_rec.conversion_type_code := l_cs_contract_templates_pk.conversion_type_code;
816       END IF;
817       IF (x_contracttmpl_rec.conversion_type_code = TAPI_DEV_KIT.G_MISS_CHAR)
818       THEN
820       END IF;
821       IF (x_contracttmpl_rec.conversion_rate = TAPI_DEV_KIT.G_MISS_NUM)
822       THEN
823         x_contracttmpl_rec.conversion_rate := l_cs_contract_templates_pk.conversion_rate;
824       END IF;
825       IF (x_contracttmpl_rec.conversion_date = TAPI_DEV_KIT.G_MISS_DATE)
826       THEN
827         x_contracttmpl_rec.conversion_date := l_cs_contract_templates_pk.conversion_date;
828       END IF;
829       IF (x_contracttmpl_rec.invoicing_rule_id = TAPI_DEV_KIT.G_MISS_NUM)
830       THEN
831         x_contracttmpl_rec.invoicing_rule_id := l_cs_contract_templates_pk.invoicing_rule_id;
832       END IF;
833       IF (x_contracttmpl_rec.accounting_rule_id = TAPI_DEV_KIT.G_MISS_NUM)
834       THEN
835         x_contracttmpl_rec.accounting_rule_id := l_cs_contract_templates_pk.accounting_rule_id;
836       END IF;
837       IF (x_contracttmpl_rec.billing_frequency_period = TAPI_DEV_KIT.G_MISS_CHAR)
838       THEN
839         x_contracttmpl_rec.billing_frequency_period := l_cs_contract_templates_pk.billing_frequency_period;
840       END IF;
841       IF (x_contracttmpl_rec.create_sales_order = TAPI_DEV_KIT.G_MISS_CHAR)
842       THEN
843         x_contracttmpl_rec.create_sales_order := l_cs_contract_templates_pk.create_sales_order;
844       END IF;
845       IF (x_contracttmpl_rec.renewal_rule = TAPI_DEV_KIT.G_MISS_CHAR)
846       THEN
847         x_contracttmpl_rec.renewal_rule := l_cs_contract_templates_pk.renewal_rule;
848       END IF;
849       IF (x_contracttmpl_rec.termination_rule = TAPI_DEV_KIT.G_MISS_CHAR)
850       THEN
851         x_contracttmpl_rec.termination_rule := l_cs_contract_templates_pk.termination_rule;
852       END IF;
853       IF (x_contracttmpl_rec.terms_id = TAPI_DEV_KIT.G_MISS_NUM)
854       THEN
855         x_contracttmpl_rec.terms_id := l_cs_contract_templates_pk.terms_id;
856       END IF;
857       IF (x_contracttmpl_rec.tax_handling = TAPI_DEV_KIT.G_MISS_CHAR)
858       THEN
859         x_contracttmpl_rec.tax_handling := l_cs_contract_templates_pk.tax_handling;
860       END IF;
861       IF (x_contracttmpl_rec.tax_exempt_num = TAPI_DEV_KIT.G_MISS_CHAR)
862       THEN
863         x_contracttmpl_rec.tax_exempt_num := l_cs_contract_templates_pk.tax_exempt_num;
864       END IF;
865       IF (x_contracttmpl_rec.tax_exempt_reason_code = TAPI_DEV_KIT.G_MISS_CHAR)
866       THEN
867         x_contracttmpl_rec.tax_exempt_reason_code := l_cs_contract_templates_pk.tax_exempt_reason_code;
868       END IF;
869       IF (x_contracttmpl_rec.contract_amount = TAPI_DEV_KIT.G_MISS_NUM)
870       THEN
871         x_contracttmpl_rec.contract_amount := l_cs_contract_templates_pk.contract_amount;
872       END IF;
873       IF (x_contracttmpl_rec.discount_id = TAPI_DEV_KIT.G_MISS_NUM)
874       THEN
875         x_contracttmpl_rec.discount_id := l_cs_contract_templates_pk.discount_id;
876       END IF;
877       IF (x_contracttmpl_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE)
878       THEN
879         x_contracttmpl_rec.last_update_date := l_cs_contract_templates_pk.last_update_date;
880       END IF;
881       IF (x_contracttmpl_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM)
882       THEN
883         x_contracttmpl_rec.last_updated_by := l_cs_contract_templates_pk.last_updated_by;
884       END IF;
885       IF (x_contracttmpl_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE)
886       THEN
887         x_contracttmpl_rec.creation_date := l_cs_contract_templates_pk.creation_date;
888       END IF;
889       IF (x_contracttmpl_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM)
890       THEN
891         x_contracttmpl_rec.created_by := l_cs_contract_templates_pk.created_by;
892       END IF;
893       IF (x_contracttmpl_rec.auto_renewal_flag = TAPI_DEV_KIT.G_MISS_CHAR)
894       THEN
895         x_contracttmpl_rec.auto_renewal_flag := l_cs_contract_templates_pk.auto_renewal_flag;
896       END IF;
897       IF (x_contracttmpl_rec.last_update_login = TAPI_DEV_KIT.G_MISS_NUM)
898       THEN
899         x_contracttmpl_rec.last_update_login := l_cs_contract_templates_pk.last_update_login;
900       END IF;
901       IF (x_contracttmpl_rec.start_date_active = TAPI_DEV_KIT.G_MISS_DATE)
902       THEN
903         x_contracttmpl_rec.start_date_active := l_cs_contract_templates_pk.start_date_active;
904       END IF;
905       IF (x_contracttmpl_rec.end_date_active = TAPI_DEV_KIT.G_MISS_DATE)
906       THEN
907         x_contracttmpl_rec.end_date_active := l_cs_contract_templates_pk.end_date_active;
908       END IF;
909       IF (x_contracttmpl_rec.attribute1 = TAPI_DEV_KIT.G_MISS_CHAR)
910       THEN
911         x_contracttmpl_rec.attribute1 := l_cs_contract_templates_pk.attribute1;
912       END IF;
913       IF (x_contracttmpl_rec.attribute2 = TAPI_DEV_KIT.G_MISS_CHAR)
914       THEN
915         x_contracttmpl_rec.attribute2 := l_cs_contract_templates_pk.attribute2;
916       END IF;
917       IF (x_contracttmpl_rec.attribute3 = TAPI_DEV_KIT.G_MISS_CHAR)
918       THEN
919         x_contracttmpl_rec.attribute3 := l_cs_contract_templates_pk.attribute3;
920       END IF;
921       IF (x_contracttmpl_rec.attribute4 = TAPI_DEV_KIT.G_MISS_CHAR)
922       THEN
923         x_contracttmpl_rec.attribute4 := l_cs_contract_templates_pk.attribute4;
924       END IF;
925       IF (x_contracttmpl_rec.attribute5 = TAPI_DEV_KIT.G_MISS_CHAR)
926       THEN
927         x_contracttmpl_rec.attribute5 := l_cs_contract_templates_pk.attribute5;
928       END IF;
929       IF (x_contracttmpl_rec.attribute6 = TAPI_DEV_KIT.G_MISS_CHAR)
930       THEN
931         x_contracttmpl_rec.attribute6 := l_cs_contract_templates_pk.attribute6;
932       END IF;
933       IF (x_contracttmpl_rec.attribute7 = TAPI_DEV_KIT.G_MISS_CHAR)
934       THEN
938       THEN
935         x_contracttmpl_rec.attribute7 := l_cs_contract_templates_pk.attribute7;
936       END IF;
937       IF (x_contracttmpl_rec.attribute8 = TAPI_DEV_KIT.G_MISS_CHAR)
939         x_contracttmpl_rec.attribute8 := l_cs_contract_templates_pk.attribute8;
940       END IF;
941       IF (x_contracttmpl_rec.attribute9 = TAPI_DEV_KIT.G_MISS_CHAR)
942       THEN
943         x_contracttmpl_rec.attribute9 := l_cs_contract_templates_pk.attribute9;
944       END IF;
945       IF (x_contracttmpl_rec.attribute10 = TAPI_DEV_KIT.G_MISS_CHAR)
946       THEN
947         x_contracttmpl_rec.attribute10 := l_cs_contract_templates_pk.attribute10;
948       END IF;
949       IF (x_contracttmpl_rec.attribute11 = TAPI_DEV_KIT.G_MISS_CHAR)
950       THEN
951         x_contracttmpl_rec.attribute11 := l_cs_contract_templates_pk.attribute11;
952       END IF;
953       IF (x_contracttmpl_rec.attribute12 = TAPI_DEV_KIT.G_MISS_CHAR)
954       THEN
955         x_contracttmpl_rec.attribute12 := l_cs_contract_templates_pk.attribute12;
956       END IF;
957       IF (x_contracttmpl_rec.attribute13 = TAPI_DEV_KIT.G_MISS_CHAR)
958       THEN
959         x_contracttmpl_rec.attribute13 := l_cs_contract_templates_pk.attribute13;
960       END IF;
961       IF (x_contracttmpl_rec.attribute14 = TAPI_DEV_KIT.G_MISS_CHAR)
962       THEN
963         x_contracttmpl_rec.attribute14 := l_cs_contract_templates_pk.attribute14;
964       END IF;
965       IF (x_contracttmpl_rec.attribute15 = TAPI_DEV_KIT.G_MISS_CHAR)
966       THEN
967         x_contracttmpl_rec.attribute15 := l_cs_contract_templates_pk.attribute15;
968       END IF;
969       IF (x_contracttmpl_rec.context = TAPI_DEV_KIT.G_MISS_CHAR)
970       THEN
971         x_contracttmpl_rec.context := l_cs_contract_templates_pk.context;
972       END IF;
973       IF (x_contracttmpl_rec.object_version_number = TAPI_DEV_KIT.G_MISS_NUM)
974       THEN
975         x_contracttmpl_rec.object_version_number := l_cs_contract_templates_pk.object_version_number;
976       END IF;
977       RETURN(l_return_status);
978     END populate_new_record;
979   BEGIN
980     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
981                                               G_PKG_NAME,
982                                               l_api_version,
983                                               p_api_version,
984                                               p_init_msg_list,
985                                               '_Pvt',
986                                               x_return_status);
987     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
988       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
989     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
990       RAISE FND_API.G_EXC_ERROR;
991     END IF;
992     migrate(p_contracttmpl_val_rec, l_contracttmpl_rec);
993     --- Defaulting item attributes
994     l_return_status := Default_Item_Attributes
995     (
996       l_contracttmpl_rec,    ---- IN
997       l_def_contracttmpl_rec
998     );
999     --- If any errors happen abort API
1000     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1001       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1002     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1003       RAISE FND_API.G_EXC_ERROR;
1004     END IF;
1005     l_return_status := populate_new_record(l_def_contracttmpl_rec, l_def_contracttmpl_rec);
1006     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1007       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1008     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1009       RAISE FND_API.G_EXC_ERROR;
1010     END IF;
1011     --- Validate all non-missing attributes (Item Level Validation)
1012     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
1013       l_return_status := Validate_Item_Attributes
1014       (
1015         l_def_contracttmpl_rec    ---- IN
1016       );
1017       --- If any errors happen abort API
1018       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1019         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1020       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1021         RAISE FND_API.G_EXC_ERROR;
1022       END IF;
1023     END IF;
1024     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
1025       l_return_status := Validate_Item_Record(l_def_contracttmpl_rec);
1026       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1027         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1028       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1029         RAISE FND_API.G_EXC_ERROR;
1030       END IF;
1031     END IF;
1032     UPDATE  CS_CONTRACT_TEMPLATES
1033     SET
1034         CONTRACT_TEMPLATE_ID = l_def_contracttmpl_rec.contract_template_id ,
1035         NAME = l_def_contracttmpl_rec.name ,
1036         CONTRACT_TYPE_ID = l_def_contracttmpl_rec.contract_type_id ,
1037         DURATION = l_def_contracttmpl_rec.duration ,
1038         PERIOD_CODE = l_def_contracttmpl_rec.period_code ,
1039         WORKFLOW = l_def_contracttmpl_rec.workflow ,
1040         PRICE_LIST_ID = l_def_contracttmpl_rec.price_list_id ,
1041         CURRENCY_CODE = l_def_contracttmpl_rec.currency_code ,
1042         CONVERSION_TYPE_CODE = l_def_contracttmpl_rec.conversion_type_code ,
1043         CONVERSION_RATE = l_def_contracttmpl_rec.conversion_rate ,
1044         CONVERSION_DATE = l_def_contracttmpl_rec.conversion_date ,
1045         INVOICING_RULE_ID = l_def_contracttmpl_rec.invoicing_rule_id ,
1046         ACCOUNTING_RULE_ID = l_def_contracttmpl_rec.accounting_rule_id ,
1047         BILLING_FREQUENCY_PERIOD = l_def_contracttmpl_rec.billing_frequency_period ,
1048         CREATE_SALES_ORDER = l_def_contracttmpl_rec.create_sales_order ,
1049         RENEWAL_RULE = l_def_contracttmpl_rec.renewal_rule ,
1050         TERMINATION_RULE = l_def_contracttmpl_rec.termination_rule ,
1051         TERMS_ID = l_def_contracttmpl_rec.terms_id ,
1052         TAX_HANDLING = l_def_contracttmpl_rec.tax_handling ,
1056         DISCOUNT_ID = l_def_contracttmpl_rec.discount_id ,
1053         TAX_EXEMPT_NUM = l_def_contracttmpl_rec.tax_exempt_num ,
1054         TAX_EXEMPT_REASON_CODE = l_def_contracttmpl_rec.tax_exempt_reason_code ,
1055         CONTRACT_AMOUNT = l_def_contracttmpl_rec.contract_amount ,
1057         LAST_UPDATE_DATE = l_def_contracttmpl_rec.last_update_date ,
1058         LAST_UPDATED_BY = l_def_contracttmpl_rec.last_updated_by ,
1059         CREATION_DATE = l_def_contracttmpl_rec.creation_date ,
1060         CREATED_BY = l_def_contracttmpl_rec.created_by ,
1061         AUTO_RENEWAL_FLAG = l_def_contracttmpl_rec.auto_renewal_flag ,
1062         LAST_UPDATE_LOGIN = l_def_contracttmpl_rec.last_update_login ,
1063         START_DATE_ACTIVE = l_def_contracttmpl_rec.start_date_active ,
1064         END_DATE_ACTIVE = l_def_contracttmpl_rec.end_date_active ,
1065         ATTRIBUTE1 = l_def_contracttmpl_rec.attribute1 ,
1066         ATTRIBUTE2 = l_def_contracttmpl_rec.attribute2 ,
1067         ATTRIBUTE3 = l_def_contracttmpl_rec.attribute3 ,
1068         ATTRIBUTE4 = l_def_contracttmpl_rec.attribute4 ,
1069         ATTRIBUTE5 = l_def_contracttmpl_rec.attribute5 ,
1070         ATTRIBUTE6 = l_def_contracttmpl_rec.attribute6 ,
1071         ATTRIBUTE7 = l_def_contracttmpl_rec.attribute7 ,
1072         ATTRIBUTE8 = l_def_contracttmpl_rec.attribute8 ,
1073         ATTRIBUTE9 = l_def_contracttmpl_rec.attribute9 ,
1074         ATTRIBUTE10 = l_def_contracttmpl_rec.attribute10 ,
1075         ATTRIBUTE11 = l_def_contracttmpl_rec.attribute11 ,
1076         ATTRIBUTE12 = l_def_contracttmpl_rec.attribute12 ,
1077         ATTRIBUTE13 = l_def_contracttmpl_rec.attribute13 ,
1078         ATTRIBUTE14 = l_def_contracttmpl_rec.attribute14 ,
1079         ATTRIBUTE15 = l_def_contracttmpl_rec.attribute15 ,
1080         CONTEXT = l_def_contracttmpl_rec.context ,
1081         OBJECT_VERSION_NUMBER = l_def_contracttmpl_rec.object_version_number
1082         WHERE
1083           CONTRACT_TEMPLATE_ID = l_def_contracttmpl_rec.contract_template_id
1084           ;
1085     x_object_version_number := l_def_contracttmpl_rec.OBJECT_VERSION_NUMBER;
1086     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1087   EXCEPTION
1088     WHEN FND_API.G_EXC_ERROR THEN
1089       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1090       (
1091         l_api_name,
1092         G_PKG_NAME,
1093         'FND_API.G_RET_STS_ERROR',
1094         x_msg_count,
1095         x_msg_data,
1096         '_Pvt'
1097       );
1098     APP_EXCEPTION.RAISE_EXCEPTION;
1099     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1100       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1101       (
1102         l_api_name,
1103         G_PKG_NAME,
1104         'FND_API.G_RET_STS_UNEXP_ERROR',
1105         x_msg_count,
1106         x_msg_data,
1107         '_Pvt'
1108       );
1109     APP_EXCEPTION.RAISE_EXCEPTION;
1110     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1111       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1112       (
1113         l_api_name,
1114         G_PKG_NAME,
1115         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1116         x_msg_count,
1117         x_msg_data,
1118         '_Pvt'
1119       );
1120     APP_EXCEPTION.RAISE_EXCEPTION;
1121   END update_row;
1122   Procedure update_row
1123   (
1124     p_api_version                  IN NUMBER,
1125     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1126     p_validation_level             IN NUMBER,
1127     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1128     x_return_status                OUT VARCHAR2,
1129     x_msg_count                    OUT NUMBER,
1130     x_msg_data                     OUT VARCHAR2,
1131     p_contract_template_id         IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1132     p_name                         IN CS_CONTRACT_TEMPLATES.NAME%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1133     p_contract_type_id             IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1134     p_duration                     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1135     p_period_code                  IN CS_CONTRACT_TEMPLATES.PERIOD_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1136     p_workflow                     IN CS_CONTRACT_TEMPLATES.WORKFLOW%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1137     p_price_list_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1138     p_currency_code                IN CS_CONTRACT_TEMPLATES.CURRENCY_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1139     p_conversion_type_code         IN CS_CONTRACT_TEMPLATES.CONVERSION_TYPE_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1140     p_conversion_rate              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1141     p_conversion_date              IN CS_CONTRACT_TEMPLATES.CONVERSION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1142     p_invoicing_rule_id            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1143     p_accounting_rule_id           IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1144     p_billing_frequency_period     IN CS_CONTRACT_TEMPLATES.BILLING_FREQUENCY_PERIOD%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1145     p_create_sales_order           IN CS_CONTRACT_TEMPLATES.CREATE_SALES_ORDER%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1146     p_renewal_rule                 IN CS_CONTRACT_TEMPLATES.RENEWAL_RULE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1147     p_termination_rule             IN CS_CONTRACT_TEMPLATES.TERMINATION_RULE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1148     p_terms_id                     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1149     p_tax_handling                 IN CS_CONTRACT_TEMPLATES.TAX_HANDLING%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1150     p_tax_exempt_num               IN CS_CONTRACT_TEMPLATES.TAX_EXEMPT_NUM%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1151     p_tax_exempt_reason_code       IN CS_CONTRACT_TEMPLATES.TAX_EXEMPT_REASON_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1152     p_contract_amount              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1153     p_discount_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1154     p_last_update_date             IN CS_CONTRACT_TEMPLATES.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1155     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1159     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1156     p_creation_date                IN CS_CONTRACT_TEMPLATES.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1157     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1158     p_auto_renewal_flag            IN CS_CONTRACT_TEMPLATES.AUTO_RENEWAL_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1160     p_start_date_active            IN CS_CONTRACT_TEMPLATES.START_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1161     p_end_date_active              IN CS_CONTRACT_TEMPLATES.END_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1162     p_attribute1                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1163     p_attribute2                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1164     p_attribute3                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1165     p_attribute4                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1166     p_attribute5                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1167     p_attribute6                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1168     p_attribute7                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1169     p_attribute8                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1170     p_attribute9                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1171     p_attribute10                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1172     p_attribute11                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1173     p_attribute12                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1174     p_attribute13                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1175     p_attribute14                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1176     p_attribute15                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1177     p_context                      IN CS_CONTRACT_TEMPLATES.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1178     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1179     x_object_version_number        OUT NUMBER) IS
1180     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
1181     l_api_version                  CONSTANT NUMBER := 1;
1182     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1183     l_contracttmpl_rec             ContractTmpl_Val_Rec_Type;
1184   BEGIN
1185     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1186                                               G_PKG_NAME,
1187                                               l_api_version,
1188                                               p_api_version,
1189                                               p_init_msg_list,
1190                                               '_Pvt',
1191                                               x_return_status);
1192     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1193       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1194     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1195       RAISE FND_API.G_EXC_ERROR;
1196     END IF;
1197     l_contracttmpl_rec.CONTRACT_TEMPLATE_ID := p_contract_template_id;
1198     l_contracttmpl_rec.NAME := p_name;
1199     l_contracttmpl_rec.CONTRACT_TYPE_ID := p_contract_type_id;
1200     l_contracttmpl_rec.DURATION := p_duration;
1201     l_contracttmpl_rec.PERIOD_CODE := p_period_code;
1202     l_contracttmpl_rec.WORKFLOW := p_workflow;
1203     l_contracttmpl_rec.PRICE_LIST_ID := p_price_list_id;
1204     l_contracttmpl_rec.CURRENCY_CODE := p_currency_code;
1205     l_contracttmpl_rec.CONVERSION_TYPE_CODE := p_conversion_type_code;
1206     l_contracttmpl_rec.CONVERSION_RATE := p_conversion_rate;
1207     l_contracttmpl_rec.CONVERSION_DATE := p_conversion_date;
1208     l_contracttmpl_rec.INVOICING_RULE_ID := p_invoicing_rule_id;
1209     l_contracttmpl_rec.ACCOUNTING_RULE_ID := p_accounting_rule_id;
1210     l_contracttmpl_rec.BILLING_FREQUENCY_PERIOD := p_billing_frequency_period;
1211     l_contracttmpl_rec.CREATE_SALES_ORDER := p_create_sales_order;
1212     l_contracttmpl_rec.RENEWAL_RULE := p_renewal_rule;
1213     l_contracttmpl_rec.TERMINATION_RULE := p_termination_rule;
1214     l_contracttmpl_rec.TERMS_ID := p_terms_id;
1215     l_contracttmpl_rec.TAX_HANDLING := p_tax_handling;
1216     l_contracttmpl_rec.TAX_EXEMPT_NUM := p_tax_exempt_num;
1217     l_contracttmpl_rec.TAX_EXEMPT_REASON_CODE := p_tax_exempt_reason_code;
1218     l_contracttmpl_rec.CONTRACT_AMOUNT := p_contract_amount;
1219     l_contracttmpl_rec.DISCOUNT_ID := p_discount_id;
1220     l_contracttmpl_rec.LAST_UPDATE_DATE := p_last_update_date;
1221     l_contracttmpl_rec.LAST_UPDATED_BY := p_last_updated_by;
1222     l_contracttmpl_rec.CREATION_DATE := p_creation_date;
1223     l_contracttmpl_rec.CREATED_BY := p_created_by;
1224     l_contracttmpl_rec.AUTO_RENEWAL_FLAG := p_auto_renewal_flag;
1225     l_contracttmpl_rec.LAST_UPDATE_LOGIN := p_last_update_login;
1226     l_contracttmpl_rec.START_DATE_ACTIVE := p_start_date_active;
1227     l_contracttmpl_rec.END_DATE_ACTIVE := p_end_date_active;
1228     l_contracttmpl_rec.ATTRIBUTE1 := p_attribute1;
1229     l_contracttmpl_rec.ATTRIBUTE2 := p_attribute2;
1230     l_contracttmpl_rec.ATTRIBUTE3 := p_attribute3;
1231     l_contracttmpl_rec.ATTRIBUTE4 := p_attribute4;
1232     l_contracttmpl_rec.ATTRIBUTE5 := p_attribute5;
1233     l_contracttmpl_rec.ATTRIBUTE6 := p_attribute6;
1234     l_contracttmpl_rec.ATTRIBUTE7 := p_attribute7;
1235     l_contracttmpl_rec.ATTRIBUTE8 := p_attribute8;
1236     l_contracttmpl_rec.ATTRIBUTE9 := p_attribute9;
1237     l_contracttmpl_rec.ATTRIBUTE10 := p_attribute10;
1238     l_contracttmpl_rec.ATTRIBUTE11 := p_attribute11;
1239     l_contracttmpl_rec.ATTRIBUTE12 := p_attribute12;
1240     l_contracttmpl_rec.ATTRIBUTE13 := p_attribute13;
1241     l_contracttmpl_rec.ATTRIBUTE14 := p_attribute14;
1242     l_contracttmpl_rec.ATTRIBUTE15 := p_attribute15;
1246       p_api_version,
1243     l_contracttmpl_rec.CONTEXT := p_context;
1244     l_contracttmpl_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
1245     update_row(
1247       p_init_msg_list,
1248       p_validation_level,
1249       p_commit,
1250       x_return_status,
1251       x_msg_count,
1252       x_msg_data,
1253       l_contracttmpl_rec,
1254       x_object_version_number
1255     );
1256     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1257   EXCEPTION
1258     WHEN FND_API.G_EXC_ERROR THEN
1259       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1260       (
1261         l_api_name,
1262         G_PKG_NAME,
1263         'FND_API.G_RET_STS_ERROR',
1264         x_msg_count,
1265         x_msg_data,
1266         '_Pvt'
1267       );
1268     APP_EXCEPTION.RAISE_EXCEPTION;
1269     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1270       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1271       (
1272         l_api_name,
1273         G_PKG_NAME,
1274         'FND_API.G_RET_STS_UNEXP_ERROR',
1275         x_msg_count,
1276         x_msg_data,
1277         '_Pvt'
1278       );
1279     APP_EXCEPTION.RAISE_EXCEPTION;
1280     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1281       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1282       (
1283         l_api_name,
1284         G_PKG_NAME,
1285         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1286         x_msg_count,
1287         x_msg_data,
1288         '_Pvt'
1289       );
1290     APP_EXCEPTION.RAISE_EXCEPTION;
1291   END update_row;
1292   Procedure delete_row
1293   (
1294     p_api_version                  IN NUMBER,
1295     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1296     p_validation_level             IN NUMBER,
1297     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1298     x_return_status                OUT VARCHAR2,
1299     x_msg_count                    OUT NUMBER,
1300     x_msg_data                     OUT VARCHAR2,
1301     p_contract_template_id         IN NUMBER) IS
1302     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_row';
1303     l_api_version                  CONSTANT NUMBER := 1;
1304     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1305   BEGIN
1306     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1307                                               G_PKG_NAME,
1308                                               l_api_version,
1309                                               p_api_version,
1310                                               p_init_msg_list,
1311                                               '_Pvt',
1312                                               x_return_status);
1313     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1314       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1315     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1316       RAISE FND_API.G_EXC_ERROR;
1317     END IF;
1318     DELETE  FROM CS_CONTRACT_TEMPLATES
1319     WHERE
1320       CONTRACT_TEMPLATE_ID = p_contract_template_id
1321       ;
1322     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1323   EXCEPTION
1324     WHEN FND_API.G_EXC_ERROR THEN
1325       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1326       (
1327         l_api_name,
1328         G_PKG_NAME,
1329         'FND_API.G_RET_STS_ERROR',
1330         x_msg_count,
1331         x_msg_data,
1332         '_Pvt'
1333       );
1334     APP_EXCEPTION.RAISE_EXCEPTION;
1335     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1336       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1337       (
1338         l_api_name,
1339         G_PKG_NAME,
1340         'FND_API.G_RET_STS_UNEXP_ERROR',
1341         x_msg_count,
1342         x_msg_data,
1343         '_Pvt'
1344       );
1345     APP_EXCEPTION.RAISE_EXCEPTION;
1346     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1347       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1348       (
1349         l_api_name,
1350         G_PKG_NAME,
1351         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1352         x_msg_count,
1353         x_msg_data,
1354         '_Pvt'
1355       );
1356     APP_EXCEPTION.RAISE_EXCEPTION;
1357   END delete_row;
1358   PROCEDURE validate_row
1359   (
1360     p_api_version                  IN NUMBER,
1361     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1362     p_validation_level             IN NUMBER,
1363     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1364     x_return_status                OUT VARCHAR2,
1365     x_msg_count                    OUT NUMBER,
1366     x_msg_data                     OUT VARCHAR2,
1367     p_contracttmpl_val_rec         IN ContractTmpl_Val_Rec_Type := G_MISS_CONTRACTTMPL_VAL_REC) IS
1368     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1369     l_api_version                  CONSTANT NUMBER := 1;
1370     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1371     l_contracttmpl_rec             ContractTmpl_Rec_Type;
1372     l_def_contracttmpl_rec         ContractTmpl_Rec_Type;
1373   BEGIN
1374     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1375                                               G_PKG_NAME,
1376                                               l_api_version,
1377                                               p_api_version,
1378                                               p_init_msg_list,
1379                                               '_Pvt',
1380                                               x_return_status);
1381     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1382       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1383     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1384       RAISE FND_API.G_EXC_ERROR;
1388     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
1385     END IF;
1386     migrate(p_contracttmpl_val_rec, l_contracttmpl_rec);
1387     --- Validate all non-missing attributes (Item Level Validation)
1389       l_return_status := Validate_Item_Attributes
1390       (
1391         l_contracttmpl_rec    ---- IN
1392       );
1393       --- If any errors happen abort API
1394       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1395         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1396       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1397         RAISE FND_API.G_EXC_ERROR;
1398       END IF;
1399     END IF;
1400     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
1401       l_return_status := Validate_Item_Record(l_def_contracttmpl_rec);
1402       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1403         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1404       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1405         RAISE FND_API.G_EXC_ERROR;
1406       END IF;
1407     END IF;
1408     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1409   EXCEPTION
1410     WHEN FND_API.G_EXC_ERROR THEN
1411       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1412       (
1413         l_api_name,
1414         G_PKG_NAME,
1415         'FND_API.G_RET_STS_ERROR',
1416         x_msg_count,
1417         x_msg_data,
1418         '_Pvt'
1419       );
1420     APP_EXCEPTION.RAISE_EXCEPTION;
1421     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1422       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1423       (
1424         l_api_name,
1425         G_PKG_NAME,
1426         'FND_API.G_RET_STS_UNEXP_ERROR',
1427         x_msg_count,
1428         x_msg_data,
1429         '_Pvt'
1430       );
1431     APP_EXCEPTION.RAISE_EXCEPTION;
1432     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1433       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1434       (
1435         l_api_name,
1436         G_PKG_NAME,
1437         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1438         x_msg_count,
1439         x_msg_data,
1440         '_Pvt'
1441       );
1442     APP_EXCEPTION.RAISE_EXCEPTION;
1443   END validate_row;
1444   PROCEDURE validate_row
1445   (
1446     p_api_version                  IN NUMBER,
1447     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1448     p_validation_level             IN NUMBER,
1449     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1450     x_return_status                OUT VARCHAR2,
1451     x_msg_count                    OUT NUMBER,
1452     x_msg_data                     OUT VARCHAR2,
1453     p_contract_template_id         IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1454     p_name                         IN CS_CONTRACT_TEMPLATES.NAME%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1455     p_contract_type_id             IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1456     p_duration                     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1457     p_period_code                  IN CS_CONTRACT_TEMPLATES.PERIOD_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1458     p_workflow                     IN CS_CONTRACT_TEMPLATES.WORKFLOW%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1459     p_price_list_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1460     p_currency_code                IN CS_CONTRACT_TEMPLATES.CURRENCY_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1461     p_conversion_type_code         IN CS_CONTRACT_TEMPLATES.CONVERSION_TYPE_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1462     p_conversion_rate              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1463     p_conversion_date              IN CS_CONTRACT_TEMPLATES.CONVERSION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1464     p_invoicing_rule_id            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1465     p_accounting_rule_id           IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1466     p_billing_frequency_period     IN CS_CONTRACT_TEMPLATES.BILLING_FREQUENCY_PERIOD%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1467     p_create_sales_order           IN CS_CONTRACT_TEMPLATES.CREATE_SALES_ORDER%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1468     p_renewal_rule                 IN CS_CONTRACT_TEMPLATES.RENEWAL_RULE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1469     p_termination_rule             IN CS_CONTRACT_TEMPLATES.TERMINATION_RULE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1470     p_terms_id                     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1471     p_tax_handling                 IN CS_CONTRACT_TEMPLATES.TAX_HANDLING%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1472     p_tax_exempt_num               IN CS_CONTRACT_TEMPLATES.TAX_EXEMPT_NUM%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1473     p_tax_exempt_reason_code       IN CS_CONTRACT_TEMPLATES.TAX_EXEMPT_REASON_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1474     p_contract_amount              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1475     p_discount_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1476     p_last_update_date             IN CS_CONTRACT_TEMPLATES.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1477     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1478     p_creation_date                IN CS_CONTRACT_TEMPLATES.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1479     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1480     p_auto_renewal_flag            IN CS_CONTRACT_TEMPLATES.AUTO_RENEWAL_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1481     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1482     p_start_date_active            IN CS_CONTRACT_TEMPLATES.START_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1483     p_end_date_active              IN CS_CONTRACT_TEMPLATES.END_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1484     p_attribute1                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1485     p_attribute2                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1486     p_attribute3                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1487     p_attribute4                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1491     p_attribute8                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1488     p_attribute5                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1489     p_attribute6                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1490     p_attribute7                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1492     p_attribute9                   IN CS_CONTRACT_TEMPLATES.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1493     p_attribute10                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1494     p_attribute11                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1495     p_attribute12                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1496     p_attribute13                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1497     p_attribute14                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1498     p_attribute15                  IN CS_CONTRACT_TEMPLATES.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1499     p_context                      IN CS_CONTRACT_TEMPLATES.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1500     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM) IS
1501     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1502     l_api_version                  CONSTANT NUMBER := 1;
1503     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1504     l_contracttmpl_rec             ContractTmpl_Val_Rec_Type;
1505   BEGIN
1506     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1507                                               G_PKG_NAME,
1508                                               l_api_version,
1509                                               p_api_version,
1510                                               p_init_msg_list,
1511                                               '_Pvt',
1512                                               x_return_status);
1513     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1514       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1515     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1516       RAISE FND_API.G_EXC_ERROR;
1517     END IF;
1518     l_contracttmpl_rec.CONTRACT_TEMPLATE_ID := p_contract_template_id;
1519     l_contracttmpl_rec.NAME := p_name;
1520     l_contracttmpl_rec.CONTRACT_TYPE_ID := p_contract_type_id;
1521     l_contracttmpl_rec.DURATION := p_duration;
1522     l_contracttmpl_rec.PERIOD_CODE := p_period_code;
1523     l_contracttmpl_rec.WORKFLOW := p_workflow;
1524     l_contracttmpl_rec.PRICE_LIST_ID := p_price_list_id;
1525     l_contracttmpl_rec.CURRENCY_CODE := p_currency_code;
1526     l_contracttmpl_rec.CONVERSION_TYPE_CODE := p_conversion_type_code;
1527     l_contracttmpl_rec.CONVERSION_RATE := p_conversion_rate;
1528     l_contracttmpl_rec.CONVERSION_DATE := p_conversion_date;
1529     l_contracttmpl_rec.INVOICING_RULE_ID := p_invoicing_rule_id;
1530     l_contracttmpl_rec.ACCOUNTING_RULE_ID := p_accounting_rule_id;
1531     l_contracttmpl_rec.BILLING_FREQUENCY_PERIOD := p_billing_frequency_period;
1532     l_contracttmpl_rec.CREATE_SALES_ORDER := p_create_sales_order;
1533     l_contracttmpl_rec.RENEWAL_RULE := p_renewal_rule;
1534     l_contracttmpl_rec.TERMINATION_RULE := p_termination_rule;
1535     l_contracttmpl_rec.TERMS_ID := p_terms_id;
1536     l_contracttmpl_rec.TAX_HANDLING := p_tax_handling;
1537     l_contracttmpl_rec.TAX_EXEMPT_NUM := p_tax_exempt_num;
1538     l_contracttmpl_rec.TAX_EXEMPT_REASON_CODE := p_tax_exempt_reason_code;
1539     l_contracttmpl_rec.CONTRACT_AMOUNT := p_contract_amount;
1540     l_contracttmpl_rec.DISCOUNT_ID := p_discount_id;
1541     l_contracttmpl_rec.LAST_UPDATE_DATE := p_last_update_date;
1542     l_contracttmpl_rec.LAST_UPDATED_BY := p_last_updated_by;
1543     l_contracttmpl_rec.CREATION_DATE := p_creation_date;
1544     l_contracttmpl_rec.CREATED_BY := p_created_by;
1545     l_contracttmpl_rec.AUTO_RENEWAL_FLAG := p_auto_renewal_flag;
1546     l_contracttmpl_rec.LAST_UPDATE_LOGIN := p_last_update_login;
1547     l_contracttmpl_rec.START_DATE_ACTIVE := p_start_date_active;
1548     l_contracttmpl_rec.END_DATE_ACTIVE := p_end_date_active;
1549     l_contracttmpl_rec.ATTRIBUTE1 := p_attribute1;
1550     l_contracttmpl_rec.ATTRIBUTE2 := p_attribute2;
1551     l_contracttmpl_rec.ATTRIBUTE3 := p_attribute3;
1552     l_contracttmpl_rec.ATTRIBUTE4 := p_attribute4;
1553     l_contracttmpl_rec.ATTRIBUTE5 := p_attribute5;
1554     l_contracttmpl_rec.ATTRIBUTE6 := p_attribute6;
1555     l_contracttmpl_rec.ATTRIBUTE7 := p_attribute7;
1556     l_contracttmpl_rec.ATTRIBUTE8 := p_attribute8;
1557     l_contracttmpl_rec.ATTRIBUTE9 := p_attribute9;
1558     l_contracttmpl_rec.ATTRIBUTE10 := p_attribute10;
1559     l_contracttmpl_rec.ATTRIBUTE11 := p_attribute11;
1560     l_contracttmpl_rec.ATTRIBUTE12 := p_attribute12;
1561     l_contracttmpl_rec.ATTRIBUTE13 := p_attribute13;
1562     l_contracttmpl_rec.ATTRIBUTE14 := p_attribute14;
1563     l_contracttmpl_rec.ATTRIBUTE15 := p_attribute15;
1564     l_contracttmpl_rec.CONTEXT := p_context;
1565     l_contracttmpl_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
1566     validate_row(
1567       p_api_version,
1568       p_init_msg_list,
1569       p_validation_level,
1570       p_commit,
1571       x_return_status,
1572       x_msg_count,
1573       x_msg_data,
1574       l_contracttmpl_rec
1575     );
1576     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1577   EXCEPTION
1578     WHEN FND_API.G_EXC_ERROR THEN
1579       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1580       (
1581         l_api_name,
1582         G_PKG_NAME,
1583         'FND_API.G_RET_STS_ERROR',
1584         x_msg_count,
1585         x_msg_data,
1586         '_Pvt'
1587       );
1588     APP_EXCEPTION.RAISE_EXCEPTION;
1589     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1590       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1591       (
1592         l_api_name,
1596         x_msg_data,
1593         G_PKG_NAME,
1594         'FND_API.G_RET_STS_UNEXP_ERROR',
1595         x_msg_count,
1597         '_Pvt'
1598       );
1599     APP_EXCEPTION.RAISE_EXCEPTION;
1600     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1601       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1602       (
1603         l_api_name,
1604         G_PKG_NAME,
1605         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1606         x_msg_count,
1607         x_msg_data,
1608         '_Pvt'
1609       );
1610     APP_EXCEPTION.RAISE_EXCEPTION;
1611   END validate_row;
1612 END CS_CONTRACTTMPL_PVT;