DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_SYS_PARAMETERS_PVT

Source


4 g_pkg_name   CONSTANT VARCHAR2(30):='OZF_Sys_Parameters_PVT';
1 PACKAGE BODY OZF_SYS_PARAMETERS_PVT AS
2 /* $Header: ozfvsysb.pls 120.17 2012/01/03 17:15:49 nirprasa ship $ */
3 
5 
6 G_DEBUG BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
7 
8 
9 
10 
11 -- PROCEDURE
12 --    Check_Batch_Tolerances
13 --
14 -- HISTORY
15 --    05/18/2004  upoluri  Create.
16 ---------------------------------------------------------------------
17 PROCEDURE Check_Batch_Tolerances(
18    p_sys_parameters_rec IN  sys_parameters_rec_type
19   ,x_return_status      OUT NOCOPY VARCHAR2
20 )
21 IS
22 
23 BEGIN
24    x_return_status := FND_API.g_ret_sts_success;
25 
26    IF (p_sys_parameters_rec.header_tolerance_calc_code is null
27          AND p_sys_parameters_rec.header_tolerance_operand is not null)
28          THEN
29                IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
30                THEN
31                   FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_BATCH_TOL_TYPE_REQ');
32                   FND_MSG_PUB.add;
33               END IF;
34               x_return_status := FND_API.g_ret_sts_error;
35               RETURN;
36       ELSIF (p_sys_parameters_rec.header_tolerance_calc_code is not null
37          AND p_sys_parameters_rec.header_tolerance_operand is null)
38          THEN
39                IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
40                THEN
41                   FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_BATCH_TOL_VAL_REQ');
42                   FND_MSG_PUB.add;
43               END IF;
44               x_return_status := FND_API.g_ret_sts_error;
45               RETURN;
46       END IF;
47 
48       IF (p_sys_parameters_rec.line_tolerance_calc_code is null
49          AND p_sys_parameters_rec.line_tolerance_operand is not null )
50          THEN
51                IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
52                THEN
53                   FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_LINE_TOL_TYPE_REQ');
54                   FND_MSG_PUB.add;
55               END IF;
56               x_return_status := FND_API.g_ret_sts_error;
57               RETURN;
58       ELSIF (p_sys_parameters_rec.line_tolerance_calc_code is not null
59          AND p_sys_parameters_rec.line_tolerance_operand is null)
60          THEN
61                IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
62                THEN
63                   FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_LINE_TOL_VAL_REQ');
64                   FND_MSG_PUB.add;
65               END IF;
66               x_return_status := FND_API.g_ret_sts_error;
67               RETURN;
68       END IF;
69 
70       -- For Rule Based Settlement
71        IF (p_sys_parameters_rec.credit_matching_thold_type is null
72          AND p_sys_parameters_rec.credit_tolerance_operand is not null )
73          THEN
74                IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
75                THEN
76                   FND_MESSAGE.set_name('OZF', 'OZF_CREDIT_THRES_TYPE_REQ');
77                   FND_MSG_PUB.add;
78               END IF;
79               x_return_status := FND_API.g_ret_sts_error;
80               RETURN;
81       ELSIF (p_sys_parameters_rec.credit_tolerance_operand is null
82          AND p_sys_parameters_rec.credit_matching_thold_type is not null)
83          THEN
84                IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
85                THEN
86                   FND_MESSAGE.set_name('OZF', 'OZF_CREDIT_THRES_VAL_REQ');
87                   FND_MSG_PUB.add;
88               END IF;
89               x_return_status := FND_API.g_ret_sts_error;
90               RETURN;
91       END IF;
92 
93       -- For Rule Based Settlement
94      IF(p_sys_parameters_rec.credit_matching_thold_type = '%' AND
95        p_sys_parameters_rec.credit_tolerance_operand is not null AND p_sys_parameters_rec.credit_tolerance_operand > 100)
96        THEN
97               IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
98                THEN
99                   FND_MESSAGE.set_name('OZF', 'OZF_CREDIT_THRES_VALIDATION');
100                   FND_MSG_PUB.add;
101               END IF;
102               x_return_status := FND_API.g_ret_sts_error;
103               RETURN;
104       END IF;
105 
106 
107 END Check_Batch_Tolerances;
108 
109 ---------------------------------------------------------------------
110 -- PROCEDURE
111 --    Create_Sys_Parameters
112 --
113 -- HISTORY
114 --    06/12/2000  mchang  Create.
115 --    08/31/2000  mchang  Updated: insert 4 more columns.
116 --    03/15/2001  mchang  Updated: insert autopay setting columns.
117 ---------------------------------------------------------------------
118 PROCEDURE Create_Sys_Parameters(
119    p_api_version       IN  NUMBER
120   ,p_init_msg_list     IN  VARCHAR2  := FND_API.g_false
121   ,p_commit            IN  VARCHAR2  := FND_API.g_false
122   ,p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full
123 
124   ,x_return_status     OUT NOCOPY VARCHAR2
125   ,x_msg_count         OUT NOCOPY NUMBER
126   ,x_msg_data          OUT NOCOPY VARCHAR2
127 
128   ,p_sys_parameters_rec IN  sys_parameters_rec_type
129   ,x_set_of_books_id    OUT NOCOPY NUMBER
130 )
131 IS
132 
133    l_api_version CONSTANT NUMBER       := 1.0;
134    l_api_name    CONSTANT VARCHAR2(30) := 'Create_Sys_Parameters';
135    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
136 
137    l_last_updated_by       NUMBER;
138    l_created_by            NUMBER;
139    l_last_update_login     NUMBER;
140    l_org_id                NUMBER;
141    l_post_to_gl            VARCHAR2(1);
142    l_transfer_to_gl        VARCHAR2(1);
143 
144    l_return_status         VARCHAR2(1);
145    l_sys_parameters_rec    sys_parameters_rec_type := p_sys_parameters_rec;
146    l_object_version_number NUMBER := 1;
147    l_books_id_count        NUMBER;
148 
149    l_set_of_books_id       NUMBER;
150    l_set_of_books          VARCHAR2(30);
151 
152 
153    -- Cursor to validate the uniqueness of the set_of_books_id
154    CURSOR c_books_id_count(cv_org_id IN NUMBER) IS
155    SELECT  COUNT(set_of_books_id)
156      FROM  ozf_sys_parameters;
157      --WHERE org_id = cv_org_id;
158      --WHERE set_of_books_id = cv_books_id;
159 
160 BEGIN
161 
162    --------------------- initialize -----------------------
163    SAVEPOINT Create_Sys_Parameters;
164 
165    IF g_debug THEN
166       OZF_Utility_PVT.debug_message(l_full_name||': start');
167    END IF;
168 
169    IF FND_API.to_boolean(p_init_msg_list) THEN
170       FND_MSG_PUB.initialize;
171    END IF;
172 
173    IF NOT FND_API.compatible_api_call(
174          l_api_version,
175          p_api_version,
176          l_api_name,
177          g_pkg_name
178    ) THEN
179       RAISE FND_API.g_exc_unexpected_error;
180    END IF;
181 
182    x_return_status := FND_API.g_ret_sts_success;
183 
184    l_last_updated_by := NVL(FND_GLOBAL.user_id,-1);
185    l_created_by := NVL(FND_GLOBAL.user_id,-1);
186    l_last_update_login := NVL(FND_GLOBAL.conc_login_id,-1);
187 
188    l_post_to_gl := l_sys_parameters_rec.post_to_gl;  -- Bug 4760420
189 
190    --bugfix 4743804
191     IF l_post_to_gl IS NULL OR l_post_to_gl = FND_API.G_MISS_CHAR
192    THEN
193       l_post_to_gl:=FND_API.g_false;
194    END IF;
195 
196    IF l_transfer_to_gl  IS NULL OR l_transfer_to_gl = FND_API.G_MISS_CHAR
197    THEN
198       l_transfer_to_gl:=FND_API.g_false;
199    END IF;
200    --end bugfix 4743804
201 
202    l_org_id := l_sys_parameters_rec.org_id;  -- R12 Enhancements
203 
204    ----------------------- validate -----------------------
205    IF g_debug THEN
206       OZF_Utility_PVT.debug_message(l_full_name ||': validate');
207    END IF;
208 
209    -- validate the uniqueness of the set_of_books_id
210    IF p_sys_parameters_rec.set_of_books_id IS NULL THEN
211       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
212          FND_MESSAGE.set_name('OZF', 'OZF_SET_OF_BOOKS_NULL');
213          FND_MSG_PUB.add;
214       END IF;
215       RAISE FND_API.g_exc_error;
216    ELSE
217       --OPEN c_books_id_count(p_sys_parameters_rec.set_of_books_id);
218       OPEN c_books_id_count(l_org_id);
219       FETCH c_books_id_count INTO l_books_id_count;
220       CLOSE c_books_id_count;
221 
222       -- R12 : Commented below condition, to add multiple system parameters.
223      /* IF l_books_id_count > 0 THEN
224         IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
225            FND_MESSAGE.set_name('OZF', 'OZF_SET_OF_BOOKS_EXIST');
226            FND_MSG_PUB.add;
227         END IF;
228         RAISE FND_API.g_exc_error;
229       END IF;  */
230    END IF;
231 
232    -- Get the set_of_books_id for given org_id
233    MO_UTILS.Get_Ledger_Info (
234      p_operating_unit     =>  l_sys_parameters_rec.org_id,
235      p_ledger_id          =>  l_set_of_books_id,
236      p_ledger_name        =>  l_set_of_books
237    );
238 
239    l_sys_parameters_rec.set_of_books_id := l_set_of_books_id;
240 
241    Validate_Sys_Parameters(
242       p_api_version         => l_api_version,
243       p_init_msg_list       => p_init_msg_list,
244       p_validation_level    => p_validation_level,
245       x_return_status       => l_return_status,
246       x_msg_count           => x_msg_count,
247       x_msg_data            => x_msg_data,
248       p_sys_parameters_rec  => l_sys_parameters_rec
249    );
250 
251    IF l_return_status = FND_API.g_ret_sts_error THEN
252       RAISE FND_API.g_exc_error;
253    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
254       RAISE FND_API.g_exc_unexpected_error;
255    END IF;
256 
257   -------------------------- insert --------------------------
258   IF g_debug THEN
259      OZF_Utility_PVT.debug_message(l_full_name ||': insert');
260   END IF;
261 
262   INSERT INTO ozf_sys_parameters_all (
263        set_of_books_id
264       ,object_version_number
265       ,last_update_date
266       ,last_updated_by
267       ,creation_date
268       ,created_by
269       ,last_update_login
270       ,request_id
271       ,program_application_id
272       ,program_update_date
273       ,program_id
274       ,created_from
275       ,post_to_gl
276       ,transfer_to_gl_in
277       ,ap_payment_term_id
278       ,rounding_level_flag
279       ,gl_id_rounding
280       ,gl_id_ded_clearing
281       ,gl_id_ded_adj
282       ,gl_id_accr_promo_liab
283       ,gl_id_ded_adj_clearing
284       ,gl_rec_ded_account
285       ,gl_rec_clearing_account
286       ,gl_cost_adjustment_acct
287       ,gl_contra_liability_acct
288       ,gl_pp_accrual_acct
292       ,reason_code_id
289       ,gl_date_type
290       ,days_due
291       ,claim_type_id
293       ,autopay_claim_type_id
294       ,autopay_reason_code_id
295       ,autopay_flag
296       ,autopay_periodicity
297       ,autopay_periodicity_type
298       ,accounting_method_option
299       ,billback_trx_type_id
300       ,cm_trx_type_id
301       ,attribute_category
302       ,attribute1
303       ,attribute2
304       ,attribute3
305       ,attribute4
306       ,attribute5
307       ,attribute6
308       ,attribute7
309       ,attribute8
310       ,attribute9
311       ,attribute10
312       ,attribute11
313       ,attribute12
314       ,attribute13
315       ,attribute14
316       ,attribute15
317       ,org_id
318       ,batch_source_id
319       ,payables_source
320       ,default_owner_id
321       ,auto_assign_flag
322       ,exchange_rate_type
323       ,order_type_id
324       --11.5.10 enhancements
325           , gl_acct_for_offinv_flag
326           --, short_payment_reason_code_id
327           , cb_trx_type_id
328           , pos_write_off_threshold
329           , neg_write_off_threshold
330           , adj_rec_trx_id
331           , wo_rec_trx_id
332           , neg_wo_rec_trx_id
333           , un_earned_pay_allow_to
334           , un_earned_pay_thold_type
335           , un_earned_pay_thold_amount
336           , un_earned_pay_thold_flag
337           , header_tolerance_calc_code
338           , header_tolerance_operand
339           , line_tolerance_calc_code
340           , line_tolerance_operand
341 
342       , ship_debit_accrual_flag
343       , ship_debit_calc_type
344       , inventory_tracking_flag
345       , end_cust_relation_flag
346       , auto_tp_accrual_flag
347       , gl_balancing_flex_value
348       , prorate_earnings_flag
349       , sales_credit_default_type
350       , net_amt_for_mass_settle_flag
351 
352       ,claim_tax_incl_flag
353       --For Rule Based Settlement
354       ,rule_based
355       ,approval_new_credit
356       ,approval_matched_credit
357       ,cust_name_match_type
358       ,credit_matching_thold_type
359       ,credit_tolerance_operand
360       -- For Price Protection Parallel Approval ER
361       ,automate_notification_days
362       -- For SSD Default Adjustment Types
363       ,ssd_inc_adj_type_id
364       ,ssd_dec_adj_type_id
365       ,ssd_imd_claim_flag
366   )
367   VALUES (
368        l_sys_parameters_rec.set_of_books_id
369       ,l_object_version_number
370       ,SYSDATE                                -- LAST_UPDATE_DATE
371       ,l_last_updated_by                      -- LAST_UPDATED_BY
372       ,SYSDATE                                -- CREATION_DATE
373       ,l_created_by                           -- CREATED_BY
374       ,l_last_update_login                    -- LAST_UPDATE_LOGIN
375       ,FND_GLOBAL.CONC_REQUEST_ID             -- REQUEST_ID
376       ,FND_GLOBAL.PROG_APPL_ID                -- PROGRAM_APPLICATION_ID
377       ,SYSDATE                                -- PROGRAM_UPDATE_DATE
378       ,FND_GLOBAL.CONC_PROGRAM_ID             -- PROGRAM_ID
379       ,l_sys_parameters_rec.created_from      -- CREATED_FROM
380       ,l_post_to_gl
381       ,l_transfer_to_gl
382       ,l_sys_parameters_rec.ap_payment_term_id
383       ,l_sys_parameters_rec.rounding_level_flag
384       ,l_sys_parameters_rec.gl_id_rounding
385       ,l_sys_parameters_rec.gl_id_ded_clearing
386       ,l_sys_parameters_rec.gl_id_ded_adj
387       ,l_sys_parameters_rec.gl_id_accr_promo_liab
388       ,l_sys_parameters_rec.gl_id_ded_adj_clearing
389       ,l_sys_parameters_rec.gl_rec_ded_account
390       ,l_sys_parameters_rec.gl_rec_clearing_account
391       ,l_sys_parameters_rec.gl_cost_adjustment_acct
392       ,l_sys_parameters_rec.gl_contra_liability_acct
393       ,l_sys_parameters_rec.gl_pp_accrual_acct
394       ,l_sys_parameters_rec.gl_date_type
395       ,l_sys_parameters_rec.days_due
396       ,l_sys_parameters_rec.claim_type_id
397       ,l_sys_parameters_rec.reason_code_id
398       ,l_sys_parameters_rec.autopay_claim_type_id
399       ,l_sys_parameters_rec.autopay_reason_code_id
400       ,l_sys_parameters_rec.autopay_flag
401       ,l_sys_parameters_rec.autopay_periodicity
402       ,l_sys_parameters_rec.autopay_periodicity_type
403       ,l_sys_parameters_rec.accounting_method_option
404       ,l_sys_parameters_rec.billback_trx_type_id
405       ,l_sys_parameters_rec.cm_trx_type_id
406       ,l_sys_parameters_rec.attribute_category
407       ,l_sys_parameters_rec.attribute1
408       ,l_sys_parameters_rec.attribute2
409       ,l_sys_parameters_rec.attribute3
410       ,l_sys_parameters_rec.attribute4
411       ,l_sys_parameters_rec.attribute5
412       ,l_sys_parameters_rec.attribute6
413       ,l_sys_parameters_rec.attribute7
414       ,l_sys_parameters_rec.attribute8
415       ,l_sys_parameters_rec.attribute9
416       ,l_sys_parameters_rec.attribute10
417       ,l_sys_parameters_rec.attribute11
418       ,l_sys_parameters_rec.attribute12
419       ,l_sys_parameters_rec.attribute13
420       ,l_sys_parameters_rec.attribute14
421       ,l_sys_parameters_rec.attribute15
422       ,l_org_id                                       -- org_id
423       ,l_sys_parameters_rec.batch_source_id
424       ,l_sys_parameters_rec.payables_source
425       ,l_sys_parameters_rec.default_owner_id
426       ,l_sys_parameters_rec.auto_assign_flag
427       ,l_sys_parameters_rec.exchange_rate_type
428       ,l_sys_parameters_rec.order_type_id
429       --11.5.10 enhancements
430       ,l_sys_parameters_rec.gl_acct_for_offinv_flag
431       --,l_sys_parameters_rec.short_payment_reason_code_id
432       ,l_sys_parameters_rec.cb_trx_type_id
433       ,l_sys_parameters_rec.pos_write_off_threshold
434       ,l_sys_parameters_rec.neg_write_off_threshold
435       ,l_sys_parameters_rec.adj_rec_trx_id
436       ,l_sys_parameters_rec.wo_rec_trx_id
437       ,l_sys_parameters_rec.neg_wo_rec_trx_id
438       ,l_sys_parameters_rec.un_earned_pay_allow_to
439       ,l_sys_parameters_rec.un_earned_pay_thold_type
440       ,l_sys_parameters_rec.un_earned_pay_threshold
441       ,l_sys_parameters_rec.un_earned_pay_thold_flag
442       ,l_sys_parameters_rec.header_tolerance_calc_code
443       ,l_sys_parameters_rec.header_tolerance_operand
444       ,l_sys_parameters_rec.line_tolerance_calc_code
445       ,l_sys_parameters_rec.line_tolerance_operand
446 
447       ,l_sys_parameters_rec.ship_debit_accrual_flag
448       ,l_sys_parameters_rec.ship_debit_calc_type
449       ,l_sys_parameters_rec.inventory_tracking_flag
450       ,l_sys_parameters_rec.end_cust_relation_flag
451       ,l_sys_parameters_rec.auto_tp_accrual_flag
452       ,l_sys_parameters_rec.gl_balancing_flex_value
453       ,l_sys_parameters_rec.prorate_earnings_flag
454       ,l_sys_parameters_rec.sales_credit_default_type
455       ,l_sys_parameters_rec.net_amt_for_mass_settle_flag
456       ,l_sys_parameters_rec.claim_tax_incl_flag
457       ,l_sys_parameters_rec.rule_based
458       ,l_sys_parameters_rec.approval_new_credit
459       ,l_sys_parameters_rec.approval_matched_credit
460       ,l_sys_parameters_rec.cust_name_match_type
461       ,l_sys_parameters_rec.credit_matching_thold_type
462       ,l_sys_parameters_rec.credit_tolerance_operand
463       ,l_sys_parameters_rec.automate_notification_days
464       ,l_sys_parameters_rec.ssd_inc_adj_type_id
465       ,l_sys_parameters_rec.ssd_dec_adj_type_id
466       ,l_sys_parameters_rec.ssd_imd_claim_flag
467       );
468 
469   ------------------------- finish -------------------------------
470   x_set_of_books_id := l_sys_parameters_rec.set_of_books_id;
471 
472   -- Check for commit
473   IF FND_API.to_boolean(p_commit) THEN
474     COMMIT;
475   END IF;
476 
477   FND_MSG_PUB.count_and_get(
478          p_encoded => FND_API.g_false,
479          p_count   => x_msg_count,
480          p_data    => x_msg_data
481   );
482 
483   IF g_debug THEN
484      OZF_Utility_PVT.debug_message(l_full_name ||': end');
485   END IF;
486 
487 EXCEPTION
488     WHEN FND_API.g_exc_error THEN
489       ROLLBACK TO Create_Sys_Parameters;
490       x_return_status := FND_API.g_ret_sts_error;
491       FND_MSG_PUB.count_and_get (
492            p_encoded => FND_API.g_false
493           ,p_count   => x_msg_count
494           ,p_data    => x_msg_data
495           );
496 
497     WHEN FND_API.g_exc_unexpected_error THEN
498       ROLLBACK TO Create_Sys_Parameters;
499       x_return_status := FND_API.g_ret_sts_unexp_error ;
500       FND_MSG_PUB.count_and_get (
501            p_encoded => FND_API.g_false
502           ,p_count   => x_msg_count
503           ,p_data    => x_msg_data
504           );
505 
506 
507     WHEN OTHERS THEN
508       ROLLBACK TO Create_Sys_Parameters;
509       x_return_status := FND_API.g_ret_sts_unexp_error ;
510       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
511                 THEN
512          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
513       END IF;
514       FND_MSG_PUB.count_and_get(
515            p_encoded => FND_API.g_false
516           ,p_count   => x_msg_count
517           ,p_data    => x_msg_data
518           );
519 
520 END Create_Sys_Parameters;
521 
522 
523 ---------------------------------------------------------------
524 -- PROCEDURE
525 --    Delete_Sys_Parameters
526 --
527 -- HISTORY
528 --    06/12/2000  mchang  Create.
529 ---------------------------------------------------------------
530 PROCEDURE Delete_Sys_Parameters(
531    p_api_version       IN  NUMBER
532   ,p_init_msg_list     IN  VARCHAR2 := FND_API.g_false
533   ,p_commit            IN  VARCHAR2 := FND_API.g_false
534 
535   ,x_return_status     OUT NOCOPY VARCHAR2
536   ,x_msg_count         OUT NOCOPY NUMBER
537   ,x_msg_data          OUT NOCOPY VARCHAR2
538 
539   ,p_set_of_books_id   IN  NUMBER
540   ,p_object_version    IN  NUMBER
541 )
542 IS
543 
544    l_api_version CONSTANT NUMBER       := 1.0;
545    l_api_name    CONSTANT VARCHAR2(30) := 'Delete_Sys_Parameters';
546    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
547    l_org_id      NUMBER :=  MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enhancements
548 
549 BEGIN
550 
551    --------------------- initialize -----------------------
552    SAVEPOINT Delete_Sys_Parameters;
553 
554    IF g_debug THEN
555       OZF_Utility_PVT.debug_message(l_full_name||': start');
556    END IF;
557 
558    IF FND_API.to_boolean(p_init_msg_list) THEN
559       FND_MSG_PUB.initialize;
560    END IF;
561 
562    IF NOT FND_API.compatible_api_call(
563          l_api_version,
564          p_api_version,
565          l_api_name,
566          g_pkg_name
567    ) THEN
568       RAISE FND_API.g_exc_unexpected_error;
569    END IF;
570 
571    x_return_status := FND_API.G_RET_STS_SUCCESS;
572 
573    ------------------------ delete ------------------------
574    IF g_debug THEN
575       OZF_Utility_PVT.debug_message(l_full_name ||': delete');
576    END IF;
577 
581      AND   org_id = l_org_id; -- R12 Enhancements
578    DELETE FROM ozf_sys_parameters_all
579      WHERE set_of_books_id = p_set_of_books_id
580      AND   object_version_number = p_object_version
582 
583    IF (SQL%NOTFOUND) THEN
584       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
585        THEN
586          FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
587          FND_MSG_PUB.add;
588       END IF;
589       RAISE FND_API.g_exc_error;
590    END IF;
591 
592    -------------------- finish --------------------------
593    IF FND_API.to_boolean(p_commit) THEN
594       COMMIT;
595    END IF;
596 
597    FND_MSG_PUB.count_and_get(
598          p_encoded => FND_API.g_false,
599          p_count   => x_msg_count,
600          p_data    => x_msg_data
601    );
602 
603    IF g_debug THEN
604       OZF_Utility_PVT.debug_message(l_full_name ||': end');
605    END IF;
606 
607 EXCEPTION
608    WHEN FND_API.g_exc_error THEN
609       ROLLBACK TO Delete_Sys_Parameters;
610       x_return_status := FND_API.g_ret_sts_error;
611       FND_MSG_PUB.count_and_get(
612             p_encoded => FND_API.g_false,
613             p_count   => x_msg_count,
614             p_data    => x_msg_data
615       );
616 
617    WHEN FND_API.g_exc_unexpected_error THEN
618       ROLLBACK TO Delete_Sys_Parameters;
619       x_return_status := FND_API.g_ret_sts_unexp_error ;
620       FND_MSG_PUB.count_and_get(
621             p_encoded => FND_API.g_false,
622             p_count   => x_msg_count,
623             p_data    => x_msg_data
624       );
625 
626    WHEN OTHERS THEN
627       ROLLBACK TO Delete_Sys_Parameters;
628       x_return_status := FND_API.g_ret_sts_unexp_error ;
629       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
630                 THEN
631          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
632       END IF;
633       FND_MSG_PUB.count_and_get(
634             p_encoded => FND_API.g_false,
635             p_count   => x_msg_count,
636             p_data    => x_msg_data
637       );
638 
639 END Delete_Sys_Parameters;
640 
641 
642 -------------------------------------------------------------------
643 -- PROCEDURE
644 --    Lock_Sys_Parameters
645 --
646 -- HISTORY
647 --    06/12/2000  mchang  Create.
648 --------------------------------------------------------------------
649 PROCEDURE Lock_Sys_Parameters(
650    p_api_version       IN  NUMBER
651   ,p_init_msg_list     IN  VARCHAR2 := FND_API.g_false
652 
653   ,x_return_status     OUT NOCOPY VARCHAR2
654   ,x_msg_count         OUT NOCOPY NUMBER
655   ,x_msg_data          OUT NOCOPY VARCHAR2
656 
657   ,p_set_of_books_id   IN  NUMBER
658   ,p_object_version    IN  NUMBER
659 )
660 IS
661 
662    l_api_version  CONSTANT NUMBER       := 1.0;
663    l_api_name     CONSTANT VARCHAR2(30) := 'Lock_Sys_Parameters';
664    l_full_name    CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
665 
666    l_set_of_books_id      NUMBER;
667 
668    CURSOR c_sys_para IS
669    SELECT  set_of_books_id
670      FROM  ozf_sys_parameters_all
671      WHERE set_of_books_id = p_set_of_books_id
672      AND   object_version_number = p_object_version
673    FOR UPDATE OF set_of_books_id NOWAIT;
674 
675 BEGIN
676 
677    -------------------- initialize ------------------------
678    IF g_debug THEN
679       OZF_Utility_PVT.debug_message(l_full_name||': start');
680    END IF;
681 
682    IF FND_API.to_boolean(p_init_msg_list) THEN
683       FND_MSG_PUB.initialize;
684    END IF;
685 
686    IF NOT FND_API.compatible_api_call(
687          l_api_version,
688          p_api_version,
689          l_api_name,
690          g_pkg_name
691    ) THEN
692       RAISE FND_API.g_exc_unexpected_error;
693    END IF;
694 
695    x_return_status := FND_API.G_RET_STS_SUCCESS;
696 
697    ------------------------ lock -------------------------
698    IF g_debug THEN
699       OZF_Utility_PVT.debug_message(l_full_name||': lock');
700    END IF;
701 
702    OPEN  c_sys_para;
703    FETCH c_sys_para INTO l_set_of_books_id;
704    IF (c_sys_para%NOTFOUND) THEN
705       CLOSE c_sys_para;
706       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
707          FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
708          FND_MSG_PUB.add;
709       END IF;
710       RAISE FND_API.g_exc_error;
711    END IF;
712    CLOSE c_sys_para;
713 
714    -------------------- finish --------------------------
715    FND_MSG_PUB.count_and_get(
716          p_encoded => FND_API.g_false,
717          p_count   => x_msg_count,
718          p_data    => x_msg_data
719    );
720 
721    IF g_debug THEN
722       OZF_Utility_PVT.debug_message(l_full_name ||': end');
723    END IF;
724 
725 EXCEPTION
726    WHEN OZF_Utility_PVT.resource_locked THEN
727       x_return_status := FND_API.g_ret_sts_error;
728                 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
729                    FND_MESSAGE.set_name('OZF', 'OZF_API_RESOURCE_LOCKED');
730                    FND_MSG_PUB.add;
731                 END IF;
732 
733       FND_MSG_PUB.count_and_get(
734             p_encoded => FND_API.g_false,
735             p_count   => x_msg_count,
736             p_data    => x_msg_data
737       );
738 
739         WHEN FND_API.g_exc_error THEN
740       x_return_status := FND_API.g_ret_sts_error;
741       FND_MSG_PUB.count_and_get(
742             p_encoded => FND_API.g_false,
743             p_count   => x_msg_count,
744             p_data    => x_msg_data
745       );
746 
747    WHEN FND_API.g_exc_unexpected_error THEN
748       x_return_status := FND_API.g_ret_sts_unexp_error ;
749       FND_MSG_PUB.count_and_get(
750             p_encoded => FND_API.g_false,
751             p_count   => x_msg_count,
752             p_data    => x_msg_data
753       );
754 
755    WHEN OTHERS THEN
756       x_return_status := FND_API.g_ret_sts_unexp_error ;
757       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
758                 THEN
759          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
760       END IF;
761       FND_MSG_PUB.count_and_get(
762             p_encoded => FND_API.g_false,
763             p_count   => x_msg_count,
764             p_data    => x_msg_data
765       );
766 
767 END Lock_Sys_Parameters;
768 
769 
770 ---------------------------------------------------------------------
771 -- PROCEDURE
772 --    Update_Sys_Parameters
773 --
774 -- HISTORY
775 --    06/12/2000  mchang  Create.
776 --    08/31/2000  mchang  Updated: insert 4 more columns.
777 --    03/15/2001  mchang  Updated: insert autopay setting columns.
778 ----------------------------------------------------------------------
779 PROCEDURE Update_Sys_Parameters(
780    p_api_version             IN  NUMBER
781   ,p_init_msg_list           IN  VARCHAR2  := FND_API.g_false
782   ,p_commit                  IN  VARCHAR2  := FND_API.g_false
783   ,p_validation_level        IN  NUMBER    := FND_API.g_valid_level_full
784 
785   ,x_return_status           OUT NOCOPY VARCHAR2
786   ,x_msg_count               OUT NOCOPY NUMBER
787   ,x_msg_data                OUT NOCOPY VARCHAR2
788 
789   ,p_sys_parameters_rec      IN  sys_parameters_rec_type
790   ,p_mode                    IN  VARCHAR2 := JTF_PLSQL_API.g_update
791   ,x_object_version_number   OUT NOCOPY NUMBER
792 )
793 IS
794 
795    l_api_version CONSTANT   NUMBER := 1.0;
796    l_api_name    CONSTANT   VARCHAR2(30) := 'Update_Sys_Parameters';
797    l_full_name   CONSTANT   VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
798 
799    l_last_updated_by        NUMBER;
800    l_last_update_login      NUMBER;
801 
802    l_sys_parameters_rec     sys_parameters_rec_type;
803    l_return_status          VARCHAR2(1);
804    l_mode                   VARCHAR2(30);
805    l_object_version_number  NUMBER;
806    -- l_org_id                 NUMBER := MO_GLOBAL.GET_CURRENT_ORG_ID();  -- R12 Enhancements
807 
808    l_set_of_books_id       NUMBER;
809    l_set_of_books          VARCHAR2(30);
810 
811 
812 BEGIN
813 
814    -------------------- initialize -------------------------
815    SAVEPOINT Update_Sys_Parameters;
816 
817    IF g_debug THEN
818       OZF_Utility_PVT.debug_message(l_full_name||': start');
819    END IF;
820 
821    IF FND_API.to_boolean(p_init_msg_list) THEN
822       FND_MSG_PUB.initialize;
823    END IF;
824 
825    IF NOT FND_API.compatible_api_call(
826          l_api_version,
827          p_api_version,
828          l_api_name,
829          g_pkg_name
830    ) THEN
831       RAISE FND_API.g_exc_unexpected_error;
832    END IF;
833 
834    x_return_status := FND_API.G_RET_STS_SUCCESS;
835 
836    l_last_updated_by := NVL(FND_GLOBAL.user_id,-1);
837    l_last_update_login := NVL(FND_GLOBAL.conc_login_id,-1);
838 
839    ----------------------- validate ----------------------
840    IF g_debug THEN
841       OZF_Utility_PVT.debug_message(l_full_name ||': validate');
842    END IF;
843 
844    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
845       Check_Sys_Parameters_Items(
846          p_sys_parameters_rec   => p_sys_parameters_rec,
847          p_validation_mode      => JTF_PLSQL_API.g_update,
848          x_return_status        => l_return_status
849       );
850       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
851          RAISE FND_API.g_exc_unexpected_error;
852       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
853          RAISE FND_API.g_exc_error;
854       END IF;
855    END IF;
856 
857    -- replace g_miss_char/num/date with current column values
858    Complete_Sys_Parameters_Rec(
859          p_sys_parameters_rec =>  p_sys_parameters_rec
860         ,x_complete_rec       =>  l_sys_parameters_rec
861    );
862 
863    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
864       Check_Sys_Parameters_Record(
865          p_sys_parameters_rec => p_sys_parameters_rec,
866          p_complete_rec       => l_sys_parameters_rec,
867          p_mode               => p_mode,
868          x_return_status      => l_return_status
869       );
870       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
871          RAISE FND_API.g_exc_unexpected_error;
872       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
873          RAISE FND_API.g_exc_error;
874       END IF;
875    END IF;
876 
877    --Check the tolerances.
878    Check_Batch_Tolerances(
879       p_sys_parameters_rec =>  l_sys_parameters_rec,
880       x_return_status      =>  l_return_status
881     );
882    IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
883          RAISE FND_API.g_exc_unexpected_error;
884    ELSIF l_return_status = FND_API.g_ret_sts_error THEN
885          RAISE FND_API.g_exc_error;
886    END IF;
887 
888    l_object_version_number := l_sys_parameters_rec.object_version_number + 1;
889 ozf_utility_pvt.debug_message('Object version number is :'||
890 l_sys_parameters_rec.object_version_number);
891 
892 ozf_utility_pvt.debug_message('Orgid is :'||p_sys_parameters_rec.org_id);
893 ozf_utility_pvt.debug_message('l_sys_parameters_rec.transfer_to_gl_in :'||l_sys_parameters_rec.transfer_to_gl_in);
894 
895 -- Get the set_of_books_id for given org_id
896    MO_UTILS.Get_Ledger_Info (
897      p_operating_unit     =>  p_sys_parameters_rec.org_id,
898      p_ledger_id          =>  l_set_of_books_id,
899      p_ledger_name        =>  l_set_of_books
900    );
901 
902    l_sys_parameters_rec.set_of_books_id := l_set_of_books_id;
903 
904    -------------------------- update --------------------
905    IF g_debug THEN
906       OZF_Utility_PVT.debug_message(l_full_name ||': update');
907    END IF;
908    UPDATE ozf_sys_parameters_all SET
909        set_of_books_id                  = l_sys_parameters_rec.set_of_books_id
910       ,object_version_number            = l_object_version_number
911       ,last_update_date                 = SYSDATE
912       ,last_updated_by                  = l_last_updated_by
913       ,last_update_login                = l_last_update_login
914       ,request_id                       = FND_GLOBAL.CONC_REQUEST_ID
915       ,program_application_id           = FND_GLOBAL.PROG_APPL_ID
916       ,program_update_date              = SYSDATE
917       ,program_id                       = FND_GLOBAL.CONC_PROGRAM_ID
918       ,created_from                     = l_sys_parameters_rec.created_from
919       ,post_to_gl                       = l_sys_parameters_rec.post_to_gl
920       ,transfer_to_gl_in                = l_sys_parameters_rec.transfer_to_gl_in
921       ,ap_payment_term_id               = l_sys_parameters_rec.ap_payment_term_id
922       ,rounding_level_flag              = l_sys_parameters_rec.rounding_level_flag
923       ,gl_id_rounding                   = l_sys_parameters_rec.gl_id_rounding
924       ,gl_id_ded_clearing               = l_sys_parameters_rec.gl_id_ded_clearing
925       ,gl_id_ded_adj                    = l_sys_parameters_rec.gl_id_ded_adj
926       ,gl_id_accr_promo_liab            = l_sys_parameters_rec.gl_id_accr_promo_liab
927       ,gl_id_ded_adj_clearing           = l_sys_parameters_rec.gl_id_ded_adj_clearing
928       ,gl_rec_ded_account               = l_sys_parameters_rec.gl_rec_ded_account
929       ,gl_rec_clearing_account          = l_sys_parameters_rec.gl_rec_clearing_account
930       ,gl_cost_adjustment_acct          = l_sys_parameters_rec.gl_cost_adjustment_acct
931       ,gl_contra_liability_acct         = l_sys_parameters_rec.gl_contra_liability_acct
932       ,gl_pp_accrual_acct               = l_sys_parameters_rec.gl_pp_accrual_acct
933       ,gl_date_type                     = l_sys_parameters_rec.gl_date_type
934       ,days_due                         = l_sys_parameters_rec.days_due
935       ,claim_type_id                    = l_sys_parameters_rec.claim_type_id
936       ,reason_code_id                   = l_sys_parameters_rec.reason_code_id
937       ,autopay_claim_type_id            = l_sys_parameters_rec.autopay_claim_type_id
938       ,autopay_reason_code_id           = l_sys_parameters_rec.autopay_reason_code_id
939       ,autopay_flag                     = l_sys_parameters_rec.autopay_flag
940       ,autopay_periodicity              = l_sys_parameters_rec.autopay_periodicity
941       ,autopay_periodicity_type         = l_sys_parameters_rec.autopay_periodicity_type
942       ,accounting_method_option         = l_sys_parameters_rec.accounting_method_option
943       ,billback_trx_type_id             = l_sys_parameters_rec.billback_trx_type_id
944       ,cm_trx_type_id                   = l_sys_parameters_rec.cm_trx_type_id
945       ,attribute_category               = l_sys_parameters_rec.attribute_category
946       ,attribute1                       = l_sys_parameters_rec.attribute1
947       ,attribute2                       = l_sys_parameters_rec.attribute2
948       ,attribute3                       = l_sys_parameters_rec.attribute3
949       ,attribute4                       = l_sys_parameters_rec.attribute4
950       ,attribute5                       = l_sys_parameters_rec.attribute5
951       ,attribute6                       = l_sys_parameters_rec.attribute6
952       ,attribute7                       = l_sys_parameters_rec.attribute7
953       ,attribute8                       = l_sys_parameters_rec.attribute8
954       ,attribute9                       = l_sys_parameters_rec.attribute9
955       ,attribute10                      = l_sys_parameters_rec.attribute10
956       ,attribute11                      = l_sys_parameters_rec.attribute11
957       ,attribute12                      = l_sys_parameters_rec.attribute12
958       ,attribute13                      = l_sys_parameters_rec.attribute13
959       ,attribute14                      = l_sys_parameters_rec.attribute14
960       ,attribute15                      = l_sys_parameters_rec.attribute15
961       --,org_id                         = l_sys_parameters_rec.org_id
962       ,batch_source_id                  = l_sys_parameters_rec.batch_source_id
963       ,payables_source                  = l_sys_parameters_rec.payables_source
964       ,default_owner_id                 = l_sys_parameters_rec.default_owner_id
965       ,auto_assign_flag                 = l_sys_parameters_rec.auto_assign_flag
966       ,exchange_rate_type               = l_sys_parameters_rec.exchange_rate_type
967       ,order_type_id                    = l_sys_parameters_rec.order_type_id
968       --11.5.10 enhancements
969       ,gl_acct_for_offinv_flag          = l_sys_parameters_rec.gl_acct_for_offinv_flag
970       --,short_payment_reason_code_id   = l_sys_parameters_rec.short_payment_reason_code_id
971       ,cb_trx_type_id                   = l_sys_parameters_rec.cb_trx_type_id
972       ,pos_write_off_threshold          = l_sys_parameters_rec.pos_write_off_threshold
973       ,neg_write_off_threshold          = l_sys_parameters_rec.neg_write_off_threshold
974       ,adj_rec_trx_id                   = l_sys_parameters_rec.adj_rec_trx_id
975       ,wo_rec_trx_id                    = l_sys_parameters_rec.wo_rec_trx_id
976       ,neg_wo_rec_trx_id                = l_sys_parameters_rec.neg_wo_rec_trx_id
977       ,un_earned_pay_allow_to           = l_sys_parameters_rec.un_earned_pay_allow_to
978       ,un_earned_pay_thold_type         = l_sys_parameters_rec.un_earned_pay_thold_type
979       ,un_earned_pay_thold_amount       = l_sys_parameters_rec.un_earned_pay_threshold
980       ,un_earned_pay_thold_flag         = l_sys_parameters_rec.un_earned_pay_thold_flag
981       ,header_tolerance_calc_code       = l_sys_parameters_rec.header_tolerance_calc_code
982       ,header_tolerance_operand         = l_sys_parameters_rec.header_tolerance_operand
983       ,line_tolerance_calc_code         = l_sys_parameters_rec.line_tolerance_calc_code
984       ,line_tolerance_operand           = l_sys_parameters_rec.line_tolerance_operand
985 
986      ,ship_debit_accrual_flag          = l_sys_parameters_rec.ship_debit_accrual_flag
987       ,ship_debit_calc_type             = l_sys_parameters_rec.ship_debit_calc_type
988       ,inventory_tracking_flag          = l_sys_parameters_rec.inventory_tracking_flag
989       ,end_cust_relation_flag           = l_sys_parameters_rec.end_cust_relation_flag
990       ,auto_tp_accrual_flag             = l_sys_parameters_rec.auto_tp_accrual_flag
991       ,gl_balancing_flex_value          = l_sys_parameters_rec.gl_balancing_flex_value
992       ,prorate_earnings_flag            = l_sys_parameters_rec.prorate_earnings_flag
993       ,sales_credit_default_type        = l_sys_parameters_rec.sales_credit_default_type
994       ,net_amt_for_mass_settle_flag     = l_sys_parameters_rec.net_amt_for_mass_settle_flag
995       ,claim_tax_incl_flag              =  l_sys_parameters_rec.claim_tax_incl_flag
996       -- For Rule Based Settlement
997       ,rule_based                       =  l_sys_parameters_rec.rule_based
998       ,approval_new_credit              =  l_sys_parameters_rec.approval_new_credit
999       ,approval_matched_credit          =  l_sys_parameters_rec.approval_matched_credit
1000       ,cust_name_match_type             =  l_sys_parameters_rec.cust_name_match_type
1001       ,credit_matching_thold_type       =  l_sys_parameters_rec.credit_matching_thold_type
1002       ,credit_tolerance_operand         =  l_sys_parameters_rec.credit_tolerance_operand
1003       -- For Price Protection Parallel Approval ER
1004       ,automate_notification_days       = l_sys_parameters_rec.automate_notification_days
1005       -- For SSD Default Adjustment Types
1006       ,ssd_inc_adj_type_id                            =  l_sys_parameters_rec.ssd_inc_adj_type_id
1007       ,ssd_dec_adj_type_id                            =  l_sys_parameters_rec.ssd_dec_adj_type_id
1008       ,ssd_imd_claim_flag               =       l_sys_parameters_rec.ssd_imd_claim_flag
1009        WHERE object_version_number = l_sys_parameters_rec.object_version_number
1010         --AND org_id = l_org_id; -- R12 Enhancements
1011        AND org_id = p_sys_parameters_rec.org_id;
1012 
1013    IF (SQL%NOTFOUND) THEN
1014       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1015          FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
1016          FND_MSG_PUB.add;
1017       END IF;
1018       RAISE FND_API.g_exc_error;
1019    END IF;
1020 
1021    -------------------- finish --------------------------
1022 
1023    x_object_version_number := l_object_version_number;
1024 
1025    -- Check for commit
1026    IF FND_API.to_boolean(p_commit) THEN
1027       COMMIT;
1028    END IF;
1029 
1030    FND_MSG_PUB.count_and_get(
1031          p_encoded => FND_API.g_false,
1032          p_count   => x_msg_count,
1033          p_data    => x_msg_data
1034    );
1035 
1036    IF g_debug THEN
1037       OZF_Utility_PVT.debug_message(l_full_name ||': end');
1038    END IF;
1039 
1040 EXCEPTION
1041 
1042    WHEN FND_API.g_exc_error THEN
1043       ROLLBACK TO Update_Sys_Parameters;
1044       x_return_status := FND_API.g_ret_sts_error;
1045       FND_MSG_PUB.count_and_get(
1046             p_encoded => FND_API.g_false,
1047             p_count   => x_msg_count,
1048             p_data    => x_msg_data
1049       );
1050 
1051    WHEN FND_API.g_exc_unexpected_error THEN
1052       ROLLBACK TO Update_Sys_Parameters;
1053       x_return_status := FND_API.g_ret_sts_unexp_error ;
1054       FND_MSG_PUB.count_and_get(
1055             p_encoded => FND_API.g_false,
1056             p_count   => x_msg_count,
1057             p_data    => x_msg_data
1058       );
1059 
1060    WHEN OTHERS THEN
1061       ROLLBACK TO Update_Sys_Parameters;
1062       x_return_status := FND_API.g_ret_sts_unexp_error ;
1063       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1064                 THEN
1065          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1066       END IF;
1067       FND_MSG_PUB.count_and_get(
1068             p_encoded => FND_API.g_false,
1069             p_count   => x_msg_count,
1070             p_data    => x_msg_data
1071       );
1072 
1073 END Update_Sys_Parameters;
1074 
1075 
1076 --------------------------------------------------------------------
1077 -- PROCEDURE
1078 --    Validate_Sys_Parameters
1079 --
1080 -- HISTORY
1081 --    06/12/2000  mchang  Create.
1082 --------------------------------------------------------------------
1083 PROCEDURE Validate_Sys_Parameters(
1084    p_api_version        IN  NUMBER
1085   ,p_init_msg_list      IN  VARCHAR2  := FND_API.g_false
1086   ,p_validation_level   IN  NUMBER    := FND_API.g_valid_level_full
1087 
1088   ,x_return_status      OUT NOCOPY VARCHAR2
1089   ,x_msg_count          OUT NOCOPY NUMBER
1090   ,x_msg_data           OUT NOCOPY VARCHAR2
1091 
1092   ,p_sys_parameters_rec IN  sys_parameters_rec_type
1093 )
1094 IS
1095 
1096    l_api_version CONSTANT NUMBER       := 1.0;
1097    l_api_name    CONSTANT VARCHAR2(30) := 'Validate_Sys_Parameters';
1098    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1099 
1100    l_return_status VARCHAR2(1);
1101 
1102 BEGIN
1103 
1104    ----------------------- initialize --------------------
1105    IF g_debug THEN
1106       OZF_Utility_PVT.debug_message(l_full_name||': start');
1107    END IF;
1108 
1109    IF FND_API.to_boolean(p_init_msg_list) THEN
1110       FND_MSG_PUB.initialize;
1111    END IF;
1112 
1113    IF NOT FND_API.compatible_api_call(
1114          l_api_version,
1115          p_api_version,
1116          l_api_name,
1117          g_pkg_name
1118    ) THEN
1119       RAISE FND_API.g_exc_unexpected_error;
1120    END IF;
1121 
1122    x_return_status := FND_API.g_ret_sts_success;
1123 
1124    ---------------------- validate ------------------------
1125    IF g_debug THEN
1126       OZF_Utility_PVT.debug_message(l_full_name||': check items');
1127    END IF;
1128 
1129    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1130       Check_Sys_Parameters_Items(
1131          p_sys_parameters_rec   => p_sys_parameters_rec,
1132          p_validation_mode      => JTF_PLSQL_API.g_create,
1133          x_return_status        => l_return_status
1134       );
1135 
1136       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1137          RAISE FND_API.g_exc_unexpected_error;
1138       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1139          RAISE FND_API.g_exc_error;
1140       END IF;
1141    END IF;
1142 
1143    IF g_debug THEN
1144       OZF_Utility_PVT.debug_message(l_full_name||': check record');
1145    END IF;
1146 
1147    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
1148       Check_Sys_Parameters_Record(
1149          p_sys_parameters_rec   => p_sys_parameters_rec,
1150          p_complete_rec         => NULL,
1151          x_return_status        => l_return_status
1152       );
1153 
1154       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1155          RAISE FND_API.g_exc_unexpected_error;
1156       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1157          RAISE FND_API.g_exc_error;
1158       END IF;
1159    END IF;
1160 
1161 
1162    --Check the tolerances.
1163    Check_Batch_Tolerances(
1164       p_sys_parameters_rec =>  p_sys_parameters_rec,
1165       x_return_status      =>  l_return_status
1166     );
1167    IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1168          RAISE FND_API.g_exc_unexpected_error;
1169    ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1170          RAISE FND_API.g_exc_error;
1171    END IF;
1172 
1173 
1174    -------------------- finish --------------------------
1175    FND_MSG_PUB.count_and_get(
1176          p_encoded => FND_API.g_false,
1177          p_count   => x_msg_count,
1178          p_data    => x_msg_data
1179    );
1180 
1181    IF g_debug THEN
1182       OZF_Utility_PVT.debug_message(l_full_name ||': end');
1183    END IF;
1184 
1185 EXCEPTION
1186 
1187    WHEN FND_API.g_exc_error THEN
1188       x_return_status := FND_API.g_ret_sts_error;
1189       FND_MSG_PUB.count_and_get(
1190             p_encoded => FND_API.g_false,
1191             p_count   => x_msg_count,
1192             p_data    => x_msg_data
1193       );
1194 
1195    WHEN FND_API.g_exc_unexpected_error THEN
1196       x_return_status := FND_API.g_ret_sts_unexp_error ;
1197       FND_MSG_PUB.count_and_get(
1198             p_encoded => FND_API.g_false,
1199             p_count   => x_msg_count,
1200             p_data    => x_msg_data
1201       );
1202 
1203    WHEN OTHERS THEN
1204       x_return_status := FND_API.g_ret_sts_unexp_error;
1205       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1206                 THEN
1207          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1208       END IF;
1209       FND_MSG_PUB.count_and_get(
1210             p_encoded => FND_API.g_false,
1211             p_count   => x_msg_count,
1212             p_data    => x_msg_data
1213       );
1214 
1215 END Validate_Sys_Parameters;
1216 
1217 
1218 ---------------------------------------------------------------------
1219 -- PROCEDURE
1220 --    Check_Sys_Para_Req_Items
1221 --
1222 -- HISTORY
1223 --    06/12/2000  mchang  Create.
1224 ---------------------------------------------------------------------
1225 PROCEDURE Check_Sys_Para_Req_Items(
1226    p_sys_parameters_rec IN  sys_parameters_rec_type
1227   ,x_return_status      OUT NOCOPY VARCHAR2
1228 )
1229 IS
1230 BEGIN
1231 
1232    x_return_status := FND_API.g_ret_sts_success;
1233 
1234 END Check_Sys_Para_Req_Items;
1235 
1236 
1237 ---------------------------------------------------------------------
1238 -- PROCEDURE
1239 --    Check_Sys_Para_Uk_Items
1240 --
1241 -- HISTORY
1242 --    06/12/2000  mchang  Create.
1243 ---------------------------------------------------------------------
1244 PROCEDURE Check_Sys_Para_Uk_Items(
1245    p_sys_parameters_rec IN  sys_parameters_rec_type
1246   ,p_validation_mode    IN  VARCHAR2 := JTF_PLSQL_API.g_create
1247   ,x_return_status      OUT NOCOPY VARCHAR2
1248 )
1249 IS
1250    l_valid_flag  VARCHAR2(1);
1251 BEGIN
1252 
1253    x_return_status := FND_API.g_ret_sts_success;
1254 
1255 END Check_Sys_Para_Uk_Items;
1256 
1257 
1258 ---------------------------------------------------------------------
1259 -- PROCEDURE
1260 --    Check_Sys_Para_Fk_Items
1261 --
1262 -- HISTORY
1263 --    06/12/2000  mchang  Create.
1264 ---------------------------------------------------------------------
1265 PROCEDURE Check_Sys_Para_Fk_Items(
1266    p_sys_parameters_rec IN  sys_parameters_rec_type
1267   ,x_return_status      OUT NOCOPY VARCHAR2
1268 )
1269 IS
1270 BEGIN
1271 
1272    x_return_status := FND_API.g_ret_sts_success;
1273 
1274    -- check other fk items
1275 
1276 END Check_Sys_Para_Fk_Items;
1277 
1278 
1279 ---------------------------------------------------------------------
1280 -- PROCEDURE
1281 --    Check_Sys_Para_Lookup_Items
1282 --
1283 -- HISTORY
1284 --    04/25/2000  mchang  Create.
1285 ---------------------------------------------------------------------
1286 PROCEDURE Check_Sys_Para_Lookup_Items(
1287    p_sys_parameters_rec IN  sys_parameters_rec_type
1288   ,x_return_status      OUT NOCOPY VARCHAR2
1289 )
1290 IS
1291 BEGIN
1292 
1293    x_return_status := FND_API.g_ret_sts_success;
1294 
1295    -- check other lookup codes
1296 
1297 END Check_Sys_Para_Lookup_Items;
1298 
1299 
1300 ---------------------------------------------------------------------
1301 -- PROCEDURE
1302 --    Check_Sys_Para_Flag_Items
1303 --
1304 -- HISTORY
1305 --    06/12/2000  mchang  Create.
1306 --    08/31/2000  mchang  Updated: check flag column value (FND_API.G_TRUE/FALSE)
1307 ---------------------------------------------------------------------
1308 PROCEDURE Check_Sys_Para_Flag_Items(
1309    p_sys_parameters_rec IN  sys_parameters_rec_type
1310   ,x_return_status      OUT NOCOPY VARCHAR2
1311 )
1312 IS
1313 BEGIN
1314 
1315    x_return_status := FND_API.g_ret_sts_success;
1316 
1317    ----------------------- POST_TO_GL ------------------------
1318    IF p_sys_parameters_rec.post_to_gl <> FND_API.g_miss_char
1319       AND p_sys_parameters_rec.post_to_gl IS NOT NULL
1320    THEN
1321       IF p_sys_parameters_rec.post_to_gl <> FND_API.g_true
1322         AND p_sys_parameters_rec.post_to_gl <> FND_API.g_false
1323       THEN
1324          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1325          THEN
1326             FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_BAD_FLAG');
1327                                 FND_MESSAGE.set_token('FLAG', 'POST_TO_GL');
1328             FND_MSG_PUB.add;
1329          END IF;
1330 
1331          x_return_status := FND_API.g_ret_sts_error;
1332          RETURN;
1333       END IF;
1334    END IF;
1335 
1336    ----------------------- TRANSFER_TO_GL_IN ------------------------
1337    IF p_sys_parameters_rec.transfer_to_gl_in <> FND_API.g_miss_char
1338       AND p_sys_parameters_rec.transfer_to_gl_in IS NOT NULL
1339    THEN
1340       IF p_sys_parameters_rec.transfer_to_gl_in <> FND_API.g_true
1341         AND p_sys_parameters_rec.transfer_to_gl_in <> FND_API.g_false
1342       THEN
1343          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1344          THEN
1345             FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_BAD_FLAG');
1346                                 FND_MESSAGE.set_token('FLAG', 'TRANSFER_TO_GL_IN');
1347             FND_MSG_PUB.add;
1348          END IF;
1349 
1350          x_return_status := FND_API.g_ret_sts_error;
1351          RETURN;
1352       END IF;
1353    END IF;
1354 
1355    ----------------------- ROUNDING_LEVEL_FLAG ------------------------
1356    IF p_sys_parameters_rec.rounding_level_flag <> FND_API.g_miss_char
1357       AND p_sys_parameters_rec.rounding_level_flag IS NOT NULL
1358    THEN
1359       IF p_sys_parameters_rec.rounding_level_flag <> FND_API.g_true
1360         AND p_sys_parameters_rec.rounding_level_flag <> FND_API.g_false
1361       THEN
1362          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1363          THEN
1364             FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_BAD_FLAG');
1365                                 FND_MESSAGE.set_token('FLAG', 'ROUNDING_LEVEL_FLAG');
1366             FND_MSG_PUB.add;
1367          END IF;
1368 
1369          x_return_status := FND_API.g_ret_sts_error;
1370          RETURN;
1371       END IF;
1372    END IF;
1373 
1374    ----------------------- AUTOPAY_FLAG ------------------------
1375    IF p_sys_parameters_rec.autopay_flag <> FND_API.g_miss_char
1376       AND p_sys_parameters_rec.autopay_flag IS NOT NULL
1377    THEN
1378       IF p_sys_parameters_rec.autopay_flag <> FND_API.g_true
1379         AND p_sys_parameters_rec.autopay_flag <> FND_API.g_false
1380       THEN
1381          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1382          THEN
1383             FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_BAD_FLAG');
1384                                 FND_MESSAGE.set_token('FLAG', 'AUTOPAY_FLAG');
1385             FND_MSG_PUB.add;
1386          END IF;
1387 
1388          x_return_status := FND_API.g_ret_sts_error;
1389          RETURN;
1390       END IF;
1391    END IF;
1392 
1393    -- check other flags
1394 
1395 END Check_Sys_Para_Flag_Items;
1396 
1397 
1398 ---------------------------------------------------------------------
1399 -- PROCEDURE
1400 --    Check_Sys_Parameters_Items
1401 --
1402 -- HISTORY
1403 --    06/12/2000  mchang  Create.
1404 ---------------------------------------------------------------------
1405 PROCEDURE Check_Sys_Parameters_Items(
1406    p_sys_parameters_rec IN  sys_parameters_rec_type
1407   ,p_validation_mode    IN  VARCHAR2 := JTF_PLSQL_API.g_create
1408   ,x_return_status      OUT NOCOPY VARCHAR2
1409 )
1410 IS
1411 
1412 l_dummy NUMBER;
1413 
1414 CURSOR  c_order_trx_type(cv_id NUMBER)
1415 IS
1416    SELECT 1
1417    FROM oe_transaction_types_vl
1418    WHERE transaction_type_id = cv_id;
1419 
1420 BEGIN
1421 
1422    Check_Sys_Para_Req_Items(
1423       p_sys_parameters_rec  => p_sys_parameters_rec
1424      ,x_return_status       => x_return_status
1425    );
1426 
1427    IF x_return_status <> FND_API.g_ret_sts_success THEN
1428       RETURN;
1429    END IF;
1430 
1431    Check_Sys_Para_Uk_Items(
1432       p_sys_parameters_rec  => p_sys_parameters_rec
1433      ,p_validation_mode     => p_validation_mode
1434      ,x_return_status       => x_return_status
1435    );
1436 
1437    IF x_return_status <> FND_API.g_ret_sts_success THEN
1438       RETURN;
1439    END IF;
1440 
1441    Check_Sys_Para_Fk_Items(
1442       p_sys_parameters_rec  => p_sys_parameters_rec
1443      ,x_return_status       => x_return_status
1444    );
1445 
1446    IF x_return_status <> FND_API.g_ret_sts_success THEN
1447       RETURN;
1448    END IF;
1449 
1450    Check_Sys_Para_Lookup_Items(
1451       p_sys_parameters_rec  => p_sys_parameters_rec
1452      ,x_return_status       => x_return_status
1453    );
1454 
1455    IF x_return_status <> FND_API.g_ret_sts_success THEN
1456       RETURN;
1457    END IF;
1458 
1459    Check_Sys_Para_Flag_Items(
1460       p_sys_parameters_rec  => p_sys_parameters_rec
1461      ,x_return_status       => x_return_status
1462    );
1463 
1464    IF x_return_status <> FND_API.g_ret_sts_success THEN
1465       RETURN;
1466    END IF;
1467 
1468    --Check the validity of OM Transaction type
1469    IF p_sys_parameters_rec.order_type_id IS NOT NULL THEN
1470       OPEN c_order_trx_type(p_sys_parameters_rec.order_type_id);
1471       FETCH c_order_trx_type INTO l_dummy;
1472       CLOSE c_order_trx_type;
1473 
1474       IF l_dummy <> 1 THEN
1475           IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1476             THEN
1477                FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_INVALID_OM_TRX_TYPE');
1478                FND_MSG_PUB.add;
1479            END IF;
1480            x_return_status := FND_API.g_ret_sts_error;
1481            RETURN;
1482       END IF;
1483    END IF;
1484 
1485 END Check_Sys_Parameters_Items;
1486 
1487 
1488 
1489 ---------------------------------------------------------------------
1490 -- PROCEDURE
1491 --    Check_Sys_Parameters_Record
1492 --
1493 -- HISTORY
1494 --    06/12/2000  mchang  Create.
1495 ---------------------------------------------------------------------
1496 PROCEDURE Check_Sys_Parameters_Record(
1497    p_sys_parameters_rec IN  sys_parameters_rec_type
1498   ,p_complete_rec       IN  sys_parameters_rec_type := NULL
1499   ,p_mode               IN  VARCHAR2 := JTF_PLSQL_API.g_create
1500   ,x_return_status      OUT NOCOPY VARCHAR2
1501 )
1502 IS
1503 
1504 BEGIN
1505    x_return_status := FND_API.g_ret_sts_success;
1506 
1507    -- do other record level checkings
1508 
1509 END Check_Sys_Parameters_Record;
1510 
1511 
1512 ---------------------------------------------------------------------
1513 -- PROCEDURE
1514 --    Init_Sys_Parameters_Rec
1515 --
1516 -- HISTORY
1517 --    06/12/2000  mchang  Create.
1518 ---------------------------------------------------------------------
1519 PROCEDURE Init_Sys_Parameters_Rec(
1520    x_sys_parameters_rec   OUT NOCOPY  sys_parameters_rec_type
1521 )
1522 IS
1523 BEGIN
1524 
1525 
1526    RETURN;
1527 END Init_Sys_Parameters_Rec;
1528 
1529 
1530 ---------------------------------------------------------------------
1531 -- PROCEDURE
1532 --    Complete_Sys_Parameters_Rec
1533 --
1534 -- HISTORY
1535 --    06/12/2000  mchang  Create.
1536 ---------------------------------------------------------------------
1537 PROCEDURE Complete_Sys_Parameters_Rec(
1538    p_sys_parameters_rec IN  sys_parameters_rec_type
1539   ,x_complete_rec       OUT NOCOPY sys_parameters_rec_type
1540 )
1541 IS
1542 
1543    CURSOR c_sys_para IS
1544    SELECT
1545       set_of_books_id,
1546       object_version_number,
1547       last_update_date,
1548       last_updated_by,
1549       creation_date,
1550       created_by,
1551       last_update_login,
1552       request_id,
1553       program_application_id,
1554       program_update_date,
1555       program_id,
1556       created_from,
1557       post_to_gl,
1558       transfer_to_gl_in,
1559       ap_payment_term_id,
1560       rounding_level_flag,
1561       gl_id_rounding,
1562       gl_id_ded_clearing,
1563       gl_id_ded_adj,
1564       gl_id_accr_promo_liab,
1565       gl_id_ded_adj_clearing,
1566       gl_rec_ded_account,
1567       gl_rec_clearing_account,
1568       gl_cost_adjustment_acct,
1569       gl_contra_liability_acct ,
1570       gl_pp_accrual_acct ,
1571       gl_date_type,
1572       days_due,
1573       claim_type_id,
1574       reason_code_id,
1575       autopay_claim_type_id,
1576       autopay_reason_code_id,
1577       autopay_flag,
1578       autopay_periodicity,
1579       autopay_periodicity_type,
1580       accounting_method_option,
1581       billback_trx_type_id,
1582       cm_trx_type_id,
1583       attribute_category,
1584       attribute1,
1585       attribute2,
1586       attribute3,
1587       attribute4,
1588       attribute5,
1589       attribute6,
1590       attribute7,
1591       attribute8,
1592       attribute9,
1593       attribute10,
1594       attribute11,
1595       attribute12,
1596       attribute13,
1597       attribute14,
1598       attribute15,
1599       org_id,
1600       batch_source_id,
1601       payables_source,
1602       default_owner_id,
1603       auto_assign_flag,
1604       exchange_rate_type,
1605       order_type_id,
1606       --11.5.10 enhancements.
1607       gl_acct_for_offinv_flag,
1608       --short_payment_reason_code_id,
1609       cb_trx_type_id,
1610           pos_write_off_threshold,
1611           neg_write_off_threshold,
1612           adj_rec_trx_id,
1613           wo_rec_trx_id,
1614           neg_wo_rec_trx_id,
1615           un_earned_pay_allow_to,
1616           un_earned_pay_thold_type,
1617           un_earned_pay_thold_amount,
1618           un_earned_pay_thold_flag,
1619           header_tolerance_calc_code,
1620           header_tolerance_operand,
1621           line_tolerance_calc_code,
1622           line_tolerance_operand,
1623 
1624           ship_debit_accrual_flag,
1625           ship_debit_calc_type,
1626           inventory_tracking_flag,
1627           end_cust_relation_flag,
1628           auto_tp_accrual_flag,
1629           gl_balancing_flex_value,
1630           prorate_earnings_flag,
1631           sales_credit_default_type,
1632           net_amt_for_mass_settle_flag,
1633           claim_tax_incl_flag,
1634           --For Rule Based Settment
1635          rule_based,
1636          approval_new_credit,
1637          approval_matched_credit,
1638          cust_name_match_type,
1639          credit_matching_thold_type,
1640          credit_tolerance_operand,
1641          --For Price Protection Parallel Approval
1642          automate_notification_days,
1643          --For SSD Default Adjustment Types
1644          ssd_inc_adj_type_id,
1645          ssd_dec_adj_type_id,
1646          ssd_imd_claim_flag
1647     FROM  ozf_sys_parameters;
1648 
1649 
1650    l_sys_parameters_rec  c_sys_para%ROWTYPE;
1651 
1652 BEGIN
1653 
1654    x_complete_rec := p_sys_parameters_rec;
1655 
1656    OPEN c_sys_para;
1657    FETCH c_sys_para INTO l_sys_parameters_rec;
1658    IF c_sys_para%NOTFOUND THEN
1659       CLOSE c_sys_para;
1660       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1661          FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
1662          FND_MSG_PUB.add;
1663       END IF;
1664       RAISE FND_API.g_exc_error;
1665    END IF;
1666    CLOSE c_sys_para;
1667 
1668   IF p_sys_parameters_rec.object_version_number = FND_API.G_MISS_NUM THEN
1669      x_complete_rec.object_version_number := NULL;
1670   END IF;
1671   IF p_sys_parameters_rec.object_version_number IS NULL THEN
1672      x_complete_rec.object_version_number := l_sys_parameters_rec.object_version_number;
1673   END IF;
1674 
1675   IF p_sys_parameters_rec.post_to_gl = FND_API.G_MISS_CHAR  THEN
1676   x_complete_rec.post_to_gl := NULL;
1677 
1678   END IF;
1679   IF p_sys_parameters_rec.post_to_gl IS NULL THEN
1680      x_complete_rec.post_to_gl := l_sys_parameters_rec.post_to_gl;
1681   END IF;
1682   IF p_sys_parameters_rec.transfer_to_gl_in = FND_API.G_MISS_CHAR THEN
1683   ozf_utility_pvt.debug_message('IN transfer_to_gl_in = FND_API.G_MISS_CHAR');
1684      --Commented as transfer_to_gl_in cannot be NULL and as this object is not displayed, the same value is retained.
1685      --x_complete_rec.transfer_to_gl_in := NULL;
1686      x_complete_rec.transfer_to_gl_in := l_sys_parameters_rec.transfer_to_gl_in;
1687   END IF;
1688   IF p_sys_parameters_rec.transfer_to_gl_in IS NULL THEN
1689      x_complete_rec.transfer_to_gl_in := l_sys_parameters_rec.transfer_to_gl_in;
1690   END IF;
1691 
1692   IF p_sys_parameters_rec.ap_payment_term_id = FND_API.G_MISS_NUM  THEN
1693      x_complete_rec.ap_payment_term_id := NULL;
1694   END IF;
1695   IF p_sys_parameters_rec.ap_payment_term_id IS NULL THEN
1696      x_complete_rec.ap_payment_term_id := l_sys_parameters_rec.ap_payment_term_id;
1697   END IF;
1698 
1699   IF p_sys_parameters_rec.rounding_level_flag = FND_API.G_MISS_CHAR THEN
1700      x_complete_rec.rounding_level_flag := NULL;
1701   END IF;
1702   IF p_sys_parameters_rec.rounding_level_flag IS NULL THEN
1703      x_complete_rec.rounding_level_flag := l_sys_parameters_rec.rounding_level_flag;
1704   END IF;
1705 
1706   IF p_sys_parameters_rec.gl_id_rounding = FND_API.G_MISS_NUM  THEN
1707      x_complete_rec.gl_id_rounding := NULL;
1708   END IF;
1709   IF p_sys_parameters_rec.gl_id_rounding IS NULL THEN
1710      x_complete_rec.gl_id_rounding := l_sys_parameters_rec.gl_id_rounding;
1711   END IF;
1712 
1713   IF p_sys_parameters_rec.gl_id_ded_clearing = FND_API.G_MISS_NUM THEN
1714      x_complete_rec.gl_id_ded_clearing := NULL;
1715   END IF;
1716   IF p_sys_parameters_rec.gl_id_ded_clearing IS NULL THEN
1717      x_complete_rec.gl_id_ded_clearing := l_sys_parameters_rec.gl_id_ded_clearing;
1718   END IF;
1719 
1720   IF p_sys_parameters_rec.gl_id_ded_adj = FND_API.G_MISS_NUM  THEN
1721      x_complete_rec.gl_id_ded_adj := NULL;
1722   END IF;
1723   IF p_sys_parameters_rec.gl_id_ded_adj IS NULL THEN
1724      x_complete_rec.gl_id_ded_adj := l_sys_parameters_rec.gl_id_ded_adj;
1725   END IF;
1726 
1727   IF p_sys_parameters_rec.gl_id_accr_promo_liab = FND_API.G_MISS_NUM  THEN
1728      x_complete_rec.gl_id_accr_promo_liab := NULL;
1729   END IF;
1730   IF p_sys_parameters_rec.gl_id_accr_promo_liab IS NULL THEN
1731      x_complete_rec.gl_id_accr_promo_liab := l_sys_parameters_rec.gl_id_accr_promo_liab;
1732   END IF;
1733 
1734   IF p_sys_parameters_rec.gl_id_ded_adj_clearing = FND_API.G_MISS_NUM  THEN
1735      x_complete_rec.gl_id_ded_adj_clearing := NULL;
1736   END IF;
1737   IF p_sys_parameters_rec.gl_id_ded_adj_clearing IS NULL THEN
1738      x_complete_rec.gl_id_ded_adj_clearing := l_sys_parameters_rec.gl_id_ded_adj_clearing;
1739   END IF;
1740 
1741   IF p_sys_parameters_rec.gl_rec_ded_account = FND_API.G_MISS_NUM  THEN
1742      x_complete_rec.gl_rec_ded_account := NULL;
1743   END IF;
1744   IF p_sys_parameters_rec.gl_rec_ded_account IS NULL THEN
1745      x_complete_rec.gl_rec_ded_account := l_sys_parameters_rec.gl_rec_ded_account;
1746   END IF;
1747 
1748 
1749   IF p_sys_parameters_rec.gl_rec_clearing_account = FND_API.G_MISS_NUM  THEN
1750      x_complete_rec.gl_rec_clearing_account := NULL;
1751   END IF;
1752   IF p_sys_parameters_rec.gl_rec_clearing_account IS NULL THEN
1753      x_complete_rec.gl_rec_clearing_account := l_sys_parameters_rec.gl_rec_clearing_account;
1754   END IF;
1755 
1756   IF p_sys_parameters_rec.gl_cost_adjustment_acct = FND_API.G_MISS_NUM  THEN
1757      x_complete_rec.gl_cost_adjustment_acct := NULL;
1758   END IF;
1759   IF p_sys_parameters_rec.gl_cost_adjustment_acct IS NULL THEN
1760      x_complete_rec.gl_cost_adjustment_acct := l_sys_parameters_rec.gl_cost_adjustment_acct;
1761   END IF;
1762 
1763   IF p_sys_parameters_rec.gl_contra_liability_acct = FND_API.G_MISS_NUM  THEN
1764      x_complete_rec.gl_contra_liability_acct := NULL;
1765   END IF;
1766   IF p_sys_parameters_rec.gl_contra_liability_acct IS NULL THEN
1767      x_complete_rec.gl_contra_liability_acct := l_sys_parameters_rec.gl_contra_liability_acct;
1768   END IF;
1769 
1770   IF p_sys_parameters_rec.gl_pp_accrual_acct = FND_API.G_MISS_NUM  THEN
1771      x_complete_rec.gl_pp_accrual_acct := NULL;
1772   END IF;
1773   IF p_sys_parameters_rec.gl_pp_accrual_acct IS NULL THEN
1774      x_complete_rec.gl_pp_accrual_acct := l_sys_parameters_rec.gl_pp_accrual_acct;
1775   END IF;
1776 
1777 
1778   IF p_sys_parameters_rec.gl_date_type = FND_API.G_MISS_CHAR  THEN
1779      x_complete_rec.gl_date_type := NULL;
1780   END IF;
1781   IF p_sys_parameters_rec.gl_date_type IS NULL THEN
1782      x_complete_rec.gl_date_type := l_sys_parameters_rec.gl_date_type;
1783   END IF;
1784 
1785 
1786   IF p_sys_parameters_rec.days_due = FND_API.G_MISS_NUM  THEN
1787      x_complete_rec.days_due := NULL;
1788   END IF;
1789   IF p_sys_parameters_rec.days_due IS NULL THEN
1790      x_complete_rec.days_due := l_sys_parameters_rec.days_due;
1791   END IF;
1792 
1793 
1794   IF p_sys_parameters_rec.claim_type_id = FND_API.G_MISS_NUM  THEN
1795      x_complete_rec.claim_type_id := NULL;
1796   END IF;
1797   IF p_sys_parameters_rec.claim_type_id IS NULL THEN
1798      x_complete_rec.claim_type_id := l_sys_parameters_rec.claim_type_id;
1799   END IF;
1800 
1801 
1802   IF p_sys_parameters_rec.reason_code_id = FND_API.G_MISS_NUM  THEN
1803      x_complete_rec.reason_code_id := NULL;
1804   END IF;
1805   IF p_sys_parameters_rec.reason_code_id IS NULL THEN
1806      x_complete_rec.reason_code_id := l_sys_parameters_rec.reason_code_id;
1807   END IF;
1808 
1809 
1810   IF p_sys_parameters_rec.autopay_claim_type_id = FND_API.G_MISS_NUM  THEN
1811      x_complete_rec.autopay_claim_type_id := NULL;
1812   END IF;
1813   IF p_sys_parameters_rec.autopay_claim_type_id IS NULL THEN
1814      x_complete_rec.autopay_claim_type_id := l_sys_parameters_rec.autopay_claim_type_id;
1815   END IF;
1816 
1817 
1818   IF p_sys_parameters_rec.autopay_reason_code_id = FND_API.G_MISS_NUM  THEN
1819      x_complete_rec.autopay_reason_code_id := NULL;
1820   END IF;
1821   IF p_sys_parameters_rec.autopay_reason_code_id IS NULL THEN
1822      x_complete_rec.autopay_reason_code_id := l_sys_parameters_rec.autopay_reason_code_id;
1823   END IF;
1824 
1825 
1826   IF p_sys_parameters_rec.autopay_flag = FND_API.G_MISS_CHAR  THEN
1827      x_complete_rec.autopay_flag := NULL;
1828   END IF;
1829   IF p_sys_parameters_rec.autopay_flag IS NULL THEN
1830      x_complete_rec.autopay_flag := l_sys_parameters_rec.autopay_flag;
1831   END IF;
1832 
1833 
1834   IF p_sys_parameters_rec.autopay_periodicity = FND_API.G_MISS_NUM  THEN
1835      x_complete_rec.autopay_periodicity := NULL;
1836   END IF;
1837   IF p_sys_parameters_rec.autopay_periodicity IS NULL THEN
1838      x_complete_rec.autopay_periodicity := l_sys_parameters_rec.autopay_periodicity;
1839   END IF;
1840 
1841 
1842   IF p_sys_parameters_rec.autopay_periodicity_type = FND_API.G_MISS_CHAR  THEN
1843      x_complete_rec.autopay_periodicity_type := NULL;
1844   END IF;
1845   IF p_sys_parameters_rec.autopay_periodicity_type IS NULL THEN
1846      x_complete_rec.autopay_periodicity_type := l_sys_parameters_rec.autopay_periodicity_type;
1847   END IF;
1848 
1849 
1850   IF p_sys_parameters_rec.accounting_method_option = FND_API.G_MISS_CHAR  THEN
1851      x_complete_rec.accounting_method_option := NULL;
1852   END IF;
1853   IF p_sys_parameters_rec.accounting_method_option IS NULL THEN
1854      x_complete_rec.accounting_method_option := l_sys_parameters_rec.accounting_method_option;
1855   END IF;
1856 
1857   IF p_sys_parameters_rec.billback_trx_type_id = FND_API.G_MISS_NUM  THEN
1858      x_complete_rec.billback_trx_type_id := NULL;
1859   END IF;
1860   IF p_sys_parameters_rec.billback_trx_type_id IS NULL THEN
1861      x_complete_rec.billback_trx_type_id := l_sys_parameters_rec.billback_trx_type_id;
1862   END IF;
1863 
1864   IF p_sys_parameters_rec.cm_trx_type_id = FND_API.G_MISS_NUM  THEN
1865      x_complete_rec.cm_trx_type_id := NULL;
1866   END IF;
1867   IF p_sys_parameters_rec.cm_trx_type_id IS NULL THEN
1868      x_complete_rec.cm_trx_type_id := l_sys_parameters_rec.cm_trx_type_id;
1869   END IF;
1870 
1871   IF p_sys_parameters_rec.attribute_category = FND_API.G_MISS_CHAR THEN
1872      x_complete_rec.attribute_category := NULL;
1873   END IF;
1874   IF p_sys_parameters_rec.attribute_category IS NULL THEN
1875      x_complete_rec.attribute_category := l_sys_parameters_rec.attribute_category;
1876   END IF;
1877 
1878   IF p_sys_parameters_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1879      x_complete_rec.attribute1 := NULL;
1880   END IF;
1881   IF p_sys_parameters_rec.attribute1 IS NULL THEN
1882      x_complete_rec.attribute1 := l_sys_parameters_rec.attribute1;
1883   END IF;
1884 
1885   IF p_sys_parameters_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1886      x_complete_rec.attribute2 := NULL;
1887   END IF;
1888   IF p_sys_parameters_rec.attribute2 IS NULL THEN
1889      x_complete_rec.attribute2 := l_sys_parameters_rec.attribute2;
1890   END IF;
1891 
1892   IF p_sys_parameters_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1893      x_complete_rec.attribute3 := NULL;
1894   END IF;
1895   IF p_sys_parameters_rec.attribute3 IS NULL THEN
1896      x_complete_rec.attribute3 := l_sys_parameters_rec.attribute3;
1897   END IF;
1898 
1899   IF p_sys_parameters_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1900      x_complete_rec.attribute4 := NULL;
1901   END IF;
1902   IF p_sys_parameters_rec.attribute4 IS NULL THEN
1903      x_complete_rec.attribute4 := l_sys_parameters_rec.attribute4;
1904   END IF;
1905 
1906   IF p_sys_parameters_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1907      x_complete_rec.attribute5 := NULL;
1908   END IF;
1909   IF p_sys_parameters_rec.attribute5 IS NULL THEN
1910      x_complete_rec.attribute5 := l_sys_parameters_rec.attribute5;
1911   END IF;
1912 
1913   IF p_sys_parameters_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1914      x_complete_rec.attribute6 := NULL;
1915   END IF;
1916   IF p_sys_parameters_rec.attribute6 IS NULL THEN
1917      x_complete_rec.attribute6 := l_sys_parameters_rec.attribute6;
1918   END IF;
1919 
1920   IF p_sys_parameters_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1921      x_complete_rec.attribute7 := NULL;
1922   END IF;
1923   IF p_sys_parameters_rec.attribute7 IS NULL THEN
1924      x_complete_rec.attribute7 := l_sys_parameters_rec.attribute7;
1925   END IF;
1926 
1927   IF p_sys_parameters_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1928      x_complete_rec.attribute8 := NULL;
1929   END IF;
1930   IF p_sys_parameters_rec.attribute8 IS NULL THEN
1931      x_complete_rec.attribute8 := l_sys_parameters_rec.attribute8;
1932   END IF;
1933 
1934   IF p_sys_parameters_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1935      x_complete_rec.attribute9 := NULL;
1936   END IF;
1937   IF p_sys_parameters_rec.attribute9 IS NULL THEN
1938      x_complete_rec.attribute9 := l_sys_parameters_rec.attribute9;
1939   END IF;
1940 
1941   IF p_sys_parameters_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1942      x_complete_rec.attribute10 := NULL;
1943   END IF;
1944   IF p_sys_parameters_rec.attribute10 IS NULL THEN
1945      x_complete_rec.attribute10 := l_sys_parameters_rec.attribute10;
1946   END IF;
1947 
1948   IF p_sys_parameters_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1949      x_complete_rec.attribute11 := NULL;
1950   END IF;
1951   IF p_sys_parameters_rec.attribute11 IS NULL THEN
1952      x_complete_rec.attribute11 := l_sys_parameters_rec.attribute11;
1953   END IF;
1954 
1955   IF p_sys_parameters_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1956      x_complete_rec.attribute12 := NULL;
1957   END IF;
1958   IF p_sys_parameters_rec.attribute12 IS NULL THEN
1959      x_complete_rec.attribute12 := l_sys_parameters_rec.attribute12;
1960   END IF;
1961 
1962   IF p_sys_parameters_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1963      x_complete_rec.attribute13 := NULL;
1964   END IF;
1965   IF p_sys_parameters_rec.attribute13 IS NULL THEN
1966      x_complete_rec.attribute13 := l_sys_parameters_rec.attribute13;
1967   END IF;
1968 
1969   IF p_sys_parameters_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1970      x_complete_rec.attribute14 := NULL;
1971   END IF;
1972   IF p_sys_parameters_rec.attribute14 IS NULL THEN
1973      x_complete_rec.attribute14 := l_sys_parameters_rec.attribute14;
1974   END IF;
1975 
1976   IF p_sys_parameters_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1977      x_complete_rec.attribute15 := NULL;
1978   END IF;
1979   IF p_sys_parameters_rec.attribute15 IS NULL THEN
1980      x_complete_rec.attribute15 := l_sys_parameters_rec.attribute15;
1981   END IF;
1982 
1983   IF p_sys_parameters_rec.org_id = FND_API.G_MISS_NUM THEN
1984      x_complete_rec.org_id := NULL;
1985   END IF;
1986   IF p_sys_parameters_rec.org_id IS NULL THEN
1987      x_complete_rec.org_id := l_sys_parameters_rec.org_id;
1988   END IF;
1989 
1990   IF p_sys_parameters_rec.batch_source_id = FND_API.G_MISS_NUM THEN
1991      x_complete_rec.batch_source_id := NULL;
1992   END IF;
1993   IF p_sys_parameters_rec.batch_source_id IS NULL THEN
1994      x_complete_rec.batch_source_id := l_sys_parameters_rec.batch_source_id;
1995   END IF;
1996 
1997   IF p_sys_parameters_rec.payables_source = FND_API.G_MISS_CHAR THEN
1998      x_complete_rec.payables_source := NULL;
1999   END IF;
2000   IF p_sys_parameters_rec.payables_source IS NULL THEN
2001      x_complete_rec.payables_source := l_sys_parameters_rec.payables_source;
2002   END IF;
2003 
2004   IF p_sys_parameters_rec.default_owner_id = FND_API.G_MISS_NUM THEN
2005      x_complete_rec.default_owner_id := NULL;
2006   END IF;
2007   IF p_sys_parameters_rec.default_owner_id IS NULL THEN
2008      x_complete_rec.default_owner_id := l_sys_parameters_rec.default_owner_id;
2009   END IF;
2010 
2011   IF p_sys_parameters_rec.auto_assign_flag = FND_API.G_MISS_CHAR THEN
2012      x_complete_rec.auto_assign_flag := NULL;
2013   END IF;
2014   IF p_sys_parameters_rec.auto_assign_flag IS NULL THEN
2015      x_complete_rec.auto_assign_flag := l_sys_parameters_rec.auto_assign_flag;
2016   END IF;
2017 
2018   IF p_sys_parameters_rec.exchange_rate_type = FND_API.G_MISS_CHAR THEN
2019      x_complete_rec.exchange_rate_type := NULL;
2020   END IF;
2021   IF p_sys_parameters_rec.exchange_rate_type IS NULL THEN
2022      x_complete_rec.exchange_rate_type := l_sys_parameters_rec.exchange_rate_type;
2023   END IF;
2024 
2025    IF p_sys_parameters_rec.order_type_id = FND_API.G_MISS_NUM THEN
2026      x_complete_rec.order_type_id := NULL;
2027   END IF;
2028    IF p_sys_parameters_rec.order_type_id IS NULL THEN
2029      x_complete_rec.order_type_id := l_sys_parameters_rec.order_type_id;
2030   END IF;
2031 
2032     --11.5.10 enhancements
2033   IF p_sys_parameters_rec.gl_acct_for_offinv_flag = FND_API.G_MISS_CHAR THEN
2034      x_complete_rec.gl_acct_for_offinv_flag := NULL;
2035   END IF;
2036    IF p_sys_parameters_rec.gl_acct_for_offinv_flag IS NULL THEN
2037      x_complete_rec.gl_acct_for_offinv_flag := l_sys_parameters_rec.gl_acct_for_offinv_flag;
2038   END IF;
2039 
2040   /*
2041   IF p_sys_parameters_rec.short_payment_reason_code_id = FND_API.G_MISS_NUM THEN
2042      x_complete_rec.short_payment_reason_code_id := NULL;
2043   END IF;
2044    IF p_sys_parameters_rec.short_payment_reason_code_id IS NULL THEN
2045      x_complete_rec.short_payment_reason_code_id := l_sys_parameters_rec.short_payment_reason_code_id;
2046   END IF;
2047   */
2048 
2049   IF p_sys_parameters_rec.cb_trx_type_id = FND_API.G_MISS_NUM THEN
2050      x_complete_rec.cb_trx_type_id := NULL;
2051   END IF;
2052    IF p_sys_parameters_rec.cb_trx_type_id IS NULL THEN
2053      x_complete_rec.cb_trx_type_id := l_sys_parameters_rec.cb_trx_type_id;
2054   END IF;
2055 
2056   IF p_sys_parameters_rec.pos_write_off_threshold = FND_API.G_MISS_NUM THEN
2057      x_complete_rec.pos_write_off_threshold := NULL;
2058   END IF;
2059    IF p_sys_parameters_rec.pos_write_off_threshold IS NULL THEN
2060      x_complete_rec.pos_write_off_threshold := l_sys_parameters_rec.pos_write_off_threshold;
2061   END IF;
2062 
2063   IF p_sys_parameters_rec.neg_write_off_threshold = FND_API.G_MISS_NUM THEN
2064      x_complete_rec.neg_write_off_threshold := NULL;
2065   END IF;
2066    IF p_sys_parameters_rec.neg_write_off_threshold IS NULL THEN
2067      x_complete_rec.neg_write_off_threshold := l_sys_parameters_rec.neg_write_off_threshold;
2068   END IF;
2069 
2070   IF p_sys_parameters_rec.adj_rec_trx_id = FND_API.G_MISS_NUM THEN
2071      x_complete_rec.adj_rec_trx_id := NULL;
2072   END IF;
2073    IF p_sys_parameters_rec.adj_rec_trx_id IS NULL THEN
2074      x_complete_rec.adj_rec_trx_id := l_sys_parameters_rec.adj_rec_trx_id;
2075   END IF;
2076 
2077   IF p_sys_parameters_rec.wo_rec_trx_id = FND_API.G_MISS_NUM THEN
2078      x_complete_rec.wo_rec_trx_id := NULL;
2079   END IF;
2080    IF p_sys_parameters_rec.wo_rec_trx_id IS NULL THEN
2081      x_complete_rec.wo_rec_trx_id := l_sys_parameters_rec.wo_rec_trx_id;
2082   END IF;
2083 
2084   IF p_sys_parameters_rec.neg_wo_rec_trx_id = FND_API.G_MISS_NUM THEN
2085      x_complete_rec.neg_wo_rec_trx_id := NULL;
2086   END IF;
2087    IF p_sys_parameters_rec.neg_wo_rec_trx_id IS NULL THEN
2088      x_complete_rec.neg_wo_rec_trx_id := l_sys_parameters_rec.neg_wo_rec_trx_id;
2089   END IF;
2090 
2091   IF p_sys_parameters_rec.un_earned_pay_allow_to = FND_API.G_MISS_CHAR THEN
2092      x_complete_rec.un_earned_pay_allow_to := NULL;
2093   END IF;
2094    IF p_sys_parameters_rec.un_earned_pay_allow_to IS NULL THEN
2095      x_complete_rec.un_earned_pay_allow_to := l_sys_parameters_rec.un_earned_pay_allow_to;
2096   END IF;
2097 
2098   IF p_sys_parameters_rec.un_earned_pay_thold_type = FND_API.G_MISS_CHAR THEN
2099      x_complete_rec.un_earned_pay_thold_type := NULL;
2100   END IF;
2101    IF p_sys_parameters_rec.un_earned_pay_thold_type IS NULL THEN
2102      x_complete_rec.un_earned_pay_thold_type := l_sys_parameters_rec.un_earned_pay_thold_type;
2103   END IF;
2104 
2105   IF p_sys_parameters_rec.un_earned_pay_threshold = FND_API.G_MISS_NUM THEN
2106      x_complete_rec.un_earned_pay_threshold := NULL;
2107   END IF;
2108    IF p_sys_parameters_rec.un_earned_pay_threshold IS NULL THEN
2109      x_complete_rec.un_earned_pay_threshold := l_sys_parameters_rec.un_earned_pay_thold_amount;
2110   END IF;
2111 
2112   IF p_sys_parameters_rec.un_earned_pay_thold_flag = FND_API.G_MISS_CHAR THEN
2113      x_complete_rec.un_earned_pay_thold_flag := NULL;
2114   END IF;
2115    IF p_sys_parameters_rec.un_earned_pay_thold_flag IS NULL THEN
2116      x_complete_rec.un_earned_pay_thold_flag := l_sys_parameters_rec.un_earned_pay_thold_flag;
2117   END IF;
2118 
2119   IF p_sys_parameters_rec.header_tolerance_calc_code = FND_API.G_MISS_CHAR THEN
2120      x_complete_rec.header_tolerance_calc_code := NULL;
2121   END IF;
2122    IF p_sys_parameters_rec.header_tolerance_calc_code IS NULL THEN
2123      x_complete_rec.header_tolerance_calc_code := l_sys_parameters_rec.header_tolerance_calc_code;
2124   END IF;
2125 
2126   IF p_sys_parameters_rec.header_tolerance_operand = FND_API.G_MISS_NUM THEN
2127      x_complete_rec.header_tolerance_operand := NULL;
2128   END IF;
2129    IF p_sys_parameters_rec.header_tolerance_operand IS NULL THEN
2130      x_complete_rec.header_tolerance_operand := l_sys_parameters_rec.header_tolerance_operand;
2131   END IF;
2132 
2133   IF p_sys_parameters_rec.line_tolerance_calc_code = FND_API.G_MISS_CHAR THEN
2134      x_complete_rec.line_tolerance_calc_code := NULL;
2135   END IF;
2136    IF p_sys_parameters_rec.line_tolerance_calc_code IS NULL THEN
2137      x_complete_rec.line_tolerance_calc_code := l_sys_parameters_rec.line_tolerance_calc_code;
2138   END IF;
2139 
2140   IF p_sys_parameters_rec.line_tolerance_operand = FND_API.G_MISS_NUM THEN
2141      x_complete_rec.line_tolerance_operand := NULL;
2142   END IF;
2143    IF p_sys_parameters_rec.line_tolerance_operand IS NULL THEN
2144      x_complete_rec.line_tolerance_operand := l_sys_parameters_rec.line_tolerance_operand;
2145   END IF;
2146 
2147   IF p_sys_parameters_rec.ship_debit_accrual_flag = FND_API.G_MISS_CHAR THEN
2148      x_complete_rec.ship_debit_accrual_flag := NULL;
2149   END IF;
2150    IF p_sys_parameters_rec.ship_debit_accrual_flag IS NULL THEN
2151      x_complete_rec.ship_debit_accrual_flag := l_sys_parameters_rec.ship_debit_accrual_flag;
2152   END IF;
2153 
2154   IF p_sys_parameters_rec.ship_debit_calc_type = FND_API.G_MISS_CHAR THEN
2155      x_complete_rec.ship_debit_calc_type := NULL;
2156   END IF;
2157    IF p_sys_parameters_rec.ship_debit_calc_type IS NULL THEN
2158      x_complete_rec.ship_debit_calc_type := l_sys_parameters_rec.ship_debit_calc_type;
2159   END IF;
2160 
2161   IF p_sys_parameters_rec.inventory_tracking_flag = FND_API.G_MISS_CHAR THEN
2162      x_complete_rec.inventory_tracking_flag := NULL;
2163   END IF;
2164    IF p_sys_parameters_rec.inventory_tracking_flag IS NULL THEN
2165      x_complete_rec.inventory_tracking_flag := l_sys_parameters_rec.inventory_tracking_flag;
2166   END IF;
2167 
2168   IF p_sys_parameters_rec.end_cust_relation_flag = FND_API.G_MISS_CHAR THEN
2169      x_complete_rec.end_cust_relation_flag := NULL;
2170   END IF;
2171    IF p_sys_parameters_rec.end_cust_relation_flag IS NULL THEN
2172      x_complete_rec.end_cust_relation_flag := l_sys_parameters_rec.end_cust_relation_flag;
2173   END IF;
2174 
2175   IF p_sys_parameters_rec.auto_tp_accrual_flag = FND_API.G_MISS_CHAR THEN
2176      x_complete_rec.auto_tp_accrual_flag := NULL;
2177   END IF;
2178    IF p_sys_parameters_rec.auto_tp_accrual_flag IS NULL THEN
2179      x_complete_rec.auto_tp_accrual_flag := l_sys_parameters_rec.auto_tp_accrual_flag;
2180   END IF;
2181 
2182   IF p_sys_parameters_rec.gl_balancing_flex_value = FND_API.G_MISS_CHAR THEN
2183      x_complete_rec.gl_balancing_flex_value := NULL;
2184   END IF;
2185    IF p_sys_parameters_rec.gl_balancing_flex_value IS NULL THEN
2186      x_complete_rec.gl_balancing_flex_value := l_sys_parameters_rec.gl_balancing_flex_value;
2187   END IF;
2188 
2189   IF p_sys_parameters_rec.prorate_earnings_flag = FND_API.G_MISS_CHAR THEN
2190      x_complete_rec.prorate_earnings_flag := NULL;
2191   END IF;
2192   IF p_sys_parameters_rec.prorate_earnings_flag IS NULL THEN
2193      x_complete_rec.prorate_earnings_flag := l_sys_parameters_rec.prorate_earnings_flag;
2194   END IF;
2195 
2196   IF p_sys_parameters_rec.sales_credit_default_type = FND_API.G_MISS_CHAR THEN
2197      x_complete_rec.sales_credit_default_type := NULL;
2198   END IF;
2199   IF p_sys_parameters_rec.sales_credit_default_type IS NULL THEN
2200      x_complete_rec.sales_credit_default_type := l_sys_parameters_rec.sales_credit_default_type;
2201   END IF;
2202 
2203   IF p_sys_parameters_rec.net_amt_for_mass_settle_flag = FND_API.G_MISS_CHAR THEN
2204      x_complete_rec.net_amt_for_mass_settle_flag := NULL;
2205   END IF;
2206   IF p_sys_parameters_rec.net_amt_for_mass_settle_flag IS NULL THEN
2207      x_complete_rec.net_amt_for_mass_settle_flag := l_sys_parameters_rec.net_amt_for_mass_settle_flag;
2208   END IF;
2209 
2210   IF p_sys_parameters_rec.claim_tax_incl_flag = FND_API.G_MISS_CHAR THEN
2211      x_complete_rec.claim_tax_incl_flag := NULL;
2212   END IF;
2213   IF p_sys_parameters_rec.claim_tax_incl_flag IS NULL THEN
2214      x_complete_rec.claim_tax_incl_flag := l_sys_parameters_rec.claim_tax_incl_flag;
2215   END IF;
2216   --For Rule Based Settlement
2217   IF p_sys_parameters_rec.rule_based = FND_API.G_MISS_CHAR THEN
2218      x_complete_rec.rule_based := NULL;
2219   END IF;
2220    IF p_sys_parameters_rec.rule_based IS NULL THEN
2221      x_complete_rec.rule_based := l_sys_parameters_rec.rule_based;
2222   END IF;
2223   IF p_sys_parameters_rec.approval_new_credit = FND_API.G_MISS_CHAR THEN
2224      x_complete_rec.approval_new_credit := NULL;
2225   END IF;
2226    IF p_sys_parameters_rec.approval_new_credit IS NULL THEN
2227      x_complete_rec.approval_new_credit := l_sys_parameters_rec.approval_new_credit;
2228   END IF;
2229   IF p_sys_parameters_rec.approval_matched_credit = FND_API.G_MISS_CHAR THEN
2230      x_complete_rec.approval_matched_credit := NULL;
2231   END IF;
2232    IF p_sys_parameters_rec.approval_matched_credit IS NULL THEN
2233      x_complete_rec.approval_matched_credit := l_sys_parameters_rec.approval_matched_credit;
2234   END IF;
2235   IF p_sys_parameters_rec.cust_name_match_type = FND_API.G_MISS_CHAR THEN
2236      x_complete_rec.cust_name_match_type := NULL;
2237   END IF;
2238    IF p_sys_parameters_rec.cust_name_match_type IS NULL THEN
2239      x_complete_rec.cust_name_match_type := l_sys_parameters_rec.cust_name_match_type;
2240   END IF;
2241   IF p_sys_parameters_rec.credit_matching_thold_type = FND_API.G_MISS_CHAR THEN
2242      x_complete_rec.credit_matching_thold_type := NULL;
2243   END IF;
2244    IF p_sys_parameters_rec.credit_matching_thold_type IS NULL THEN
2245      x_complete_rec.credit_matching_thold_type := l_sys_parameters_rec.credit_matching_thold_type;
2246   END IF;
2247 
2248   IF p_sys_parameters_rec.credit_tolerance_operand = FND_API.G_MISS_NUM THEN
2249      x_complete_rec.credit_tolerance_operand := NULL;
2250   END IF;
2251    IF p_sys_parameters_rec.credit_tolerance_operand IS NULL THEN
2252      x_complete_rec.credit_tolerance_operand := l_sys_parameters_rec.credit_tolerance_operand;
2253   END IF;
2254 
2255   -- For Price Protection Parallel Approval
2256   IF p_sys_parameters_rec.automate_notification_days = FND_API.G_MISS_NUM THEN
2257      x_complete_rec.automate_notification_days := NULL;
2258   END IF;
2259   IF p_sys_parameters_rec.automate_notification_days IS NULL THEN
2260      x_complete_rec.automate_notification_days := l_sys_parameters_rec.automate_notification_days;
2261   END IF;
2262 
2263   -- For SSD Default Adjustment Types
2264   IF p_sys_parameters_rec.ssd_inc_adj_type_id = FND_API.G_MISS_NUM THEN
2265      x_complete_rec.ssd_inc_adj_type_id := NULL;
2266   END IF;
2267   IF p_sys_parameters_rec.ssd_inc_adj_type_id IS NULL THEN
2268      x_complete_rec.ssd_inc_adj_type_id := l_sys_parameters_rec.ssd_inc_adj_type_id;
2269   END IF;
2270 
2271   IF p_sys_parameters_rec.ssd_dec_adj_type_id = FND_API.G_MISS_NUM THEN
2272      x_complete_rec.ssd_dec_adj_type_id := NULL;
2273   END IF;
2274   IF p_sys_parameters_rec.ssd_dec_adj_type_id IS NULL THEN
2275      x_complete_rec.ssd_dec_adj_type_id := l_sys_parameters_rec.ssd_dec_adj_type_id;
2276   END IF;
2277 
2278   IF p_sys_parameters_rec.ssd_imd_claim_flag = FND_API.G_MISS_CHAR THEN
2279      x_complete_rec.ssd_imd_claim_flag := NULL;
2280   END IF;
2281   IF p_sys_parameters_rec.ssd_imd_claim_flag IS NULL THEN
2282      x_complete_rec.ssd_imd_claim_flag := l_sys_parameters_rec.ssd_imd_claim_flag;
2283   END IF;
2284 
2285 
2286 
2287 END Complete_Sys_Parameters_Rec;
2288 
2289 END OZF_Sys_Parameters_PVT;