[Home] [Help]
PACKAGE BODY: APPS.OKL_OPEN_INTERFACE_PVT
Source
1 PACKAGE BODY OKL_OPEN_INTERFACE_PVT AS
2 /* $Header: OKLRKOIB.pls 120.109.12020000.4 2013/03/07 05:19:54 racheruv ship $*/
3
4 SUBTYPE krpv_rec_type IS OKL_KRP_PVT.krpv_rec_type;
5 SUBTYPE krpv_tbl_type IS OKL_KRP_PVT.krpv_tbl_type;
6
7 -- GLOBAL VARIABLES
8
9
10 g_customer_account_id NUMBER; -- only populated from populate_header_rec()
11 g_customer_id NUMBER; -- only populated from populate_header_rec()
12 g_bill_to_address_id NUMBER; -- only populated from populate_header_rec()
13 g_release_asset_flag VARCHAR2(1); -- only updated at load_input_record()
14 g_instance_number VARCHAR2(30); -- Parallel submission instance number
15 g_qcl_id NUMBER;
16 G_FA_LINE_LTY_ID OKC_LINE_STYLES_V.ID%TYPE := 42;
17 G_FIN_LINE_LTY_ID OKC_LINE_STYLES_V.ID%TYPE := 33;
18
19 G_BULK_BATCH_SIZE NUMBER := 10000;
20 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKL_OPEN_INTERFACE_PVT';
21 G_APP_NAME CONSTANT VARCHAR2(3) := OKL_API.G_APP_NAME;
22
23 G_API_TYPE CONSTANT VARCHAR2(4) := '_PVT';
24 G_UNEXPECTED_ERROR CONSTANT VARCHAR2(1000) := 'OKL_UNEXPECTED_ERROR';
25 G_MISSING_VALUE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE';
26 G_INVALID_VALUE CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_IMPORT_VALUE';
27 G_VALIDATION_FAILED CONSTANT VARCHAR2(1000) := 'OKL_VALIDATION_FAILED';
28
29 G_NULL_CONTRACT CONSTANT VARCHAr2(1000) := 'OKL_NULL_CONTRACT';
30 G_DUP_VALUE CONSTANT VARCHAr2(1000) := 'OKL_DUP_VALUE';
31 G_LITERAL_MISMATCH CONSTANT VARCHAr2(1000) := 'OKL_LITERAL_MISTMATCH';
32 G_PARTY_ROLE_LINE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PARTY_ROLE_LINE_ERROR';
33 G_TERM_LINE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_TERM_LINE_ERROR';
34 G_TERM_NO_LINE_NUMBER CONSTANT VARCHAR2(1000) := 'OKL_TERM_NO_LINE_NUMBER';
35 G_PAYMENT_NO_LINE_NUMBER CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_NO_LINE_NUMBER';
36 G_PAYMENT_LINE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_LINE_ERROR';
37
38 G_INVALID_CONTRACT CONSTANT VARCHAR2(1000) := 'OKL_INVALID_CONTRACT';
39 G_GUARANTOR_SETUP_ERROR CONSTANT VARCHAR2(1000) := 'OKL_GUARANTOR_SETUP_ERROR';
40 G_INVALID_LTY_CODE CONSTANT VARCHAR2(1000) := 'OKL_INVALID_LTY_CODE';
41 G_INVALID_COMBINATION CONSTANT VARCHAR2(1000) := 'OKL_INVALID_FLEX_COMB';
42 G_PAYMENT_SCHD_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_SCHD_ERROR';
43 G_UOM_SETUP_ERROR CONSTANT VARCHAR2(1000) := 'OKL_UOM_SETUP_ERROR';
44 G_PAYMENT_START_DATE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_START_DATE_ERROR';
45 G_MISSING_VALUE_FOR_STAGE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE_FOR_STAGE';
46 G_MISSING_VALUE_FOR_LINE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE_FOR_LINE';
47 G_MISSING_VALUE_STAGE_LINE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE_STAGE_LINE';
48 G_FIN_ASSET_ERROR CONSTANT VARCHAR2(1000) := 'OKL_FIN_ASSET_ERROR';
49 G_LABEL_SETUP_ERROR CONSTANT VARCHAR2(1000) := 'OKL_LABEL_SETUP_ERROR';
50 --G_INVALID_USAGE_ITEM_ASSOC CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_USAGE_ITEM_ASSOC';
51 G_INVALID_USAGE_ITEM_ASSOC CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_USG_ITEM_ASSOC';
52 G_NULL_PARAMETER CONSTANT VARCHAR2(1000) := 'OKL_NULL_INTF_PARAM';
53 G_INVALID_PARAMETER CONSTANT VARCHAR2(1000) := 'OKL_INVALID_PARAM';
54 G_OKL_TXD_ID CONSTANT VARCHAR2(1000) := 'OKL_LLA_TXD_ID';
55 G_DATESIGNED_LT_START CONSTANT VARCHAR2(1000) := 'OKL_QA_DATESIGNED_LT_START';
56 G_INVALID_TEMPLATE CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_TEMPLATE';
57 G_BILL_VENDOR_INVALID CONSTANT VARCHAR2(1000) := 'OKL_LLA_BILL_VENDOR_INVALID';
58 G_UNSUPPORTED_VALUE CONSTANT VARCHAR2(1000) := 'OKL_LLA_UNSUPPORTED_USAGE';
59 G_QA_USAGE_CHECK CONSTANT VARCHAR2(1000) := 'OKL_QA_USAGE_CHECK';
60 G_QA_FIXED_USAGE CONSTANT VARCHAR2(1000) := 'OKL_QA_FIXED_USAGE';
61 G_INIT_DIRC_COST CONSTANT VARCHAR2(1000) := 'OKL_LLA_INIT_DIRECT_COST';
62 G_STUB_PMNT_BOTH CONSTANT VARCHAR2(1000) := 'OKL_LLA_STUB_PMNT_BOTH';
63 G_DUP_TAX_BOOK CONSTANT VARCHAR2(1000) := 'OKL_LLA_DUP_TAX_BOOK';
64 G_MIXED_ASSET CONSTANT VARCHAR2(1000) := 'OKL_LLA_MIXED_ASSET';
65 G_VALUE_NOT_ALLOWED CONSTANT VARCHAR2(1000) := 'OKL_TERM_VALUE_NOT_ALLOWED';
66 G_NO_STRM_TMPL CONSTANT VARCHAR2(1000) := 'OKL_NO_STRM_TMPL';
67 G_INVALID_NEW_LINE_REQ CONSTANT VARCHAR2(1000) := 'OKL_INVALID_NEW_LINE_REQ';
68 --Bug# 16344245
69 G_LINE_VALUE_NOT_ALLOWED CONSTANT VARCHAR2(1000) := 'OKL_LINE_VALUE_NOT_ALLOWED';
70 G_MULTIPLE_LEGACY_BAL_DATE CONSTANT VARCHAR2(1000) := 'OKL_MULTIPLE_LEGACY_BAL_DATE';
71
72 -- start cklee 02/13/2004 bug# 3440442
73 -- 3rd party insurance
74 G_INSURER CONSTANT VARCHAR2(80) := 'INSURER';
75 G_INSURANCE_AGENT CONSTANT VARCHAR2(80) := 'INSURANCE_AGENT';
76
77 -- OKX_INSURER_V
78 G_INSURANCE_COMPANY_NAME CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_NAME';
79 G_INSURANCE_COMPANY_NUMBER CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_NUMBER';
80 G_INSURANCE_COMPANY_ID CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_ID';
81 G_INSURANCE_COMPANY_SITE_NAME CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_SITE_NAME';
82 G_INSURANCE_COMPANY_SITE_NUM CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_SITE_NUMBER';
83 G_INSURANCE_COMPANY_SITE_ID CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_SITE_ID';
84 -- OKX_INSURANCE_AGENT_V
85 G_AGENT_NAME CONSTANT VARCHAR2(80) := 'AGENT_NAME';
86 G_AGENT_NUMBER CONSTANT VARCHAR2(80) := 'AGENT_NUMBER';
87 G_AGENT_ID CONSTANT VARCHAR2(80) := 'AGENT_ID';
88 G_AGENT_ADDRESS_SITE_NAME CONSTANT VARCHAR2(80) := 'AGENT_ADDRESS_SITE_NAME';
89 G_AGENT_ADDRESS_SITE_NUMBER CONSTANT VARCHAR2(80) := 'AGENT_ADDRESS_SITE_NUMBER';
90 G_AGENT_ADDRESS_SITE_ID CONSTANT VARCHAR2(80) := 'AGENT_ADDRESS_SITE_ID';
91
92 G_DEFAULT_NUM CONSTANT NUMBER := 0;
93 G_DEFAULT_CHAR CONSTANT VARCHAR2(1) := 'X';
94 G_DEFAULT_DATE CONSTANT DATE := TO_DATE('1111','YYYY');
95 G_FINAL_DATE CONSTANT DATE := TO_DATE('1','j') + 5300000;
96 -- end cklee 02/13/2004 bug# 3440442
97 G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKC_API.G_REQUIRED_VALUE;
98 G_COL_NAME_TOKEN CONSTANT VARCHAR2(200) := OKC_API.G_COL_NAME_TOKEN;
99 G_PRODUCT_ID NUMBER;
100 G_REVENUE_RECOGNITION_METHOD okl_product_parameters_v.REVENUE_RECOGNITION_METHOD%TYPE;
101 G_INTEREST_CALCULATION_BASIS okl_product_parameters_v.INTEREST_CALCULATION_BASIS%TYPE;
102 G_DEAL_TYPE okl_product_parameters_v.DEAL_TYPE%TYPE;
103
104 -- hariven - Bug#5393374 - Added - Start
105 G_WF_EVT_KHR_IMPORTED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.imported';
106 G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(11) := 'CONTRACT_ID';
107 -- hariven - Bug#5393374 - Added - End
108
109 TYPE req_tab_type is TABLE of NUMBER index by binary_integer;
110 TYPE batch_tab_type is TABLE of VARCHAR2(30) index by binary_integer;
111
112 TYPE template_h_rec_type IS RECORD (
113 ID OKL_K_HEADERS_FULL_V.ID%TYPE
114 ,OBJECT_VERSION_NUMBER OKL_K_HEADERS_FULL_V.OBJECT_VERSION_NUMBER%TYPE
115 ,SFWT_FLAG OKL_K_HEADERS_FULL_V.SFWT_FLAG%TYPE
116 ,CHR_ID_RESPONSE OKL_K_HEADERS_FULL_V.CHR_ID_RESPONSE%TYPE
117 ,CHR_ID_AWARD OKL_K_HEADERS_FULL_V.CHR_ID_AWARD%TYPE
118 ,CHR_ID_RENEWED OKL_K_HEADERS_FULL_V.CHR_ID_RENEWED%TYPE
119 ,INV_ORGANIZATION_ID OKL_K_HEADERS_FULL_V.INV_ORGANIZATION_ID%TYPE
120 ,STS_CODE OKL_K_HEADERS_FULL_V.STS_CODE%TYPE
121 ,QCL_ID OKL_K_HEADERS_FULL_V.QCL_ID%TYPE
122 ,SCS_CODE OKL_K_HEADERS_FULL_V.SCS_CODE%TYPE
123 ,CONTRACT_NUMBER OKL_K_HEADERS_FULL_V.CONTRACT_NUMBER%TYPE
124 ,CURRENCY_CODE OKL_K_HEADERS_FULL_V.CURRENCY_CODE%TYPE
125 ,CONTRACT_NUMBER_MODIFIER OKL_K_HEADERS_FULL_V.CONTRACT_NUMBER_MODIFIER%TYPE
126 ,ARCHIVED_YN OKL_K_HEADERS_FULL_V.ARCHIVED_YN%TYPE
127 ,DELETED_YN OKL_K_HEADERS_FULL_V.DELETED_YN%TYPE
128 ,CUST_PO_NUMBER_REQ_YN OKL_K_HEADERS_FULL_V.CUST_PO_NUMBER_REQ_YN%TYPE
129 ,PRE_PAY_REQ_YN OKL_K_HEADERS_FULL_V.PRE_PAY_REQ_YN%TYPE
130 ,CUST_PO_NUMBER OKL_K_HEADERS_FULL_V.CUST_PO_NUMBER%TYPE
131 ,SHORT_DESCRIPTION OKL_K_HEADERS_FULL_V.SHORT_DESCRIPTION%TYPE
132 ,COMMENTS OKL_K_HEADERS_FULL_V.COMMENTS%TYPE
133 ,DESCRIPTION OKL_K_HEADERS_FULL_V.DESCRIPTION%TYPE
134 ,DPAS_RATING OKL_K_HEADERS_FULL_V.DPAS_RATING%TYPE
135 ,COGNOMEN OKL_K_HEADERS_FULL_V.COGNOMEN%TYPE
136 ,TEMPLATE_YN OKL_K_HEADERS_FULL_V.TEMPLATE_YN%TYPE
137 ,tEMPLATE_USED OKL_K_HEADERS_FULL_V.TEMPLATE_USED%TYPE
138 ,DATE_APPROVED OKL_K_HEADERS_FULL_V.DATE_APPROVED%TYPE
139 ,DATETIME_CANCELLED OKL_K_HEADERS_FULL_V.DATETIME_CANCELLED%TYPE
140 ,AUTO_RENEW_DAYS OKL_K_HEADERS_FULL_V.AUTO_RENEW_DAYS%TYPE
141 ,DATE_ISSUED OKL_K_HEADERS_FULL_V.DATE_ISSUED%TYPE
142 ,DATETIME_RESPONDED OKL_K_HEADERS_FULL_V.DATETIME_RESPONDED%TYPE
143 ,NON_RESPONSE_REASON OKL_K_HEADERS_FULL_V.NON_RESPONSE_REASON%TYPE
144 ,NON_RESPONSE_EXPLAIN OKL_K_HEADERS_FULL_V.NON_RESPONSE_EXPLAIN%TYPE
145 ,RFP_TYPE OKL_K_HEADERS_FULL_V.RFP_TYPE%TYPE
146 ,CHR_TYPE OKL_K_HEADERS_FULL_V.CHR_TYPE%TYPE
147 ,KEEP_ON_MAIL_LIST OKL_K_HEADERS_FULL_V.KEEP_ON_MAIL_LIST%TYPE
148 ,SET_ASIDE_REASON OKL_K_HEADERS_FULL_V.SET_ASIDE_REASON%TYPE
149 ,SET_ASIDE_PERCENT OKL_K_HEADERS_FULL_V.SET_ASIDE_PERCENT%TYPE
150 ,RESPONSE_COPIES_REQ OKL_K_HEADERS_FULL_V.RESPONSE_COPIES_REQ%TYPE
151 ,DATE_CLOSE_PROJECTED OKL_K_HEADERS_FULL_V.DATE_CLOSE_PROJECTED%TYPE
152 ,DATETIME_PROPOSED OKL_K_HEADERS_FULL_V.DATETIME_PROPOSED%TYPE
153 ,DATE_SIGNED OKL_K_HEADERS_FULL_V.DATE_SIGNED%TYPE
154 ,DATE_TERMINATED OKL_K_HEADERS_FULL_V.DATE_TERMINATED%TYPE
155 ,DATE_RENEWED OKL_K_HEADERS_FULL_V.DATE_RENEWED%TYPE
156 ,TRN_CODE OKL_K_HEADERS_FULL_V.TRN_CODE%TYPE
157 ,START_DATE OKL_K_HEADERS_FULL_V.START_DATE%TYPE
158 ,END_DATE OKL_K_HEADERS_FULL_V.END_DATE%TYPE
159 ,AUTHORING_ORG_ID OKL_K_HEADERS_FULL_V.AUTHORING_ORG_ID%TYPE
160 ,BUY_OR_SELL OKL_K_HEADERS_FULL_V.BUY_OR_SELL%TYPE
161 ,ISSUE_OR_RECEIVE OKL_K_HEADERS_FULL_V.ISSUE_OR_RECEIVE%TYPE
162 ,ESTIMATED_AMOUNT OKL_K_HEADERS_FULL_V.ESTIMATED_AMOUNT%TYPE
163 ,CHR_ID_RENEWED_TO OKL_K_HEADERS_FULL_V.CHR_ID_RENEWED_TO%TYPE
164 ,ESTIMATED_AMOUNT_RENEWED OKL_K_HEADERS_FULL_V.ESTIMATED_AMOUNT_RENEWED%TYPE
165 ,CURRENCY_CODE_RENEWED OKL_K_HEADERS_FULL_V.CURRENCY_CODE_RENEWED%TYPE
166 ,USER_ACCESS_LEVEL OKL_K_HEADERS_FULL_V.USER_ACCESS_LEVEL%TYPE
167 ,UPG_ORIG_SYSTEM_REF OKL_K_HEADERS_FULL_V.UPG_ORIG_SYSTEM_REF%TYPE
168 ,UPG_ORIG_SYSTEM_REF_ID OKL_K_HEADERS_FULL_V.UPG_ORIG_SYSTEM_REF_ID%TYPE
169 ,APPLICATION_ID OKL_K_HEADERS_FULL_V.APPLICATION_ID%TYPE
170 ,RESOLVED_UNTIL OKL_K_HEADERS_FULL_V.RESOLVED_UNTIL%TYPE
171 ,ATTRIBUTE_CATEGORY OKL_K_HEADERS_FULL_V.ATTRIBUTE_CATEGORY%TYPE
172 ,ATTRIBUTE1 OKL_K_HEADERS_FULL_V.ATTRIBUTE1%TYPE
173 ,ATTRIBUTE2 OKL_K_HEADERS_FULL_V.ATTRIBUTE2%TYPE
174 ,ATTRIBUTE3 OKL_K_HEADERS_FULL_V.ATTRIBUTE3%TYPE
175 ,ATTRIBUTE4 OKL_K_HEADERS_FULL_V.ATTRIBUTE4%TYPE
176 ,ATTRIBUTE5 OKL_K_HEADERS_FULL_V.ATTRIBUTE5%TYPE
177 ,ATTRIBUTE6 OKL_K_HEADERS_FULL_V.ATTRIBUTE6%TYPE
178 ,ATTRIBUTE7 OKL_K_HEADERS_FULL_V.ATTRIBUTE7%TYPE
179 ,ATTRIBUTE8 OKL_K_HEADERS_FULL_V.ATTRIBUTE8%TYPE
180 ,ATTRIBUTE9 OKL_K_HEADERS_FULL_V.ATTRIBUTE9%TYPE
181 ,ATTRIBUTE10 OKL_K_HEADERS_FULL_V.ATTRIBUTE10%TYPE
182 ,ATTRIBUTE11 OKL_K_HEADERS_FULL_V.ATTRIBUTE11%TYPE
183 ,ATTRIBUTE12 OKL_K_HEADERS_FULL_V.ATTRIBUTE12%TYPE
184 ,ATTRIBUTE13 OKL_K_HEADERS_FULL_V.ATTRIBUTE13%TYPE
185 ,ATTRIBUTE14 OKL_K_HEADERS_FULL_V.ATTRIBUTE14%TYPE
186 ,ATTRIBUTE15 OKL_K_HEADERS_FULL_V.ATTRIBUTE15%TYPE
187 ,CREATED_BY OKL_K_HEADERS_FULL_V.CREATED_BY%TYPE
188 ,CREATION_DATE OKL_K_HEADERS_FULL_V.CREATION_DATE%TYPE
189 ,LAST_UPDATED_BY OKL_K_HEADERS_FULL_V.LAST_UPDATED_BY%TYPE
190 ,LAST_UPDATE_DATE OKL_K_HEADERS_FULL_V.LAST_UPDATE_DATE%TYPE
191 ,LAST_UPDATE_LOGIN OKL_K_HEADERS_FULL_V.LAST_UPDATE_LOGIN%TYPE
192 ,ORIG_SYSTEM_SOURCE_CODE OKL_K_HEADERS_FULL_V.ORIG_SYSTEM_SOURCE_CODE%TYPE
193 ,ORIG_SYSTEM_ID1 OKL_K_HEADERS_FULL_V.ORIG_SYSTEM_ID1%TYPE
194 ,ORIG_SYSTEM_REFERENCE1 OKL_K_HEADERS_FULL_V.ORIG_SYSTEM_REFERENCE1%TYPE
195 ,KHR_ROW_ID OKL_K_HEADERS_FULL_V.KHR_ROW_ID%TYPE
196 ,KHR_OBJECT_VERSION_NUMBER OKL_K_HEADERS_FULL_V.KHR_OBJECT_VERSION_NUMBER%TYPE
197 ,ISG_ID OKL_K_HEADERS_FULL_V.ISG_ID%TYPE
198 ,KHR_ID OKL_K_HEADERS_FULL_V.KHR_ID%TYPE
199 ,PDT_ID OKL_K_HEADERS_FULL_V.PDT_ID%TYPE
200 ,AMD_CODE OKL_K_HEADERS_FULL_V.AMD_CODE%TYPE
201 ,DATE_FIRST_ACTIVITY OKL_K_HEADERS_FULL_V.DATE_FIRST_ACTIVITY%TYPE
202 ,GENERATE_ACCRUAL_YN OKL_K_HEADERS_FULL_V.GENERATE_ACCRUAL_YN%TYPE
203 ,GENERATE_ACCRUAL_OVERRIDE_YN OKL_K_HEADERS_FULL_V.GENERATE_ACCRUAL_OVERRIDE_YN%TYPE
204 ,DATE_REFINANCED OKL_K_HEADERS_FULL_V.DATE_REFINANCED%TYPE
205 ,CREDIT_ACT_YN OKL_K_HEADERS_FULL_V.CREDIT_ACT_YN%TYPE
206 ,TERM_DURATION OKL_K_HEADERS_FULL_V.TERM_DURATION%TYPE
207 ,CONVERTED_ACCOUNT_YN OKL_K_HEADERS_FULL_V.CONVERTED_ACCOUNT_YN%TYPE
208 ,DATE_CONVERSION_EFFECTIVE OKL_K_HEADERS_FULL_V.DATE_CONVERSION_EFFECTIVE%TYPE
209 ,SYNDICATABLE_YN OKL_K_HEADERS_FULL_V.SYNDICATABLE_YN%TYPE
210 ,SALESTYPE_YN OKL_K_HEADERS_FULL_V.SALESTYPE_YN%TYPE
211 ,DATE_DEAL_TRANSFERRED OKL_K_HEADERS_FULL_V.DATE_DEAL_TRANSFERRED%TYPE
212 ,DATETIME_PROPOSAL_EFFECTIVE OKL_K_HEADERS_FULL_V.DATETIME_PROPOSAL_EFFECTIVE%TYPE
213 ,DATETIME_PROPOSAL_INEFFECTIVE OKL_K_HEADERS_FULL_V.DATETIME_PROPOSAL_INEFFECTIVE%TYPE
214 ,DATE_PROPOSAL_ACCEPTED OKL_K_HEADERS_FULL_V.DATE_PROPOSAL_ACCEPTED%TYPE
215 ,KHR_ATTRIBUTE_CATEGORY OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE_CATEGORY%TYPE
216 ,KHR_ATTRIBUTE1 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE1%TYPE
217 ,KHR_ATTRIBUTE2 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE2%TYPE
218 ,KHR_ATTRIBUTE3 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE3%TYPE
219 ,KHR_ATTRIBUTE4 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE4%TYPE
220 ,KHR_ATTRIBUTE5 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE5%TYPE
221 ,KHR_ATTRIBUTE6 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE6%TYPE
222 ,KHR_ATTRIBUTE7 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE7%TYPE
223 ,KHR_ATTRIBUTE8 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE8%TYPE
224 ,KHR_ATTRIBUTE9 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE9%TYPE
225 ,KHR_ATTRIBUTE10 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE10%TYPE
226 ,KHR_ATTRIBUTE11 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE11%TYPE
227 ,KHR_ATTRIBUTE12 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE12%TYPE
228 ,KHR_ATTRIBUTE13 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE13%TYPE
229 ,KHR_ATTRIBUTE14 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE14%TYPE
230 ,KHR_ATTRIBUTE15 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE15%TYPE
231 ,KHR_CREATED_BY OKL_K_HEADERS_FULL_V.KHR_CREATED_BY%TYPE
232 ,KHR_CREATON_DATE OKL_K_HEADERS_FULL_V.KHR_CREATON_DATE%TYPE
233 ,KHR_LAST_UPDATED_BY OKL_K_HEADERS_FULL_V.KHR_LAST_UPDATED_BY%TYPE
234 ,KHR_LAST_UPDATE_DATE OKL_K_HEADERS_FULL_V.KHR_LAST_UPDATE_DATE%TYPE
235 ,KHR_LAST_UPDATE_LOGIN OKL_K_HEADERS_FULL_V.KHR_LAST_UPDATE_LOGIN%TYPE
236 ,PRE_TAX_YIELD OKL_K_HEADERS_FULL_V.PRE_TAX_YIELD%TYPE
237 ,AFTER_TAX_YIELD OKL_K_HEADERS_FULL_V.AFTER_TAX_YIELD%TYPE
238 ,IMPLICIT_INTEREST_RATE OKL_K_HEADERS_FULL_V.IMPLICIT_INTEREST_RATE%TYPE
239 ,IMPLICIT_NON_IDC_INTEREST_RATE OKL_K_HEADERS_FULL_V.IMPLICIT_NON_IDC_INTEREST_RATE%TYPE
240 ,TARGET_PRE_TAX_YIELD OKL_K_HEADERS_FULL_V.TARGET_PRE_TAX_YIELD%TYPE
241 ,TARGET_AFTER_TAX_YIELD OKL_K_HEADERS_FULL_V.TARGET_AFTER_TAX_YIELD%TYPE
242 ,TARGET_IMPLICIT_INTEREST_RATE OKL_K_HEADERS_FULL_V.TARGET_IMPLICIT_INTEREST_RATE%TYPE
243 ,TARGET_IMPLICIT_NONIDC_INTRATE OKL_K_HEADERS_FULL_V.TARGET_IMPLICIT_NONIDC_INTRATE%TYPE
244 ,DATE_LAST_INTERIM_INTEREST_CAL OKL_K_HEADERS_FULL_V.DATE_LAST_INTERIM_INTEREST_CAL%TYPE
245 ,DEAL_TYPE OKL_K_HEADERS_FULL_V.DEAL_TYPE%TYPE
246 ,PRE_TAX_IRR OKL_K_HEADERS_FULL_V.PRE_TAX_IRR%TYPE
247 ,AFTER_TAX_IRR OKL_K_HEADERS_FULL_V.AFTER_TAX_IRR%TYPE
248 ,EXPECTED_DELIVERY_DATE OKL_K_HEADERS_FULL_V.EXPECTED_DELIVERY_DATE%TYPE
249 ,ACCEPTED_DATE OKL_K_HEADERS_FULL_V.ACCEPTED_DATE%TYPE
250 ,PREFUNDING_ELIGIBLE_YN OKL_K_HEADERS_FULL_V.PREFUNDING_ELIGIBLE_YN%TYPE
251 ,REVOLVING_CREDIT_YN OKL_K_HEADERS_FULL_V.REVOLVING_CREDIT_YN%TYPE
252 ,CURRENCY_CONVERSION_TYPE OKL_K_HEADERS_FULL_V.CURRENCY_CONVERSION_TYPE%TYPE
253 ,CURRENCY_CONVERSION_RATE OKL_K_HEADERS_FULL_V.CURRENCY_CONVERSION_RATE%TYPE
254 ,CURRENCY_CONVERSION_DATE OKL_K_HEADERS_FULL_V.CURRENCY_CONVERSION_DATE%TYPE
255 ,ASSIGNABLE_YN OKL_K_HEADERS_FULL_V.ASSIGNABLE_YN%TYPE
256 ,CUST_ACCT_ID OKL_K_HEADERS_FULL_V.CUST_ACCT_ID%TYPE
257 ,BILL_TO_SITE_USE_ID OKL_K_HEADERS_FULL_V.BILL_TO_SITE_USE_ID%TYPE);
258
259
260 TYPE intf_h_rec_type IS RECORD (
261 BATCH_NUMBER OKL_HEADER_INTERFACE.BATCH_NUMBER%TYPE
262 ,TEMPLATE_NUMBER OKL_HEADER_INTERFACE.TEMPLATE_NUMBER%TYPE
263 ,STATUS OKL_HEADER_INTERFACE.STATUS %TYPE
264 ,CREATED_BY OKL_HEADER_INTERFACE.CREATED_BY %TYPE
265 ,DATE_CREATED OKL_HEADER_INTERFACE.DATE_CREATED %TYPE
266 ,DATE_CREATED_IN_OKL OKL_HEADER_INTERFACE.DATE_CREATED_IN_OKL%TYPE
267 ,APPLICATION_CODE OKL_HEADER_INTERFACE.APPLICATION_CODE%TYPE
268 ,CONTRACT_CATEGORY OKL_HEADER_INTERFACE.CONTRACT_CATEGORY%TYPE
269 ,CONTRACT_NUMBER_OLD OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE
270 ,CONTRACT_SOURCE OKL_HEADER_INTERFACE.CONTRACT_SOURCE%TYPE
271 ,CONTRACT_NUMBER OKL_HEADER_INTERFACE.CONTRACT_NUMBER%TYPE
272 ,CUSTOMER_NUMBER OKL_HEADER_INTERFACE.CUSTOMER_NUMBER%TYPE
273 ,CUSTOMER_ID OKL_HEADER_INTERFACE.CUSTOMER_ID%TYPE
274 ,CUSTOMER_ACCOUNT_NUMBER OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_NUMBER%TYPE
275 ,CUSTOMER_ACCOUNT_ID OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_ID%TYPE
276 ,START_DATE OKL_HEADER_INTERFACE.START_DATE%TYPE
277 ,IMPORT_REQUEST_STAGE OKL_HEADER_INTERFACE.IMPORT_REQUEST_STAGE%TYPE
278 ,CURRENCY_CODE OKL_HEADER_INTERFACE.CURRENCY_CODE%TYPE
279 ,CUSTOMER_PO_NUMBER OKL_HEADER_INTERFACE.CUSTOMER_PO_NUMBER%TYPE
280 ,DATE_SIGNED OKL_HEADER_INTERFACE.DATE_SIGNED%TYPE
281 ,DATE_APPROVED OKL_HEADER_INTERFACE.DATE_APPROVED%TYPE
282 ,ACCEPTANCE_METHOD_CODE OKL_HEADER_INTERFACE.ACCEPTANCE_METHOD_CODE%TYPE
283 ,CONSUMER_CREDIT_ACT_DEAL_FLAG OKL_HEADER_INTERFACE.CONSUMER_CREDIT_ACT_DEAL_FLAG%TYPE
284 ,TERM OKL_HEADER_INTERFACE.TERM%TYPE
285 ,CONVERTED_ACCOUNT OKL_HEADER_INTERFACE.CONVERTED_ACCOUNT%TYPE
286 ,ACCEPTED_DATE OKL_HEADER_INTERFACE.ACCEPTED_DATE%TYPE
287 ,DEAL_TYPE_CODE OKL_HEADER_INTERFACE.DEAL_TYPE_CODE%TYPE
288 ,EXPECTED_DELIVERY_DATE OKL_HEADER_INTERFACE.EXPECTED_DELIVERY_DATE%TYPE
289 ,CONTRACT_DESCRIPTION OKL_HEADER_INTERFACE.CONTRACT_DESCRIPTION%TYPE
290 ,SALESPERSON_NAME OKL_HEADER_INTERFACE.SALESPERSON_NAME%TYPE
291 ,SALESPERSON_ID OKL_HEADER_INTERFACE.SALESPERSON_ID%TYPE
292 ,PRIVATE_LABEL_NUMBER OKL_HEADER_INTERFACE.PRIVATE_LABEL_NUMBER%TYPE
293 ,PRIVATE_LABEL_ID OKL_HEADER_INTERFACE.PRIVATE_LABEL_ID%TYPE
294 ,PRIVATE_LABEL_URL OKL_HEADER_INTERFACE.PRIVATE_LABEL_URL%TYPE
295 ,PROGRAM_AGREEMENT_NUMBER OKL_HEADER_INTERFACE.PROGRAM_AGREEMENT_NUMBER%TYPE
296 ,PROGRAM_AGREEMENT_ID OKL_HEADER_INTERFACE.PROGRAM_AGREEMENT_ID%TYPE
297 ,PROGRAM_VENDOR_NAME OKL_HEADER_INTERFACE.PROGRAM_VENDOR_NAME%TYPE
298 ,PROGRAM_VENDOR_ID OKL_HEADER_INTERFACE.PROGRAM_VENDOR_ID%TYPE
299 ,MASTER_LEASE_AGREEMENT_NUMBER OKL_HEADER_INTERFACE.MASTER_LEASE_AGREEMENT_NUMBER%TYPE
300 ,MASTER_LEASE_AGREEMENT_ID OKL_HEADER_INTERFACE.MASTER_LEASE_AGREEMENT_ID%TYPE
301 ,PRODUCT_NAME OKL_HEADER_INTERFACE.PRODUCT_NAME%TYPE
302 ,PRODUCT_ID OKL_HEADER_INTERFACE.PRODUCT_ID%TYPE
303 ,CALCULATE_RESIDUAL_INSURANCE OKL_HEADER_INTERFACE.CALCULATE_RESIDUAL_INSURANCE%TYPE
304 ,REBOOK_LIMIT_DATE OKL_HEADER_INTERFACE.REBOOK_LIMIT_DATE%TYPE
305 ,IMPORT_REQUEST_ID OKL_HEADER_INTERFACE.IMPORT_REQUEST_ID%TYPE
306 ,END_OF_TERM_OPTION OKL_HEADER_INTERFACE.END_OF_TERM_OPTION%TYPE
307 ,END_OF_TERM_AMOUNT OKL_HEADER_INTERFACE.END_OF_TERM_AMOUNT%TYPE
308 ,MID_TERM_OPTION OKL_HEADER_INTERFACE.MID_TERM_OPTION%TYPE
309 ,MID_TERM_AMOUNT OKL_HEADER_INTERFACE.MID_TERM_AMOUNT%TYPE
310 ,SECURITY_DEPOSIT_HOLD_FLAG OKL_HEADER_INTERFACE.SECURITY_DEPOSIT_HOLD_FLAG%TYPE
311 ,SECURITY_DEPOSIT_NET_FLAG OKL_HEADER_INTERFACE.SECURITY_DEPOSIT_NET_FLAG%TYPE
312 ,SECURITY_DEPOSIT_DATE OKL_HEADER_INTERFACE.SECURITY_DEPOSIT_DATE%TYPE
313 ,RENEWAL_NOTICE_DAYS OKL_HEADER_INTERFACE.RENEWAL_NOTICE_DAYS%TYPE
314 ,RENEWAL_OPTION OKL_HEADER_INTERFACE.RENEWAL_OPTION%TYPE
315 ,RENEWAL_AMOUNT OKL_HEADER_INTERFACE.RENEWAL_AMOUNT%TYPE
316 ,LATE_INTEREST_HELD_UNTIL_DATE OKL_HEADER_INTERFACE.LATE_INTEREST_HELD_UNTIL_DATE%TYPE
317 ,LATE_INTEREST_EXEMPT_FLAG OKL_HEADER_INTERFACE.LATE_INTEREST_EXEMPT_FLAG%TYPE
318 ,LATE_INTEREST_PRODUCT_CODE OKL_HEADER_INTERFACE.LATE_INTEREST_PRODUCT_CODE%TYPE
319 ,LATE_CHARGE_HELD_UNTIL_DATE OKL_HEADER_INTERFACE.LATE_CHARGE_HELD_UNTIL_DATE%TYPE
320 ,LATE_CHARGE_PRODUCT_CODE OKL_HEADER_INTERFACE.LATE_CHARGE_PRODUCT_CODE%TYPE
321 ,LATE_CHARGE_EXEMPT_FLAG OKL_HEADER_INTERFACE.LATE_CHARGE_EXEMPT_FLAG%TYPE
322 ,VARIABLE_RATE OKL_HEADER_INTERFACE.VARIABLE_RATE%TYPE
323 ,CONVERT_TYPE OKL_HEADER_INTERFACE.CONVERT_TYPE%TYPE
324 ,CONVERSION_METHOD OKL_HEADER_INTERFACE.CONVERSION_METHOD%TYPE
325 ,DATE_OF_CONVERSION OKL_HEADER_INTERFACE.DATE_OF_CONVERSION%TYPE
326 ,CONVERT_BY_DATE OKL_HEADER_INTERFACE.CONVERT_BY_DATE%TYPE
327 ,VARIABLE_METHOD OKL_HEADER_INTERFACE.VARIABLE_METHOD%TYPE
328 ,INDEX_NAME OKL_HEADER_INTERFACE.INDEX_NAME%TYPE
329 ,BASE_RATE OKL_HEADER_INTERFACE.BASE_RATE%TYPE
330 ,ADDER OKL_HEADER_INTERFACE.ADDER%TYPE
331 ,MINIMUM_RATE OKL_HEADER_INTERFACE.MINIMUM_RATE%TYPE
332 ,MAXIMUM_RATE OKL_HEADER_INTERFACE.MAXIMUM_RATE%TYPE
333 ,TOLERANCE OKL_HEADER_INTERFACE.TOLERANCE%TYPE
334 ,ADJUSTMENT_FREQUENCY OKL_HEADER_INTERFACE.ADJUSTMENT_FREQUENCY%TYPE
335 ,DAYS_IN_YEAR OKL_HEADER_INTERFACE.DAYS_IN_YEAR%TYPE
336 ,DAYS_IN_MONTH OKL_HEADER_INTERFACE.DAYS_IN_MONTH%TYPE
337 ,INTEREST_METHOD OKL_HEADER_INTERFACE.INTEREST_METHOD%TYPE
338 ,INTEREST_START_DATE OKL_HEADER_INTERFACE.INTEREST_START_DATE%TYPE
339 ,METHOD_OF_CALCULATION OKL_HEADER_INTERFACE.METHOD_OF_CALCULATION%TYPE
340 ,FORMULA_NAME OKL_HEADER_INTERFACE.FORMULA_NAME%TYPE
341 ,CAPITALIZE_FLAG OKL_HEADER_INTERFACE.CAPITALIZE_FLAG%TYPE
342 ,NON_NOTIFICATION_FLAG OKL_HEADER_INTERFACE.NON_NOTIFICATION_FLAG%TYPE
343 ,TAX_WITHHOLDING_FLAG OKL_HEADER_INTERFACE.TAX_WITHHOLDING_FLAG%TYPE
344 ,TAX_CALC_FORMULA_NAME OKL_HEADER_INTERFACE.TAX_CALC_FORMULA_NAME%TYPE
345 ,TAX_OWNER OKL_HEADER_INTERFACE.TAX_OWNER%TYPE
346 ,FACTORING_DATE OKL_HEADER_INTERFACE.FACTORING_DATE%TYPE
347 ,FACTORING_PERCENTAGE OKL_HEADER_INTERFACE.FACTORING_PERCENTAGE%TYPE
348 ,FACTORING_DISCOUNT_RATE OKL_HEADER_INTERFACE.FACTORING_DISCOUNT_RATE%TYPE
349 ,EVERGREEN_ELIGIBLE_FLAG OKL_HEADER_INTERFACE.EVERGREEN_ELIGIBLE_FLAG%TYPE
350 ,BILL_TO_ADDRESS_ID OKL_HEADER_INTERFACE.BILL_TO_ADDRESS_ID%TYPE
351 ,BILL_TO_ADDRESS OKL_HEADER_INTERFACE.BILL_TO_ADDRESS%TYPE
352 ,BANK_ACCOUNT_ID OKL_HEADER_INTERFACE.BANK_ACCOUNT_ID%TYPE
353 ,BANK_ACCOUNT_NUMBER OKL_HEADER_INTERFACE.BANK_ACCOUNT_NUMBER%TYPE
354 ,REASON_FOR_INVOICE_REVIEW OKL_HEADER_INTERFACE.REASON_FOR_INVOICE_REVIEW%TYPE
355 ,INVOICE_REVIEW_UNTIL_DATE OKL_HEADER_INTERFACE.INVOICE_REVIEW_UNTIL_DATE%TYPE
356 ,INVOICE_FORMAT_ID OKL_HEADER_INTERFACE.INVOICE_FORMAT_ID%TYPE
357 ,INVOICE_FORMAT_CODE OKL_HEADER_INTERFACE.INVOICE_FORMAT_CODE%TYPE
358 ,PRINT_LEAD_DAYS OKL_HEADER_INTERFACE.PRINT_LEAD_DAYS%TYPE --hariven bug 5359935
359 ,REVIEW_INVOICE_FLAG OKL_HEADER_INTERFACE.REVIEW_INVOICE_FLAG%TYPE
360 ,PAYMENT_METHOD_ID OKL_HEADER_INTERFACE.PAYMENT_METHOD_ID%TYPE
361 ,PAYMENT_METHOD OKL_HEADER_INTERFACE.PAYMENT_METHOD%TYPE
362 ,AUTHORING_ORG_ID OKL_HEADER_INTERFACE.AUTHORING_ORG_ID%TYPE
363 ,INVENTORY_ORGANIZATION_ID OKL_HEADER_INTERFACE.INVENTORY_ORGANIZATION_ID%TYPE
364 ,POLICY_NUMBER OKL_HEADER_INTERFACE.POLICY_NUMBER%TYPE
365 ,POLICY_EFFECTIVE_FROM OKL_HEADER_INTERFACE.POLICY_EFFECTIVE_FROM%TYPE
366 ,POLICY_EFFECTIVE_TO OKL_HEADER_INTERFACE.POLICY_EFFECTIVE_TO%TYPE
367 ,COVERED_AMOUNT OKL_HEADER_INTERFACE.COVERED_AMOUNT%TYPE
368 ,DEDUCTIBLE_AMOUNT OKL_HEADER_INTERFACE.DEDUCTIBLE_AMOUNT%TYPE
369 ,ENDORSEMENT OKL_HEADER_INTERFACE.ENDORSEMENT%TYPE
370 ,NAME_OF_INSURED OKL_HEADER_INTERFACE.NAME_OF_INSURED%TYPE
371 ,LESSOR_INSURED_FLAG OKL_HEADER_INTERFACE.LESSOR_INSURED_FLAG%TYPE
372 ,LESSOR_PAYEE_FLAG OKL_HEADER_INTERFACE.LESSOR_PAYEE_FLAG%TYPE
373 ,INSURANCE_COMPANY_NAME OKL_HEADER_INTERFACE.INSURANCE_COMPANY_NAME%TYPE
374 ,INSURANCE_COMPANY_ID OKL_HEADER_INTERFACE.INSURANCE_COMPANY_ID%TYPE
375 ,INSURANCE_COMPANY_SITE_NAME OKL_HEADER_INTERFACE.INSURANCE_COMPANY_SITE_NAME%TYPE
376 ,INSURANCE_COMPANY_SITE_ID OKL_HEADER_INTERFACE.INSURANCE_COMPANY_SITE_ID%TYPE
377 ,AGENT_NAME OKL_HEADER_INTERFACE.AGENT_NAME%TYPE
378 ,AGENT_ID OKL_HEADER_INTERFACE.AGENT_ID%TYPE
379 ,AGENT_ADDRESS_SITE_NAME OKL_HEADER_INTERFACE.AGENT_ADDRESS_SITE_NAME%TYPE
380 ,AGENT_ADDRESS_SITE_ID OKL_HEADER_INTERFACE.AGENT_ADDRESS_SITE_ID%TYPE
381 ,PROOF_DUE_DATE OKL_HEADER_INTERFACE.PROOF_DUE_DATE%TYPE
382 ,PROOF_PROVIDED_DATE OKL_HEADER_INTERFACE.PROOF_PROVIDED_DATE%TYPE
383 ,PREFUNDING_ELIGIBLE_FLAG OKL_HEADER_INTERFACE.PREFUNDING_ELIGIBLE_FLAG%TYPE
384 ,PRIVATE_ACTIVITY_BOND_FLAG OKL_HEADER_INTERFACE.PRIVATE_ACTIVITY_BOND_FLAG%TYPE
385 ,RVI_AUTO_CALCULATE_FLAG OKL_HEADER_INTERFACE.RVI_AUTO_CALCULATE_FLAG%TYPE
386 ,RVI_GUARANTEED_AMOUNT OKL_HEADER_INTERFACE.RVI_GUARANTEED_AMOUNT%TYPE
387 ,RVI_PRESENT_GUARANTEED_AMOUNT OKL_HEADER_INTERFACE.RVI_PRESENT_GUARANTEED_AMOUNT%TYPE
388 ,RVI_PREMIUM_AMOUNT OKL_HEADER_INTERFACE.RVI_PREMIUM_AMOUNT%TYPE
389 ,RVI_RATE OKL_HEADER_INTERFACE.RVI_RATE%TYPE
390 ,FLOOR_PRICE_FORMULA OKL_HEADER_INTERFACE.FLOOR_PRICE_FORMULA%TYPE
391 ,REMKT_SALE_PRICE_FORMULA OKL_HEADER_INTERFACE.REMKT_SALE_PRICE_FORMULA%TYPE
392 ,REPURCHASE_QUOTE_OPTION OKL_HEADER_INTERFACE.REPURCHASE_QUOTE_OPTION%TYPE
393 ,REPURCHASE_QUOTE_FORMULA OKL_HEADER_INTERFACE.REPURCHASE_QUOTE_FORMULA%TYPE
394 ,SALE_PRICE_OPTION OKL_HEADER_INTERFACE.SALE_PRICE_OPTION%TYPE
395 ,SALE_PRICE_AMOUNT OKL_HEADER_INTERFACE.SALE_PRICE_AMOUNT%TYPE
396 ,SALE_PRICE_FORMULA OKL_HEADER_INTERFACE.SALE_PRICE_FORMULA%TYPE
397 ,SALE_PRICE_PRORATE OKL_HEADER_INTERFACE.SALE_PRICE_PRORATE%TYPE
398 ,DISCOUNT_RATE_OPTION OKL_HEADER_INTERFACE.DISCOUNT_RATE_OPTION%TYPE
399 ,DISCOUNT_RATE_AMOUNT OKL_HEADER_INTERFACE.DISCOUNT_RATE_AMOUNT%TYPE
400 ,DISCOUNT_RATE_FORMULA OKL_HEADER_INTERFACE.DISCOUNT_RATE_FORMULA%TYPE
401 ,DISCOUNT_RATE_PRORATE OKL_HEADER_INTERFACE.DISCOUNT_RATE_PRORATE%TYPE
402 ,QUOTE_FEE_OPTION OKL_HEADER_INTERFACE.QUOTE_FEE_OPTION%TYPE
403 ,QUOTE_FEE_AMOUNT OKL_HEADER_INTERFACE.QUOTE_FEE_AMOUNT%TYPE
404 ,QUOTE_FEE_FORMULA OKL_HEADER_INTERFACE.QUOTE_FEE_FORMULA%TYPE
405 ,QUOTE_FEE_PRORATE OKL_HEADER_INTERFACE.QUOTE_FEE_PRORATE%TYPE
406 ,ERT_PURCHASE_OPT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT%TYPE
407 ,ERT_PURCHASE_OPT_TYPE OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_TYPE%TYPE
408 ,ERT_PURCHASE_OPT_AMOUNT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_AMOUNT%TYPE
409 ,ERT_PURCHASE_OPT_FORMULA OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_FORMULA%TYPE
410 ,ERT_PURCHASE_OPT_PRORATE OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_PRORATE%TYPE
411 ,ERT_PURCHASE_OPT_MAX_OPT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MAX_OPT%TYPE
412 ,ERT_PURCHASE_OPT_MAX_AMT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MAX_AMT%TYPE
413 ,ERT_PURCHASE_OPT_MAX_FORMULA OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MAX_FORMULA%TYPE
414 ,ERT_PURCHASE_OPT_MIN_OPT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MIN_OPT%TYPE
415 ,ERT_PURCHASE_OPT_MIN_AMT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MIN_AMT%TYPE
416 ,ERT_PURCHASE_OPT_MIN_FORMULA OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MIN_FORMULA%TYPE
417 ,EOT_PURCHASE_OPT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT%TYPE
418 ,EOT_PURCHASE_OPT_TYPE OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_TYPE%TYPE
419 ,EOT_PURCHASE_OPT_AMOUNT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_AMOUNT%TYPE
420 ,EOT_PURCHASE_OPT_FORMULA OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_FORMULA%TYPE
421 ,EOT_PURCHASE_OPT_PRORATE OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_PRORATE%TYPE
422 ,EOT_PURCHASE_OPT_MAX_OPT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MAX_OPT%TYPE
423 ,EOT_PURCHASE_OPT_MAX_AMT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MAX_AMT%TYPE
424 ,EOT_PURCHASE_OPT_MAX_FORMULA OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MAX_FORMULA%TYPE
425 ,EOT_PURCHASE_OPT_MIN_OPT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MIN_OPT%TYPE
426 ,EOT_PURCHASE_OPT_MIN_AMT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MIN_AMT%TYPE
427 ,EOT_PURCHASE_OPT_MIN_FORMULA OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MIN_FORMULA%TYPE
428 ,TQP_ERL_TERMINATION_ALWD_FLAG OKL_HEADER_INTERFACE.TQP_ERL_TERMINATION_ALWD_FLAG%TYPE
429 ,TQP_PRT_TERMINATION_ALWD_FLAG OKL_HEADER_INTERFACE.TQP_PRT_TERMINATION_ALWD_FLAG%TYPE
430 ,QUOTE_EFFECTIVE_DAYS OKL_HEADER_INTERFACE.QUOTE_EFFECTIVE_DAYS%TYPE
431 ,QUOTE_EFF_MAX_DAYS OKL_HEADER_INTERFACE.QUOTE_EFF_MAX_DAYS%TYPE
432 ,EOT_TOLERANCE_DAYS OKL_HEADER_INTERFACE.EOT_TOLERANCE_DAYS%TYPE
433 ,PRT_TERMINATION_APPROVAL_REQ OKL_HEADER_INTERFACE.PRT_TERMINATION_APPROVAL_REQ%TYPE
434 ,PRT_TERMINATION_ALLOWED_FLAG OKL_HEADER_INTERFACE.PRT_TERMINATION_ALLOWED_FLAG%TYPE
435 ,GAIN_LOSS_APPROVAL_REQ OKL_HEADER_INTERFACE.GAIN_LOSS_APPROVAL_REQ%TYPE
436 ,GAIN_LOSS_NET_QUOTE_OPT OKL_HEADER_INTERFACE.GAIN_LOSS_NET_QUOTE_OPT%TYPE
437 ,GAIN_LOSS_NET_QUOTE_AMT OKL_HEADER_INTERFACE.GAIN_LOSS_NET_QUOTE_AMT%TYPE
438 ,GAIN_LOSS_NET_QUOTE_FORMULA OKL_HEADER_INTERFACE.GAIN_LOSS_NET_QUOTE_FORMULA%TYPE
439 ,GAIN_LOSS_TOLERANCE_ALLOWED OKL_HEADER_INTERFACE.GAIN_LOSS_TOLERANCE_ALLOWED%TYPE
440 ,QUOTE_RCPT_CONTRACT_ROLE OKL_HEADER_INTERFACE.QUOTE_RCPT_CONTRACT_ROLE%TYPE
441 ,QUOTE_APPROVER_CONTRACT_ROLE OKL_HEADER_INTERFACE.QUOTE_APPROVER_CONTRACT_ROLE%TYPE
442 ,QUOTE_CRTSY_COPY_CONTRACT_ROLE OKL_HEADER_INTERFACE.QUOTE_CRTSY_COPY_CONTRACT_ROLE%TYPE
443 ,ERT_QUOTE_CALC_TERM_OPTION OKL_HEADER_INTERFACE.ERT_QUOTE_CALC_TERM_OPTION%TYPE
444 ,ERT_QUOTE_CALC_TERM_FORMULA OKL_HEADER_INTERFACE.ERT_QUOTE_CALC_TERM_FORMULA%TYPE
445 ,ERT_CONTRACT_OBLIG_OPT OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_OPT%TYPE
446 ,ERT_CONTRACT_OBLIG_AMOUNT OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_AMOUNT%TYPE
447 ,ERT_CONTRACT_OBLIG_FORMULA OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_FORMULA%TYPE
448 ,ERT_CONTRACT_OBLIG_PRORATE OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_PRORATE%TYPE
449 ,ERT_DISC_RATE_OPT OKL_HEADER_INTERFACE.ERT_DISC_RATE_OPT%TYPE
450 ,ERT_DISC_RATE_AMOUNT OKL_HEADER_INTERFACE.ERT_DISC_RATE_AMOUNT%TYPE
451 ,ERT_DISC_RATE_FORMULA OKL_HEADER_INTERFACE.ERT_DISC_RATE_FORMULA%TYPE
452 ,ERT_DISC_RATE_PRORATE OKL_HEADER_INTERFACE.ERT_DISC_RATE_PRORATE%TYPE
453 ,ERT_QUOTE_FEE_OPT OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_OPT%TYPE
454 ,ERT_QUOTE_FEE_AMOUNT OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_AMOUNT%TYPE
455 ,ERT_QUOTE_FEE_FORMULA OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_FORMULA%TYPE
456 ,ERT_QUOTE_FEE_PRORATE OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_PRORATE%TYPE
457 ,ERT_RETURN_FEE_OPTION OKL_HEADER_INTERFACE.ERT_RETURN_FEE_OPTION%TYPE
458 ,ERT_RETURN_FEE_AMOUNT OKL_HEADER_INTERFACE.ERT_RETURN_FEE_AMOUNT%TYPE
459 ,ERT_RETURN_FEE_FORMULA OKL_HEADER_INTERFACE.ERT_RETURN_FEE_FORMULA%TYPE
460 ,ERT_RETURN_FEE_PRORATE OKL_HEADER_INTERFACE.ERT_RETURN_FEE_PRORATE%TYPE
461 ,ERT_ROLL_INCTV_OPTION OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_OPTION%TYPE
462 ,ERT_ROLL_INCTV_AMOUNT OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_AMOUNT%TYPE
463 ,ERT_ROLL_INCTV_FORMULA OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_FORMULA%TYPE
464 ,ERT_ROLL_INCTV_PRORATE OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_PRORATE%TYPE
465 ,ERT_SECU_DEP_DISPO_OPTION OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_OPTION%TYPE
466 ,ERT_SECU_DEP_DISPO_AMOUNT OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_AMOUNT%TYPE
467 ,ERT_SECU_DEP_DISPO_FORMULA OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_FORMULA%TYPE
468 ,ERT_SECU_DEP_DISPO_PRORATE OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_PRORATE%TYPE
469 ,ERT_TERM_PENALTY_OPTION OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_OPTION%TYPE
470 ,ERT_TERM_PENALTY_AMOUNT OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_AMOUNT%TYPE
471 ,ERT_TERM_PENALTY_FORMULA OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_FORMULA%TYPE
472 ,ERT_TERM_PENALTY_PRORATE OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_PRORATE%TYPE
473 ,ERT_TERM_PENALTY_CAP_OPTION OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_CAP_OPTION%TYPE
474 ,ERT_TERM_PENALTY_CAP_AMOUNT OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_CAP_AMOUNT%TYPE
475 ,ERT_TERM_PENALTY_CAP_FORMULA OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_CAP_FORMULA%TYPE
476 ,ERT_EST_PROP_TAX_OPTION OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_OPTION%TYPE
477 ,ERT_EST_PROP_TAX_AMOUNT OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_AMOUNT%TYPE
478 ,ERT_EST_PROP_TAX_FORMULA OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_FORMULA%TYPE
479 ,ERT_EST_PROP_TAX_PRORATE OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_PRORATE%TYPE
480 ,ERT_CONTR_FEES_OPTION OKL_HEADER_INTERFACE.ERT_CONTR_FEES_OPTION%TYPE
481 ,ERT_OUTSTND_BAL_OPTION OKL_HEADER_INTERFACE.ERT_OUTSTND_BAL_OPTION%TYPE
482 ,ERT_SERV_MANT_OPTION OKL_HEADER_INTERFACE.ERT_SERV_MANT_OPTION%TYPE
483 ,EOT_QUOTE_CALC_TERM_OPTION OKL_HEADER_INTERFACE.EOT_QUOTE_CALC_TERM_OPTION%TYPE
484 ,EOT_QUOTE_CALC_TERM_FORMULA OKL_HEADER_INTERFACE.EOT_QUOTE_CALC_TERM_FORMULA%TYPE
485 ,EOT_CONTRACT_OBLIG_OPT OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_OPT%TYPE
486 ,EOT_CONTRACT_OBLIG_AMOUNT OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_AMOUNT%TYPE
487 ,EOT_CONTRACT_OBLIG_FORMULA OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_FORMULA%TYPE
488 ,EOT_CONTRACT_OBLIG_PRORATE OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_PRORATE%TYPE
489 ,EOT_DISC_RATE_OPT OKL_HEADER_INTERFACE.EOT_DISC_RATE_OPT%TYPE
490 ,EOT_DISC_RATE_AMOUNT OKL_HEADER_INTERFACE.EOT_DISC_RATE_AMOUNT%TYPE
491 ,EOT_DISC_RATE_FORMULA OKL_HEADER_INTERFACE.EOT_DISC_RATE_FORMULA%TYPE
492 ,EOT_DISC_RATE_PRORATE OKL_HEADER_INTERFACE.EOT_DISC_RATE_PRORATE%TYPE
493 ,EOT_QUOTE_FEE_OPT OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_OPT%TYPE
494 ,EOT_QUOTE_FEE_AMOUNT OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_AMOUNT%TYPE
495 ,EOT_QUOTE_FEE_FORMULA OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_FORMULA%TYPE
496 ,EOT_QUOTE_FEE_PRORATE OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_PRORATE%TYPE
497 ,EOT_RETURN_FEE_OPTION OKL_HEADER_INTERFACE.EOT_RETURN_FEE_OPTION%TYPE
498 ,EOT_RETURN_FEE_AMOUNT OKL_HEADER_INTERFACE.EOT_RETURN_FEE_AMOUNT%TYPE
499 ,EOT_RETURN_FEE_FORMULA OKL_HEADER_INTERFACE.EOT_RETURN_FEE_FORMULA%TYPE
500 ,EOT_RETURN_FEE_PRORATE OKL_HEADER_INTERFACE.EOT_RETURN_FEE_PRORATE%TYPE
501 ,EOT_ROLL_INCTV_OPTION OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_OPTION%TYPE
502 ,EOT_ROLL_INCTV_AMOUNT OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_AMOUNT%TYPE
503 ,EOT_ROLL_INCTV_FORMULA OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_FORMULA%TYPE
504 ,EOT_ROLL_INCTV_PRORATE OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_PRORATE%TYPE
505 ,EOT_SECU_DEP_DISPO_OPTION OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_OPTION%TYPE
506 ,EOT_SECU_DEP_DISPO_AMOUNT OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_AMOUNT%TYPE
507 ,EOT_SECU_DEP_DISPO_FORMULA OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_FORMULA%TYPE
508 ,EOT_SECU_DEP_DISPO_PRORATE OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_PRORATE%TYPE
509 ,EOT_TERM_PENALTY_OPTION OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_OPTION%TYPE
510 ,EOT_TERM_PENALTY_AMOUNT OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_AMOUNT%TYPE
511 ,EOT_TERM_PENALTY_FORMULA OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_FORMULA%TYPE
512 ,EOT_TERM_PENALTY_PRORATE OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_PRORATE%TYPE
513 ,EOT_TERM_PENALTY_CAP_OPTION OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_CAP_OPTION%TYPE
514 ,EOT_TERM_PENALTY_CAP_AMOUNT OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_CAP_AMOUNT%TYPE
515 ,EOT_TERM_PENALTY_CAP_FORMULA OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_CAP_FORMULA%TYPE
516 ,EOT_EST_PROP_TAX_OPTION OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_OPTION%TYPE
517 ,EOT_EST_PROP_TAX_AMOUNT OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_AMOUNT%TYPE
518 ,EOT_EST_PROP_TAX_FORMULA OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_FORMULA%TYPE
519 ,EOT_EST_PROP_TAX_PRORATE OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_PRORATE%TYPE
520 ,EOT_CONTR_FEES_OPTION OKL_HEADER_INTERFACE.EOT_CONTR_FEES_OPTION%TYPE
521 ,EOT_OUTSTND_BAL_OPTION OKL_HEADER_INTERFACE.EOT_OUTSTND_BAL_OPTION%TYPE
522 ,EOT_SERV_MANT_OPTION OKL_HEADER_INTERFACE.EOT_SERV_MANT_OPTION%TYPE
523 ,EVERGREEN_PASSTHRU_FEES OKL_HEADER_INTERFACE.EVERGREEN_PASSTHRU_FEES%TYPE
524 ,EVERGREEN_PASSTHRU_PERCENT OKL_HEADER_INTERFACE.EVERGREEN_PASSTHRU_PERCENT%TYPE
525 ,LIEN_TYPE OKL_HEADER_INTERFACE.LIEN_TYPE%TYPE
526 ,FILING_NUMBER OKL_HEADER_INTERFACE.FILING_NUMBER%TYPE
527 ,FILING_DATE OKL_HEADER_INTERFACE.FILING_DATE%TYPE
528 ,FILING_STATUS OKL_HEADER_INTERFACE.FILING_STATUS%TYPE
529 ,LIEN_HOLDER_NAME OKL_HEADER_INTERFACE.LIEN_HOLDER_NAME%TYPE
530 ,LIEN_HOLDER_ID OKL_HEADER_INTERFACE.LIEN_HOLDER_ID%TYPE
531 ,JURISDICTION OKL_HEADER_INTERFACE.JURISDICTION%TYPE
532 ,SUB_JURISDICTION OKL_HEADER_INTERFACE.SUB_JURISDICTION%TYPE
533 ,LIEN_EXPIRATION_DATE OKL_HEADER_INTERFACE.LIEN_EXPIRATION_DATE%TYPE
534 ,LIEN_CONTINUATION_NUMBER OKL_HEADER_INTERFACE.LIEN_CONTINUATION_NUMBER%TYPE
535 ,LIEN_CONTINUATION_DATE OKL_HEADER_INTERFACE.LIEN_CONTINUATION_DATE%TYPE
536 ,TITLE_TYPE OKL_HEADER_INTERFACE.TITLE_TYPE%TYPE
537 ,TITLE_ISSUER_NAME OKL_HEADER_INTERFACE.TITLE_ISSUER_NAME%TYPE
538 ,TITLE_ISSUER_ID OKL_HEADER_INTERFACE.TITLE_ISSUER_ID%TYPE
539 ,TITLE_DATE OKL_HEADER_INTERFACE.TITLE_DATE%TYPE
540 ,TITLE_NUMBER OKL_HEADER_INTERFACE.TITLE_NUMBER%TYPE
541 ,REGISTRATION_NUMBER OKL_HEADER_INTERFACE.REGISTRATION_NUMBER%TYPE
542 ,LOCATION OKL_HEADER_INTERFACE.LOCATION%TYPE
543 ,TITLE_CUSTODIAN_NAME OKL_HEADER_INTERFACE.TITLE_CUSTODIAN_NAME%TYPE
544 ,TITLE_CUSTODIAN_ID OKL_HEADER_INTERFACE.TITLE_CUSTODIAN_ID%TYPE
545 ,PAYEE_SITE OKL_HEADER_INTERFACE.PAYEE_SITE%TYPE
546 ,REGISTRATION_LOCATION OKL_HEADER_INTERFACE.REGISTRATION_LOCATION%TYPE
547 ,REG_EXPIRATION_DATE OKL_HEADER_INTERFACE.REG_EXPIRATION_DATE%TYPE
548 ,CREDIT_LINE_ID OKL_HEADER_INTERFACE.CREDIT_LINE_ID%TYPE
549 ,CREDIT_LINE_NUMBER OKL_HEADER_INTERFACE.CREDIT_LINE_NUMBER%TYPE
550 ,PRTFL_APPROVAL_REQ OKL_HEADER_INTERFACE.PRTFL_APPROVAL_REQ%TYPE
551 ,PRTFL_ASSGN_GROUP OKL_HEADER_INTERFACE.PRTFL_ASSGN_GROUP%TYPE
552 ,PRTFL_BUDGET_AMT_OPT OKL_HEADER_INTERFACE.PRTFL_ASSGN_GROUP%TYPE
553 ,PRTFL_BUDGET_FIXED_AMT OKL_HEADER_INTERFACE.PRTFL_BUDGET_FIXED_AMT%TYPE
554 ,PRTFL_BUDGET_AMT_FORMULA OKL_HEADER_INTERFACE.PRTFL_BUDGET_AMT_FORMULA%TYPE
555 ,PRTFL_DAYS_FROM_CON_EXPR OKL_HEADER_INTERFACE.PRTFL_DAYS_FROM_CON_EXPR%TYPE
556 ,PRTFL_STRATEGY OKL_HEADER_INTERFACE.PRTFL_STRATEGY%TYPE
557 ,PROP_TAX_APPLICABLE OKL_HEADER_INTERFACE.PROP_TAX_APPLICABLE%TYPE
558 ,PROP_TAX_LEASE_REP OKL_HEADER_INTERFACE.PROP_TAX_LEASE_REP%TYPE
559 ,MEX_TAX_SUB_BASIC_WTHLD OKL_HEADER_INTERFACE.MEX_TAX_SUB_BASIC_WTHLD%TYPE
560 ,MEX_TAX_CALC_FORMULA OKL_HEADER_INTERFACE.MEX_TAX_CALC_FORMULA%TYPE
561 ,AUS_TAX_STAMP_DUTY OKL_HEADER_INTERFACE.AUS_TAX_STAMP_DUTY%TYPE
562 ,CURRENCY_CONVERSION_TYPE OKL_HEADER_INTERFACE.CURRENCY_CONVERSION_TYPE%TYPE
563 ,CURRENCY_CONVERSION_RATE OKL_HEADER_INTERFACE.CURRENCY_CONVERSION_RATE%TYPE
564 ,CURRENCY_CONVERSION_DATE OKL_HEADER_INTERFACE.CURRENCY_CONVERSION_DATE%TYPE
565 ,ASSIGNABLE_YN OKL_HEADER_INTERFACE.ASSIGNABLE_YN%TYPE
566 ,LESSEE_VENDOR_ID OKL_HEADER_INTERFACE.LESSEE_VENDOR_ID%TYPE
567 ,LESSEE_VENDOR_NAME OKL_HEADER_INTERFACE.LESSEE_VENDOR_NAME%TYPE
568 ,LESSEE_VENDOR_SITE_ID OKL_HEADER_INTERFACE.LESSEE_VENDOR_SITE_ID%TYPE
569 ,LESSEE_VENDOR_SITE_CODE OKL_HEADER_INTERFACE.LESSEE_VENDOR_SITE_CODE%TYPE
570 -- cklee start 02/23/2004
571 ,INSURANCE_COMPANY_NUMBER OKL_HEADER_INTERFACE.INSURANCE_COMPANY_NUMBER%TYPE
572 ,INSURANCE_COMPANY_SITE_NUMBER OKL_HEADER_INTERFACE.INSURANCE_COMPANY_SITE_NUMBER%TYPE
573 ,AGENT_NUMBER OKL_HEADER_INTERFACE.AGENT_NUMBER%TYPE
574 ,AGENT_ADDRESS_SITE_NUMBER OKL_HEADER_INTERFACE.AGENT_ADDRESS_SITE_NUMBER%TYPE
575 --,RELEASED_ASSET_YN OKL_HEADER_INTERFACE.RELEASED_ASSET_YN%TYPE
576 -- cklee start 02/23/2004
577 ,CASH_APPL_RULE_NAME OKL_HEADER_INTERFACE.CASH_APPL_RULE_NAME%TYPE
578 -- Added by rravikir (Fix for Bug 3947959) 10/07/2004
579 ,PROP_TAX_BILL_METHOD OKL_HEADER_INTERFACE.PROP_TAX_BILL_METHOD%TYPE
580 -- End
581 -- AKP new rules 4067094
582 ,GAIN_LOSS_TOLRNC_ALLWD_AMT OKL_HEADER_INTERFACE.GAIN_LOSS_TOLRNC_ALLWD_AMT%TYPE
583 ,GAIN_LOSS_TOLRNC_ALLWD_FRML OKL_HEADER_INTERFACE.GAIN_LOSS_TOLRNC_ALLWD_FRML%TYPE
584 ,GAIN_LOSS_TOLRNC_BASIS OKL_HEADER_INTERFACE.GAIN_LOSS_TOLRNC_BASIS%TYPE
585 ,GAIN_LOSS_APPRV_PROC_FRML OKL_HEADER_INTERFACE.GAIN_LOSS_APPRV_PROC_FRML%TYPE
586 ,ERT_ABSORBED_FEE_FRML OKL_HEADER_INTERFACE.ERT_ABSORBED_FEE_FRML%TYPE
587 ,ERT_EXPENSE_FEE_FRML OKL_HEADER_INTERFACE.ERT_EXPENSE_FEE_FRML%TYPE
588 ,ERT_FINANCED_FEE_FRML OKL_HEADER_INTERFACE.ERT_FINANCED_FEE_FRML%TYPE
589 ,ERT_GENERAL_FEE_FRML OKL_HEADER_INTERFACE.ERT_GENERAL_FEE_FRML%TYPE
590 ,ERT_INCOME_FEE_FRML OKL_HEADER_INTERFACE.ERT_INCOME_FEE_FRML%TYPE
591 ,ERT_MISC_FEE_FRML OKL_HEADER_INTERFACE.ERT_MISC_FEE_FRML%TYPE
592 ,ERT_PASSTHRU_FEE_FRML OKL_HEADER_INTERFACE.ERT_PASSTHRU_FEE_FRML%TYPE
593 ,ERT_ROLLOVER_FEE_FRML OKL_HEADER_INTERFACE.ERT_ROLLOVER_FEE_FRML%TYPE
594 ,EOT_ABSORBED_FEE_FRML OKL_HEADER_INTERFACE.EOT_ABSORBED_FEE_FRML%TYPE
595 ,EOT_EXPENSE_FEE_FRML OKL_HEADER_INTERFACE.EOT_EXPENSE_FEE_FRML%TYPE
596 ,EOT_FINANCED_FEE_FRML OKL_HEADER_INTERFACE.EOT_FINANCED_FEE_FRML%TYPE
597 ,EOT_GENERAL_FEE_FRML OKL_HEADER_INTERFACE.EOT_GENERAL_FEE_FRML%TYPE
598 ,EOT_INCOME_FEE_FRML OKL_HEADER_INTERFACE.EOT_INCOME_FEE_FRML%TYPE
599 ,EOT_MISC_FEE_FRML OKL_HEADER_INTERFACE.EOT_MISC_FEE_FRML%TYPE
600 ,EOT_PASSTHRU_FEE_FRML OKL_HEADER_INTERFACE.EOT_PASSTHRU_FEE_FRML%TYPE
601 ,EOT_ROLLOVER_FEE_FRML OKL_HEADER_INTERFACE.EOT_ROLLOVER_FEE_FRML%TYPE
602 -- AKP new rules 4067094
603 ,DELETE_BEFORE_IMPORT_YN OKL_HEADER_INTERFACE.DELETE_BEFORE_IMPORT_YN%TYPE /* akp_delete */
604 ,ST_UPDATE_LINES_FROM_CONTRACT OKL_HEADER_INTERFACE.ST_UPDATE_LINES_FROM_CONTRACT%TYPE
605 ,ST_INTEREST_DISCLOSED OKL_HEADER_INTERFACE.ST_INTEREST_DISCLOSED%TYPE
606 ,ST_TRANSFER_OF_TITLE OKL_HEADER_INTERFACE.ST_TRANSFER_OF_TITLE%TYPE
607 ,ST_SALE_AND_LEASE_BACK OKL_HEADER_INTERFACE.ST_SALE_AND_LEASE_BACK%TYPE
608 ,ST_PURCHASE_OF_LEASE OKL_HEADER_INTERFACE.ST_PURCHASE_OF_LEASE%TYPE
609 ,ST_EQUIPMENT_USAGE OKL_HEADER_INTERFACE.ST_EQUIPMENT_USAGE%TYPE
610 ,ST_EQUIPMENT_AGE OKL_HEADER_INTERFACE.ST_EQUIPMENT_AGE%TYPE
611 ,ST_ASSET_UPFRONT_TAX OKL_HEADER_INTERFACE.ST_ASSET_UPFRONT_TAX%TYPE
612 ,ST_BILL_STREAM_TYPE_CODE OKL_HEADER_INTERFACE.ST_BILL_STREAM_TYPE_CODE%TYPE
613 ,ST_BILL_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.ST_BILL_STREAM_PURPOSE_CODE%TYPE
614 ,ST_FIN_STREAM_TYPE_CODE OKL_HEADER_INTERFACE.ST_FIN_STREAM_TYPE_CODE%TYPE
615 ,ST_FIN_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.ST_FIN_STREAM_PURPOSE_CODE%TYPE
616 ,ST_CAP_STREAM_TYPE_CODE OKL_HEADER_INTERFACE.ST_CAP_STREAM_TYPE_CODE%TYPE
617 ,ST_CAP_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.ST_CAP_STREAM_PURPOSE_CODE%TYPE
618 -- AKP: Vartiable Rate
619 ,INT_RATE_EFFECTIVE_FROM_DATE OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_FROM_DATE%TYPE
620 ,INT_RATE_EFFECTIVE_TO_DATE OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_TO_DATE%TYPE
621 ,INT_RATE_PRINC_BASIS_CODE OKL_HEADER_INTERFACE.INT_RATE_PRINC_BASIS_CODE%TYPE
622 ,INT_RATE_BASIS_CODE OKL_HEADER_INTERFACE.INT_RATE_BASIS_CODE%TYPE
623 ,INT_RATE_DELAY_CODE OKL_HEADER_INTERFACE.INT_RATE_DELAY_CODE%TYPE
624 ,INT_RATE_DELAY_FREQ OKL_HEADER_INTERFACE.INT_RATE_DELAY_FREQ%TYPE
625 ,INT_RATE_CMPND_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CMPND_FREQ_CODE%TYPE
626 ,INT_RATE_CATCHUP_BASIS_CODE OKL_HEADER_INTERFACE.INT_RATE_CATCHUP_BASIS_CODE%TYPE
627 ,INT_RATE_CATCHUP_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CATCHUP_START_DATE%TYPE
628 ,INT_RATE_CAT_STLMNT_CODE OKL_HEADER_INTERFACE.INT_RATE_CAT_STLMNT_CODE%TYPE
629 ,INT_RATE_CHANGE_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CHANGE_START_DATE%TYPE
630 ,INT_RATE_CHANGE_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CHANGE_FREQ_CODE%TYPE
631 ,INT_RATE_CHANGE_VALUE OKL_HEADER_INTERFACE.INT_RATE_CHANGE_VALUE%TYPE
632 ,INT_RATE_CON_OPTION_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_OPTION_CODE%TYPE
633 ,INT_RATE_NEXT_CON_DATE OKL_HEADER_INTERFACE.INT_RATE_NEXT_CON_DATE%TYPE
634 --,INT_RATE_EFFECTIVE_FROM_DATE_CON OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_FROM_DATE_CON%TYPE
635 --,INT_RATE_EFFECTIVE_TO_DATE_CON OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_TO_DATE_CON%TYPE
636 ,INT_RATE_CON_INDEX_NAME OKL_HEADER_INTERFACE.INT_RATE_CON_INDEX_NAME%TYPE
637 ,INT_RATE_CON_BASE_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_BASE_RATE%TYPE
638 ,INT_RATE_CON_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CON_START_DATE%TYPE
639 ,INT_RATE_CON_ADDER_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_ADDER_RATE%TYPE
640 ,INT_RATE_CON_MAXIMUM_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_MAXIMUM_RATE%TYPE
641 ,INT_RATE_CON_MINIMUM_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_MINIMUM_RATE%TYPE
642 ,INT_RATE_CON_PRC_BAS_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_PRC_BAS_CODE%TYPE
643 ,INT_RATE_CON_DAY_MTH_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_DAY_MTH_CODE%TYPE
644 ,INT_RATE_CON_DAY_YER_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_DAY_YER_CODE%TYPE
645 ,INT_RATE_CON_INT_BAS_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_INT_BAS_CODE%TYPE
646 ,INT_RATE_CON_RATE_DELAY_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_RATE_DELAY_CODE%TYPE
647 ,INT_RATE_CON_RATE_DELAY_FREQ OKL_HEADER_INTERFACE.INT_RATE_CON_RATE_DELAY_FREQ%TYPE
648 ,INT_RATE_CON_CMPND_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CMPND_FREQ_CODE%TYPE
649 ,INT_RATE_CON_FORMULA_NAME OKL_HEADER_INTERFACE.INT_RATE_CON_FORMULA_NAME%TYPE
650 ,INT_RATE_CON_CAT_BAS_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_BAS_CODE%TYPE
651 ,INT_RATE_CON_CAT_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_START_DATE%TYPE
652 ,INT_RATE_CON_CAT_STLMNT_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_STLMNT_CODE%TYPE
653 ,INT_RATE_CON_CHG_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CON_CHG_START_DATE%TYPE
654 ,INT_RATE_CON_CHG_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CHG_FREQ_CODE%TYPE
655 ,INT_RATE_CON_CHG_VALUE OKL_HEADER_INTERFACE.INT_RATE_CON_CHG_VALUE%TYPE
656 ,INT_RATE_CAT_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CAT_FREQ_CODE%TYPE
657 ,INT_RATE_CON_CAT_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_FREQ_CODE%TYPE
658 -- Bug 4655611
659 ,RVI_STREAM_CODE OKL_HEADER_INTERFACE.RVI_STREAM_CODE%TYPE
660 ,RVI_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.RVI_STREAM_PURPOSE_CODE%TYPE
661 -- Bug 4655611
662 -- Contract Additional field, Bug 4558486
663 ,ATTRIBUTE_CATEGORY OKL_HEADER_INTERFACE.ATTRIBUTE_CATEGORY%TYPE
664 ,ATTRIBUTE1 OKL_HEADER_INTERFACE.ATTRIBUTE1%TYPE
665 ,ATTRIBUTE2 OKL_HEADER_INTERFACE.ATTRIBUTE2%TYPE
666 ,ATTRIBUTE3 OKL_HEADER_INTERFACE.ATTRIBUTE3%TYPE
667 ,ATTRIBUTE4 OKL_HEADER_INTERFACE.ATTRIBUTE4%TYPE
668 ,ATTRIBUTE5 OKL_HEADER_INTERFACE.ATTRIBUTE5%TYPE
669 ,ATTRIBUTE6 OKL_HEADER_INTERFACE.ATTRIBUTE6%TYPE
670 ,ATTRIBUTE7 OKL_HEADER_INTERFACE.ATTRIBUTE7%TYPE
671 ,ATTRIBUTE8 OKL_HEADER_INTERFACE.ATTRIBUTE8%TYPE
672 ,ATTRIBUTE9 OKL_HEADER_INTERFACE.ATTRIBUTE9%TYPE
673 ,ATTRIBUTE10 OKL_HEADER_INTERFACE.ATTRIBUTE10%TYPE
674 ,ATTRIBUTE11 OKL_HEADER_INTERFACE.ATTRIBUTE11%TYPE
675 ,ATTRIBUTE12 OKL_HEADER_INTERFACE.ATTRIBUTE12%TYPE
676 ,ATTRIBUTE13 OKL_HEADER_INTERFACE.ATTRIBUTE13%TYPE
677 ,ATTRIBUTE14 OKL_HEADER_INTERFACE.ATTRIBUTE14%TYPE
678 ,ATTRIBUTE15 OKL_HEADER_INTERFACE.ATTRIBUTE15%TYPE
679 -- Contract Additional field, Bug 4558486
680 -- $1 Buyout
681 ,EOT_AUTO_PROC_PURCHASE_OPT OKL_HEADER_INTERFACE.EOT_AUTO_PROC_PURCHASE_OPT%TYPE
682 -- $1 Buyout
683 ,PTH_EVG_PAYOUT_BASIS OKL_HEADER_INTERFACE.PTH_EVG_PAYOUT_BASIS%TYPE
684 ,PTH_PAYOUT_BASIS_FORMULA OKL_HEADER_INTERFACE.PTH_PAYOUT_BASIS_FORMULA%TYPE
685 ,PTH_EVG_STREAM_CODE OKL_HEADER_INTERFACE.PTH_EVG_STREAM_CODE%TYPE
686 ,PTH_EVG_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.PTH_EVG_STREAM_PURPOSE_CODE%TYPE
687 ,SEND_BILL_SALE OKL_HEADER_INTERFACE.SEND_BILL_SALE%TYPE
688 ,MANUAL_QUOTES_ONLY OKL_HEADER_INTERFACE.MANUAL_QUOTES_ONLY%TYPE
689 ,FIRST_TERMINATION_DATE OKL_HEADER_INTERFACE.FIRST_TERMINATION_DATE%TYPE
690 ,QUOTE_RCPT_ADDL_RCPT_ROLE OKL_HEADER_INTERFACE.QUOTE_RCPT_ADDL_RCPT_ROLE%TYPE
691 ,QUOTE_RCPT_ALLOC_PTG OKL_HEADER_INTERFACE.QUOTE_RCPT_ALLOC_PTG%TYPE
692 ,QUOTE_APPRVR_ADV_NOTICE_ROLE OKL_HEADER_INTERFACE.QUOTE_APPRVR_ADV_NOTICE_ROLE%TYPE
693 ,QUOTE_APPROVER_DELAY_DAYS OKL_HEADER_INTERFACE.QUOTE_APPROVER_DELAY_DAYS%TYPE
694 ,ERT_SERV_MANT_FRML OKL_HEADER_INTERFACE.ERT_SERV_MANT_FRML%TYPE
695 ,EOT_SERV_MANT_FRML OKL_HEADER_INTERFACE.EOT_SERV_MANT_FRML%TYPE
696 --Added by dpsingh for LE Uptake
697 ,LEGAL_ENTITY_ID NUMBER := Okl_Api.G_MISS_NUM
698 -- Added by Punith for R12 ebtax
699 ,ST_TAX_SCHEDULE_APPLIES_FLAG OKL_HEADER_INTERFACE.ST_TAX_SCHEDULE_APPLIES_FLAG%TYPE
700 );
701
702 SUBTYPE fee_types_rec_type IS OKL_MAINTAIN_FEE_PVT.fee_types_rec_type;
703 SUBTYPE tlpv_rec_type IS okl_txl_assets_pub.tlpv_rec_type;
704
705 TYPE intf_party_rec_type IS RECORD (
706 CONTRACT_NUMBER OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE
707 ,LINE_NUMBER OKL_LINES_INTERFACE.LINE_NUMBER%TYPE
708 --
709 ,PARTY_ID HZ_PARTIES.PARTY_ID%TYPE
710 ,PARTY_NUMBER HZ_PARTIES.PARTY_NUMBER%TYPE
711 ,PARTY_NAME HZ_PARTIES.PARTY_NAME%TYPE
712 ,PARTY_CATEGORY_CODE HZ_PARTIES.CATEGORY_CODE%TYPE
713 --
714 ,PARTY_SITE_ID HZ_PARTY_SITES.PARTY_SITE_ID%TYPE
715 ,PARTY_SITE_NUMBER HZ_PARTY_SITES.PARTY_SITE_NUMBER%TYPE
716 ,PARTY_SITE_NAME HZ_PARTY_SITES.PARTY_SITE_NAME%TYPE
717 --
718 ,INTF_PARTY_ID VARCHAR2(150)
719 ,INTF_PARTY_NUMBER VARCHAR2(150)
720 ,INTF_PARTY_NAME VARCHAR2(150)
721 ,INTF_PARTY_SITE_ID VARCHAR2(150)
722 ,INTF_PARTY_SITE_NUMBER VARCHAR2(150)
723 ,INTF_PARTY_SITE_NAME VARCHAR2(150)
724 );
725
726
727 G_BASE_PMNT_HDR pphv_rec_type;
728 G_EVG_PMNT_HDR pphv_rec_type;
729 G_LLA_CHR_ID CONSTANT VARCHAR2(30) := 'OKL_LLA_CHR_ID';
730
731 G_EVG_CONT_PMNT_HDR pphv_rec_type; -- Evergreen param at contract header
732
733
734 ------------------------------------------------------------------------------
735 -- PROCEDURE debug_message
736 --
737 -- This procedure prints debug message depending on DEBUG flag
738 --
739 -- Calls:
740 -- Called By:
741 ------------------------------------------------------------------------------
742 PROCEDURE debug_message(
743 p_message IN VARCHAR2
744 ) IS
745 L_DEBUG NUMBER := 1;
746 BEGIN
747 IF ( L_DEBUG = 1 ) THEN
748 fnd_file.put_line (fnd_file.log, p_message);
749 --dbms_output.put_line (p_message);
750 okl_debug_pub.logmessage(p_message);
751 END IF;
752
753 RETURN;
754 END debug_message;
755
756 ------------------------------------------------------------------------------
757 -- PROCEDURE Report_Error
758 -- It is a generalized routine to display error on Concurrent Manager Log file
759 -- Calls:
760 -- okl_api package
761 -- fnd_msg_pub package
762 -- Called by:
763 -- process_record
764 -- check_input_record
765 -- process_input_record
766 ------------------------------------------------------------------------------
767
768 PROCEDURE Report_Error(
769 x_msg_count OUT NOCOPY NUMBER,
770 x_msg_data OUT NOCOPY VARCHAR2
771 ) IS
772
773 x_msg_index_out NUMBER;
774 x_msg_out VARCHAR2(2000);
775
776 BEGIN
777
778 okl_api.end_activity(
779 X_msg_count => x_msg_count,
780 X_msg_data => x_msg_data
781 );
782
783 FOR i in 1..x_msg_count
784 LOOP
785 FND_MSG_PUB.GET(
786 p_msg_index => i,
787 p_encoded => FND_API.G_FALSE,
788 p_data => x_msg_data,
789 p_msg_index_out => x_msg_index_out
790 );
791
792 fnd_file.put_line(fnd_file.output, 'Error '||to_char(i)||': '||x_msg_data);
793 --dbms_output.put_line('Error '||to_char(i)||': '||x_msg_data);
794 debug_message('Error '||to_char(i)||': '||x_msg_data);
795
796 END LOOP;
797 return;
798 EXCEPTION
799 WHEN OTHERS THEN
800 NULL;
801 END Report_Error;
802
803 PROCEDURE write_to_log(
804 p_message IN VARCHAR2
805 ) IS
806 BEGIN
807 --dbms_output.put_line(p_message);
808 debug_message(p_message);
809 fnd_file.put_line(fnd_file.output, p_message);
810 END write_to_log;
811
812 ------------------------------------------------------------------------------
813 -- PROCEDURE get_can_bto
814 -- It returns CAN and BTO from OKC_K_HEADERS - after migration
815 -- Calls:
816 -- Called by:
817 ------------------------------------------------------------------------------
818
819 PROCEDURE get_can_bto(
820 x_return_status OUT NOCOPY VARCHAR2,
821 p_chr_id IN OKC_K_HEADERS_B.ID%TYPE,
822 x_bto_id OUT NOCOPY OKC_K_HEADERS_B.BILL_TO_SITE_USE_ID%TYPE,
823 x_can_id OUT NOCOPY OKC_K_HEADERS_B.CUST_ACCT_ID%TYPE
824 ) IS
825
826 l_proc_name VARCHAR2(35) := 'GET_CAN_BTO';
827
828 CURSOR can_bto_csr (p_chr_id OKC_K_HEADERS_B.ID%TYPE) IS
829 SELECT bill_to_site_use_id,
830 cust_acct_id
831 FROM okc_k_headers_v
832 WHERE id = p_chr_id;
833
834 BEGIN
835 x_return_status := OKL_API.G_RET_STS_SUCCESS;
836 OPEN can_bto_csr (p_chr_id);
837 FETCH can_bto_csr INTO x_bto_id,
838 x_can_id;
839 IF can_bto_csr%NOTFOUND THEN
840 x_return_status := OKL_API.G_RET_STS_ERROR;
841 END IF;
842 CLOSE can_bto_csr;
843
844 END get_can_bto;
845
846 ------------------------------------------------------------------------------
847 -- PROCEDURE get_canonical_date
848 -- It changes date input to canonical_date format as specified in FND_DATE
849 -- routine. Only required for date columns which are defined as rule segments
850 -- Calls:
851 -- Called by:
852 ------------------------------------------------------------------------------
853 FUNCTION get_canonical_date(
854 p_from_date IN DATE
855 ) RETURN VARCHAR2 IS
856 l_canonical_date VARCHAR2(25);
857
858 BEGIN
859
860 l_canonical_date := NULL;
861
862 SELECT TO_CHAR(p_from_date ,fnd_date.canonical_mask)
863 INTO l_canonical_date
864 FROM dual;
865
866 RETURN l_canonical_date;
867
868 EXCEPTION
869 WHEN OTHERS THEN
870 RETURN NULL;
871 END get_canonical_date;
872
873 ------------------------------------------------------------------------------
874 -- PROCEDURE Process_Record
875 -- It Validates Input record and Load record after SUCCESSFUL validation
876 -- Calls:
877 -- Check_Inout_Record
878 -- Load_Input_Record
879 -- Report Error
880 -- Called by:
881 -- Starting point
882 ------------------------------------------------------------------------------
883 PROCEDURE Process_Record (
884 errbuf OUT NOCOPY VARCHAR2,
885 retcode OUT NOCOPY VARCHAR2,
886 p_batch_number IN VARCHAR2,
887 p_start_date_from IN VARCHAR2,
888 p_start_date_to IN VARCHAR2,
889 p_contract_number IN VARCHAR2,
890 p_customer_number IN VARCHAR2,
891 p_instance_number IN VARCHAR2 DEFAULT 'NONE'
892 ) IS
893
894
895 X_Progress VARCHAR2(3) := NULL;
896 l_proc_name CONSTANT VARCHAR2(30) := 'PROCESS_RECORD';
897 X_msg_count NUMBER;
898 X_msg_data VARCHAR2(2000);
899 X_return_status VARCHAR2(200);
900 X_total_checked NUMBER := 0;
901 x_total_loaded NUMBER := 0;
902 param_error EXCEPTION;
903 BEGIN
904
905 X_Progress := '010';
906 X_return_status := OKL_API.G_RET_STS_SUCCESS;
907 g_instance_number := nvl(p_instance_number, 'NONE');
908
909 --fnd_file.put_line(fnd_file.output, 'OKL Contract Open Interface Report');
910 --fnd_file.put_line(fnd_file.output, '==================================');
911 write_to_log('OKL Contract Open Interface Report');
912 write_to_log('==================================');
913
914 write_to_log('***** Parameter values *****');
915 write_to_log('Batch Number : '||NVL(p_batch_number,'NULL'));
916 write_to_log('Contract Start Date From: '||NVL(p_start_date_from,'NULL'));
917 write_to_log('Contract Start Date To : '||NVL(p_start_date_to,'NULL'));
918 write_to_log('Contract Number : '||NVL(p_contract_number,'NULL'));
919 write_to_log('Customer Number : '||NVL(p_customer_number,'NULL'));
920 write_to_log('Instance Number : '||NVL(p_instance_number,'NULL'));
921 write_to_log('==================================');
922
923 IF (p_batch_number IS NULL AND
924 p_start_date_from IS NULL AND
925 p_start_date_to IS NULL AND
926 p_contract_number IS NULL AND
927 p_customer_number IS NULL ) THEN -- All Null
928
929 okl_api.set_message(
930 G_APP_NAME,
931 G_NULL_PARAMETER
932 );
933 RAISE param_error;
934 ELSIF
935 (p_batch_number IS NOT NULL AND
936 (p_start_date_from IS NOT NULL OR
937 p_start_date_to IS NOT NULL OR
938 p_contract_number IS NOT NULL OR
939 p_customer_number IS NOT NULL)) THEN -- Provide Batch Number only
940
941 okl_api.set_message(
942 G_APP_NAME,
943 G_INVALID_PARAMETER,
944 'PARAM_NAME',
945 'BATCH_NUMBER'
946 );
947 RAISE param_error;
948 ELSIF
949 (p_customer_number IS NOT NULL
950 AND
951 p_start_date_from IS NULL
952 AND
953 p_start_date_to IS NULL
954 ) THEN
955 okl_api.set_message(
956 G_APP_NAME,
957 G_INVALID_PARAMETER,
958 'PARAM_NAME',
959 'Customer Number And Start Date From To'
960 );
961 RAISE param_error;
962 END IF;
963
964 /* Bug 4350579 - no need to run check_input_record
965 * Validations are moved to load procedure
966 *
967 *
968 * check_input_record(
969 * p_init_msg_list => OKL_API.G_TRUE,
970 * x_return_status => X_return_status,
971 * x_msg_count => X_msg_count,
972 * x_msg_data => X_msg_data,
973 * p_batch_number => p_batch_number,
974 * p_start_date_from => FND_DATE.CANONICAL_TO_DATE(p_start_date_from),
975 * p_start_date_to => FND_DATE.CANONICAL_TO_DATE(p_start_date_to),
976 * p_contract_number => p_contract_number,
977 * p_customer_number => p_customer_number,
978 * x_total_checked => x_total_checked
979 * );
980 *
981 * okl_open_interface_pvt.report_error (
982 * x_msg_count => x_msg_count,
983 * x_msg_data => x_msg_data
984 * );
985 *
986 -- Check if Validation is SUCCESSFUL or not
987 --fnd_file.put_line(fnd_file.output, '==================================');
988 --fnd_file.put_line(fnd_file.output, 'Total Contract Checked for loading: '||TO_CHAR(nvl(x_total_checked,0)));
989 --fnd_file.put_line(fnd_file.output, '==================================');
990
991 * write_to_log('==================================');
992 * write_to_log('Total Contract Checked for loading: '||TO_CHAR(nvl(x_total_checked,0)));
993 * write_to_log('==================================');
994 * Bug 4350579
995 */
996 Load_Input_Record(
997 p_init_msg_list => OKL_API.G_TRUE,
998 x_return_status => X_return_status,
999 x_msg_count => X_msg_count,
1000 x_msg_data => X_msg_data,
1001 p_batch_number => p_batch_number,
1002 p_start_date_from => FND_DATE.CANONICAL_TO_DATE(p_start_date_from),
1003 p_start_date_to => FND_DATE.CANONICAL_TO_DATE(p_start_date_to),
1004 p_contract_number => p_contract_number,
1005 p_customer_number => p_customer_number,
1006 x_total_loaded => x_total_loaded
1007 );
1008
1009 write_to_log('==================================');
1010 write_to_log('Total Contract loaded: '||TO_CHAR(nvl(x_total_loaded,0)));
1011 write_to_log('==================================');
1012
1013 RETURN;
1014
1015 EXCEPTION
1016 WHEN param_error THEN
1017 okl_api.end_activity(
1018 X_msg_count => X_msg_count,
1019 X_msg_data => X_msg_data
1020 );
1021
1022 report_error(
1023 x_msg_count => X_msg_count,
1024 x_msg_data => X_msg_data
1025 );
1026
1027 END Process_Record;
1028
1029 ------------------------------------------------------------------------------
1030 -- PROCEDURE Update_Interface_Status
1031 -- It Changes Status to Interface Table
1032 -- Calls:
1033 -- None
1034 -- Called By:
1035 -- check_input_record
1036 -- load_input_record
1037 ------------------------------------------------------------------------------
1038 PROCEDURE Update_Interface_Status (p_contract_number IN okl_header_interface.contract_number_old%TYPE,
1039 p_new_contract_number IN okl_header_interface.contract_number%TYPE,
1040 p_status IN VARCHAR2,
1041 x_return_status OUT NOCOPY VARCHAR2 ) IS
1042
1043 x_proc_name VARCHAR2(35) := 'UPDATE_INTERFACE_STATUS';
1044 update_failed EXCEPTION;
1045 BEGIN
1046
1047 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1048
1049 UPDATE okl_header_interface
1050 SET status = p_status,
1051 contract_number = p_new_contract_number,
1052 scheduled_worker_id = decode(p_status, 'ERROR', null, scheduled_worker_id),
1053 date_created_in_okl = decode(p_status,'INTERFACED',SYSDATE,
1054 'FINAL', SYSDATE, NULL) -- update date in case of Successful loading
1055 WHERE contract_number_old = p_contract_number;
1056
1057 IF SQL%NOTFOUND THEN
1058 RAISE update_failed;
1059 END IF;
1060
1061 EXCEPTION
1062 WHEN update_failed THEN
1063 okl_api.set_message(
1064 G_APP_NAME,
1065 G_UNEXPECTED_ERROR,
1066 'OKL_SQLCODE',
1067 SQLCODE,
1068 'OKL_SQLERRM',
1069 SQLERRM || ': '||G_PKG_NAME||'.'||x_proc_name
1070 );
1071 x_return_status := OKL_API.G_RET_STS_ERROR;
1072
1073 END Update_Interface_Status;
1074
1075 ------------------------------------------------------------------------------
1076 -- PROCEDURE get_template
1077 -- It returns Template Contract information identified by p_template_number
1078 -- Calls:
1079 -- None
1080 -- Called By:
1081 ------------------------------------------------------------------------------
1082 FUNCTION get_template (
1083 x_return_status OUT NOCOPY VARCHAR2,
1084 x_msg_count OUT NOCOPY NUMBER,
1085 x_msg_data OUT NOCOPY VARCHAR2,
1086 p_template_number IN VARCHAR2
1087 )
1088 RETURN template_h_rec_TYPE IS
1089
1090 CURSOR t_header_csr (p_template VARCHAR2) IS
1091 SELECT
1092 ID
1093 ,OBJECT_VERSION_NUMBER
1094 ,SFWT_FLAG
1095 ,CHR_ID_RESPONSE
1096 ,CHR_ID_AWARD
1097 ,CHR_ID_RENEWED
1098 ,INV_ORGANIZATION_ID
1099 ,STS_CODE
1100 ,QCL_ID
1101 ,SCS_CODE
1102 ,CONTRACT_NUMBER
1103 ,CURRENCY_CODE
1104 ,CONTRACT_NUMBER_MODIFIER
1105 ,ARCHIVED_YN
1106 ,DELETED_YN
1107 ,CUST_PO_NUMBER_REQ_YN
1108 ,PRE_PAY_REQ_YN
1109 ,CUST_PO_NUMBER
1110 ,SHORT_DESCRIPTION
1111 ,COMMENTS
1112 ,DESCRIPTION
1113 ,DPAS_RATING
1114 ,COGNOMEN
1115 ,TEMPLATE_YN
1116 ,TEMPLATE_USED
1117 ,DATE_APPROVED
1118 ,DATETIME_CANCELLED
1119 ,AUTO_RENEW_DAYS
1120 ,DATE_ISSUED
1121 ,DATETIME_RESPONDED
1122 ,NON_RESPONSE_REASON
1123 ,NON_RESPONSE_EXPLAIN
1124 ,RFP_TYPE
1125 ,CHR_TYPE
1126 ,KEEP_ON_MAIL_LIST
1127 ,SET_ASIDE_REASON
1128 ,SET_ASIDE_PERCENT
1129 ,RESPONSE_COPIES_REQ
1130 ,DATE_CLOSE_PROJECTED
1131 ,DATETIME_PROPOSED
1132 ,DATE_SIGNED
1133 ,DATE_TERMINATED
1134 ,DATE_RENEWED
1135 ,TRN_CODE
1136 ,START_DATE
1137 ,END_DATE
1138 ,AUTHORING_ORG_ID
1139 ,BUY_OR_SELL
1140 ,ISSUE_OR_RECEIVE
1141 ,ESTIMATED_AMOUNT
1142 ,CHR_ID_RENEWED_TO
1143 ,ESTIMATED_AMOUNT_RENEWED
1144 ,CURRENCY_CODE_RENEWED
1145 ,USER_ACCESS_LEVEL
1146 ,UPG_ORIG_SYSTEM_REF
1147 ,UPG_ORIG_SYSTEM_REF_ID
1148 ,APPLICATION_ID
1149 ,RESOLVED_UNTIL
1150 ,ATTRIBUTE_CATEGORY
1151 ,ATTRIBUTE1
1152 ,ATTRIBUTE2
1153 ,ATTRIBUTE3
1154 ,ATTRIBUTE4
1155 ,ATTRIBUTE5
1156 ,ATTRIBUTE6
1157 ,ATTRIBUTE7
1158 ,ATTRIBUTE8
1159 ,ATTRIBUTE9
1160 ,ATTRIBUTE10
1161 ,ATTRIBUTE11
1162 ,ATTRIBUTE12
1163 ,ATTRIBUTE13
1164 ,ATTRIBUTE14
1165 ,ATTRIBUTE15
1166 ,CREATED_BY
1167 ,CREATION_DATE
1168 ,LAST_UPDATED_BY
1169 ,LAST_UPDATE_DATE
1170 ,LAST_UPDATE_LOGIN
1171 ,ORIG_SYSTEM_SOURCE_CODE
1172 ,ORIG_SYSTEM_ID1
1173 ,ORIG_SYSTEM_REFERENCE1
1174 ,KHR_ROW_ID
1175 ,KHR_OBJECT_VERSION_NUMBER
1176 ,ISG_ID
1177 ,KHR_ID
1178 ,PDT_ID
1179 ,AMD_CODE
1180 ,DATE_FIRST_ACTIVITY
1181 ,GENERATE_ACCRUAL_YN
1182 ,GENERATE_ACCRUAL_OVERRIDE_YN
1183 ,DATE_REFINANCED
1184 ,CREDIT_ACT_YN
1185 ,TERM_DURATION
1186 ,CONVERTED_ACCOUNT_YN
1187 ,DATE_CONVERSION_EFFECTIVE
1188 ,SYNDICATABLE_YN
1189 ,SALESTYPE_YN
1190 ,DATE_DEAL_TRANSFERRED
1191 ,DATETIME_PROPOSAL_EFFECTIVE
1192 ,DATETIME_PROPOSAL_INEFFECTIVE
1193 ,DATE_PROPOSAL_ACCEPTED
1194 ,KHR_ATTRIBUTE_CATEGORY
1195 ,KHR_ATTRIBUTE1
1196 ,KHR_ATTRIBUTE2
1197 ,KHR_ATTRIBUTE3
1198 ,KHR_ATTRIBUTE4
1199 ,KHR_ATTRIBUTE5
1200 ,KHR_ATTRIBUTE6
1201 ,KHR_ATTRIBUTE7
1202 ,KHR_ATTRIBUTE8
1203 ,KHR_ATTRIBUTE9
1204 ,KHR_ATTRIBUTE10
1205 ,KHR_ATTRIBUTE11
1206 ,KHR_ATTRIBUTE12
1207 ,KHR_ATTRIBUTE13
1208 ,KHR_ATTRIBUTE14
1209 ,KHR_ATTRIBUTE15
1210 ,KHR_CREATED_BY
1211 ,KHR_CREATON_DATE
1212 ,KHR_LAST_UPDATED_BY
1213 ,KHR_LAST_UPDATE_DATE
1214 ,KHR_LAST_UPDATE_LOGIN
1215 ,PRE_TAX_YIELD
1216 ,AFTER_TAX_YIELD
1217 ,IMPLICIT_INTEREST_RATE
1218 ,IMPLICIT_NON_IDC_INTEREST_RATE
1219 ,TARGET_PRE_TAX_YIELD
1220 ,TARGET_AFTER_TAX_YIELD
1221 ,TARGET_IMPLICIT_INTEREST_RATE
1222 ,TARGET_IMPLICIT_NONIDC_INTRATE
1223 ,DATE_LAST_INTERIM_INTEREST_CAL
1224 ,DEAL_TYPE
1225 ,PRE_TAX_IRR
1226 ,AFTER_TAX_IRR
1227 ,EXPECTED_DELIVERY_DATE
1228 ,ACCEPTED_DATE
1229 ,PREFUNDING_ELIGIBLE_YN
1230 ,REVOLVING_CREDIT_YN
1231 ,CURRENCY_CONVERSION_TYPE
1232 ,CURRENCY_CONVERSION_RATE
1233 ,CURRENCY_CONVERSION_DATE
1234 ,ASSIGNABLE_YN
1235 ,CUST_ACCT_ID
1236 ,BILL_TO_SITE_USE_ID
1237 FROM okl_k_headers_full_v
1238 WHERE contract_number = p_template
1239 AND template_yn = 'Y';
1240
1241 l_t_header_rec template_h_rec_type;
1242 template_failed EXCEPTION;
1243
1244 l_proc_name VARCHAR2(30) := 'GET_TEMPLATE';
1245 BEGIN
1246
1247 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1248
1249 OPEN t_header_csr (p_template_number);
1250 FETCH t_header_csr into l_t_header_rec;
1251 IF t_header_csr%NOTFOUND THEN
1252 okl_api.set_message(
1253 G_APP_NAME,
1254 G_INVALID_TEMPLATE,
1255 'TEMPLATE_NUMBER',
1256 p_template_number
1257 );
1258 RAISE template_failed;
1259 END IF;
1260 CLOSE t_header_csr;
1261
1262 RETURN l_t_header_rec;
1263
1264 EXCEPTION
1265 WHEN template_failed THEN
1266 IF t_header_csr%ISOPEN THEN
1267 CLOSE t_header_csr;
1268 END IF;
1269 x_return_status := OKL_API.G_RET_STS_ERROR;
1270 END get_template;
1271
1272
1273 --*********************** check Interface **************************************
1274
1275 ------------------------------------------------------------------------------
1276 -- PROCEDURE get_contract_rules
1277 -- It retrives rules associated with contract and returns error, if any
1278 -- Calls:
1279 -- None
1280 -- Called By:
1281 ------------------------------------------------------------------------------
1282 PROCEDURE get_contract_rules(
1283 x_return_status OUT NOCOPY VARCHAR2,
1284 x_msg_count OUT NOCOPY NUMBER,
1285 x_msg_data OUT NOCOPY VARCHAR2,
1286 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE,
1287 p_cle_id IN OKC_K_LINES_V.ID%TYPE,
1288 p_rgd_code IN OKC_RULE_GROUPS_V.RGD_CODE%TYPE,
1289 p_rule_code IN OKC_RULES_V.RULE_INFORMATION_CATEGORY%TYPE,
1290 x_rulv_tbl OUT NOCOPY rulv_tbl_type,
1291 x_rule_count OUT NOCOPY NUMBER
1292 ) IS
1293 l_proc_name VARCHAR2(35) := 'GET_CONTRACT_RULES';
1294
1295 CURSOR rulv_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
1296 p_cle_id OKC_K_LINES_V.ID%TYPE,
1297 p_rgd_code OKC_RULE_GROUPS_V.RGD_CODE%TYPE,
1298 p_rule_code OKC_RULES_V.RULE_INFORMATION_CATEGORY%TYPE) IS
1299 SELECT
1300 rule.ID,
1301 rule.OBJECT_VERSION_NUMBER,
1302 rule.SFWT_FLAG,
1303 rule.OBJECT1_ID1,
1304 rule.OBJECT2_ID1,
1305 rule.OBJECT3_ID1,
1306 rule.OBJECT1_ID2,
1307 rule.OBJECT2_ID2,
1308 rule.OBJECT3_ID2,
1309 rule.JTOT_OBJECT1_CODE,
1310 rule.JTOT_OBJECT2_CODE,
1311 rule.JTOT_OBJECT3_CODE,
1312 rule.DNZ_CHR_ID,
1313 rule.RGP_ID,
1314 rule.PRIORITY,
1315 rule.STD_TEMPLATE_YN,
1316 rule.COMMENTS,
1317 rule.WARN_YN,
1318 rule.ATTRIBUTE_CATEGORY,
1319 rule.ATTRIBUTE1,
1320 rule.ATTRIBUTE2,
1321 rule.ATTRIBUTE3,
1322 rule.ATTRIBUTE4,
1323 rule.ATTRIBUTE5,
1324 rule.ATTRIBUTE6,
1325 rule.ATTRIBUTE7,
1326 rule.ATTRIBUTE8,
1327 rule.ATTRIBUTE9,
1328 rule.ATTRIBUTE10,
1329 rule.ATTRIBUTE11,
1330 rule.ATTRIBUTE12,
1331 rule.ATTRIBUTE13,
1332 rule.ATTRIBUTE14,
1333 rule.ATTRIBUTE15,
1334 rule.CREATED_BY,
1335 rule.CREATION_DATE,
1336 rule.LAST_UPDATED_BY,
1337 rule.LAST_UPDATE_DATE,
1338 rule.LAST_UPDATE_LOGIN,
1339 --rule.TEXT,
1340 rule.RULE_INFORMATION_CATEGORY,
1341 rule.RULE_INFORMATION1,
1342 rule.RULE_INFORMATION2,
1343 rule.RULE_INFORMATION3,
1344 rule.RULE_INFORMATION4,
1345 rule.RULE_INFORMATION5,
1346 rule.RULE_INFORMATION6,
1347 rule.RULE_INFORMATION7,
1348 rule.RULE_INFORMATION8,
1349 rule.RULE_INFORMATION9,
1350 rule.RULE_INFORMATION10,
1351 rule.RULE_INFORMATION11,
1352 rule.RULE_INFORMATION12,
1353 rule.RULE_INFORMATION13,
1354 rule.RULE_INFORMATION14,
1355 rule.RULE_INFORMATION15,
1356 rule.TEMPLATE_YN,
1357 rule.ans_set_jtot_object_code,
1358 rule.ans_set_jtot_object_id1,
1359 rule.ans_set_jtot_object_id2,
1360 rule.DISPLAY_SEQUENCE
1361 FROM okc_rule_groups_v rg,
1362 okc_rules_v rule
1363 WHERE rg.id = rule.rgp_id
1364 AND rg.dnz_chr_id = p_chr_id
1365 AND ( ( p_cle_id IS NULL
1366 AND
1367 rg.cle_id IS NULL
1368 )
1369 OR
1370 rg.cle_id = p_cle_id
1371 )
1372 AND rg.rgd_code = p_rgd_code
1373 AND rule.rule_information_category = p_rule_code;
1374
1375 i NUMBER := 0;
1376 BEGIN
1377
1378 FOR rulv_rec IN rulv_csr (p_chr_id,
1379 p_cle_id,
1380 p_rgd_code,
1381 p_rule_code)
1382 LOOP
1383 i := rulv_csr%ROWCOUNT;
1384 --x_rulv_tbl(i) := rulv_rec;
1385 x_rulv_tbl(i).id := rulv_rec.id;
1386 x_rulv_tbl(i).rgp_id := rulv_rec.rgp_id;
1387 x_rulv_tbl(i).object1_id1 := rulv_rec.object1_id1;
1388 x_rulv_tbl(i).object2_id1 := rulv_rec.object2_id1;
1389 x_rulv_tbl(i).object3_id1 := rulv_rec.object3_id1;
1390 x_rulv_tbl(i).object1_id2 := rulv_rec.object1_id2;
1391 x_rulv_tbl(i).object2_id2 := rulv_rec.object2_id2;
1392 x_rulv_tbl(i).object3_id2 := rulv_rec.object3_id2;
1393 x_rulv_tbl(i).jtot_object1_code := rulv_rec.jtot_object1_code;
1394 x_rulv_tbl(i).jtot_object2_code := rulv_rec.jtot_object2_code;
1395 x_rulv_tbl(i).jtot_object3_code := rulv_rec.jtot_object3_code;
1396 x_rulv_tbl(i).dnz_chr_id := rulv_rec.dnz_chr_id;
1397 x_rulv_tbl(i).std_template_yn := rulv_rec.std_template_yn;
1398 x_rulv_tbl(i).warn_yn := rulv_rec.warn_yn;
1399 x_rulv_tbl(i).priority := rulv_rec.priority;
1400 x_rulv_tbl(i).object_version_number := rulv_rec.object_version_number;
1401 x_rulv_tbl(i).created_by := rulv_rec.created_by;
1402 x_rulv_tbl(i).creation_date := rulv_rec.creation_date;
1403 x_rulv_tbl(i).last_updated_by := rulv_rec.last_updated_by;
1404 x_rulv_tbl(i).last_update_date := rulv_rec.last_update_date;
1405 x_rulv_tbl(i).last_update_login := rulv_rec.last_update_login;
1406 x_rulv_tbl(i).attribute_category := rulv_rec.attribute_category;
1407 x_rulv_tbl(i).attribute1 := rulv_rec.attribute1;
1408 x_rulv_tbl(i).attribute2 := rulv_rec.attribute2;
1409 x_rulv_tbl(i).attribute3 := rulv_rec.attribute3;
1410 x_rulv_tbl(i).attribute4 := rulv_rec.attribute4;
1411 x_rulv_tbl(i).attribute5 := rulv_rec.attribute5;
1412 x_rulv_tbl(i).attribute6 := rulv_rec.attribute6;
1413 x_rulv_tbl(i).attribute7 := rulv_rec.attribute7;
1414 x_rulv_tbl(i).attribute8 := rulv_rec.attribute8;
1415 x_rulv_tbl(i).attribute9 := rulv_rec.attribute9;
1416 x_rulv_tbl(i).attribute10 := rulv_rec.attribute10;
1417 x_rulv_tbl(i).attribute11 := rulv_rec.attribute11;
1418 x_rulv_tbl(i).attribute12 := rulv_rec.attribute12;
1419 x_rulv_tbl(i).attribute13 := rulv_rec.attribute13;
1420 x_rulv_tbl(i).attribute14 := rulv_rec.attribute14;
1421 x_rulv_tbl(i).attribute15 := rulv_rec.attribute15;
1422 x_rulv_tbl(i).rule_information_category := rulv_rec.rule_information_category;
1423 x_rulv_tbl(i).rule_information1 := rulv_rec.rule_information1;
1424 x_rulv_tbl(i).rule_information2 := rulv_rec.rule_information2;
1425 x_rulv_tbl(i).rule_information3 := rulv_rec.rule_information3;
1426 x_rulv_tbl(i).rule_information4 := rulv_rec.rule_information4;
1427 x_rulv_tbl(i).rule_information5 := rulv_rec.rule_information5;
1428 x_rulv_tbl(i).rule_information6 := rulv_rec.rule_information6;
1429 x_rulv_tbl(i).rule_information7 := rulv_rec.rule_information7;
1430 x_rulv_tbl(i).rule_information8 := rulv_rec.rule_information8;
1431 x_rulv_tbl(i).rule_information9 := rulv_rec.rule_information9;
1432 x_rulv_tbl(i).rule_information10 := rulv_rec.rule_information10;
1433 x_rulv_tbl(i).rule_information11 := rulv_rec.rule_information11;
1434 x_rulv_tbl(i).rule_information12 := rulv_rec.rule_information12;
1435 x_rulv_tbl(i).rule_information13 := rulv_rec.rule_information13;
1436 x_rulv_tbl(i).rule_information14 := rulv_rec.rule_information14;
1437 x_rulv_tbl(i).rule_information15 := rulv_rec.rule_information15;
1438 x_rulv_tbl(i).template_yn := rulv_rec.template_yn;
1439 x_rulv_tbl(i).ans_set_jtot_object_code := rulv_rec.ans_set_jtot_object_code;
1440 x_rulv_tbl(i).ans_set_jtot_object_id1 := rulv_rec.ans_set_jtot_object_id1;
1441 x_rulv_tbl(i).ans_set_jtot_object_id2 := rulv_rec.ans_set_jtot_object_id2;
1442 x_rulv_tbl(i).display_sequence := rulv_rec.display_sequence;
1443 END LOOP;
1444
1445 x_rule_count := i;
1446
1447 RETURN;
1448
1449 END get_contract_rules;
1450
1451 ------------------------------------------------------------------------------
1452 -- PROCEDURE check_stream_type_code
1453 -- It validates payment method code and returns ID1 and
1454 -- stacks error, if any, for further processing
1455 -- Calls:
1456 -- None
1457 -- Called By:
1458 -- check_line_literal
1459 -- check_payment_record
1460 -- check_payment_rule_group
1461 ------------------------------------------------------------------------------
1462
1463 PROCEDURE check_stream_type_code(
1464 x_return_status OUT NOCOPY VARCHAR2,
1465 x_msg_count OUT NOCOPY NUMBER,
1466 x_msg_data OUT NOCOPY VARCHAR2,
1467 p_stream_type_code IN VARCHAR2,
1468 p_stream_purpose IN VARCHAR2,
1469 x_id1 OUT NOCOPY NUMBER,
1470 x_name OUT NOCOPY VARCHAR2
1471 ) IS
1472
1473 CURSOR strm_csr (p_strm_code VARCHAR2,
1474 p_strm_purpose VARCHAR2) IS
1475 SELECT ID1, NAME
1476 FROM okl_strmtyp_source_v
1477 WHERE status = 'A'
1478 AND name = p_strm_code
1479 AND stream_type_purpose = p_strm_purpose;
1480
1481 l_id1 NUMBER;
1482 l_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
1483 strm_failed EXCEPTION;
1484
1485 BEGIN
1486 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1487
1488 debug_message('p_stream_type_code=' || p_stream_type_code);
1489 debug_message('p_stream_purpose=' || p_stream_purpose);
1490 OPEN strm_csr(p_stream_type_code,
1491 p_stream_purpose);
1492 FETCH strm_csr INTO l_id1,l_name;
1493
1494 IF strm_csr%NOTFOUND THEN
1495 RAISE strm_failed;
1496 END IF;
1497
1498 x_id1 := l_id1;
1499 x_name := l_name;
1500 RETURN;
1501
1502 EXCEPTION
1503 WHEN strm_failed THEN
1504 x_return_status := OKL_API.G_RET_STS_ERROR;
1505
1506 END check_stream_type_code;
1507
1508 ------------------------------------------------------------------------------
1509 -- FUNCTION validate_currency_code
1510 -- It validates currency Code against database, FND_CURRENCIES
1511 -- Returns OKL_API.G_RET_STS_ERROR for unknown currency code
1512 -- OKL_API.G_RET_STS_SUCCESS for valid currency code
1513 -- Calls:
1514 -- None
1515 -- Called By:
1516 -- check_input_record
1517 ------------------------------------------------------------------------------
1518
1519 FUNCTION validate_currency_code (p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
1520 p_currency_code IN VARCHAR2)
1521 RETURN VARCHAR2 IS
1522
1523 CURSOR currency_csr(p_curr_code FND_CURRENCIES.CURRENCY_CODE%TYPE) IS
1524 SELECT currency_code
1525 FROM FND_CURRENCIES
1526 WHERE currency_code = p_curr_code
1527 AND NVL(end_date_active,SYSDATE) >= SYSDATE;
1528
1529 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1530 l_currency_code FND_CURRENCIES.CURRENCY_CODE%TYPE;
1531
1532 BEGIN
1533
1534 IF (p_currency_code IS NULL) THEN
1535 okl_api.set_message(
1536 G_APP_NAME,
1537 G_MISSING_VALUE,
1538 'CONTRACT_NUM',
1539 p_contract_number,
1540 'COL_NAME',
1541 'CURRENCY_CODE'
1542 );
1543 x_return_status := OKL_API.G_RET_STS_ERROR;
1544
1545 return x_return_status;
1546 END IF;
1547
1548 OPEN currency_csr(p_currency_code);
1549 FETCH currency_csr INTO l_currency_code;
1550 IF currency_csr%NOTFOUND THEN
1551 okl_api.set_message(
1552 G_APP_NAME,
1553 G_INVALID_VALUE,
1554 'CONTRACT_NUM',
1555 p_contract_number,
1556 'COL_NAME',
1557 'CURRENCY_CODE',
1558 'COL_VALUE',
1559 p_currency_code
1560 );
1561 x_return_status := OKL_API.G_RET_STS_ERROR;
1562 END IF;
1563 CLOSE currency_csr;
1564
1565 return x_return_status;
1566
1567 END validate_currency_code;
1568
1569 ------------------------------------------------------------------------------
1570 -- FUNCTION check_header_literal
1571 -- It checks for literals in
1572 -- application_code, contract_category, converted_account,
1573 -- security_deposit_hold_flag, seurity_deposite_net_flag,
1574 -- review_invoice_flag, date_signed, date_approved, term,
1575 -- accepted_date, deal_type_code, bill_to_address, authoring_org_id,
1576 -- customer_account
1577 -- columns and reports error, if any
1578 -- Returns OKL_API.G_RET_STS_ERROR for any Error
1579 -- OKL_API.G_RET_STS_SUCCESS
1580 -- Calls:
1581 -- None
1582 -- Called By:
1583 -- check_input_record
1584 ------------------------------------------------------------------------------
1585
1586 FUNCTION check_header_literal (
1587 p_contract_number IN okl_header_interface.contract_number_old%type,
1588 p_template_id IN okc_k_headers_v.id%type,
1589 p_application_code IN okl_header_interface.application_code%type,
1590 p_contract_category IN okl_header_interface.contract_category%type,
1591 p_import_request_stage IN okl_header_interface.import_request_stage%type,
1592 p_converted_account IN okl_header_interface.converted_account%type,
1593 p_security_deposit_hold_flag IN okl_header_interface.security_deposit_hold_flag%type,
1594 p_security_deposit_net_flag IN okl_header_interface.security_deposit_net_flag%type,
1595 p_review_invoice_flag IN okl_header_interface.review_invoice_flag%type,
1596 p_date_signed IN okl_header_interface.date_signed%TYPE,
1597 p_start_date IN okl_header_interface.start_date%TYPE,
1598 p_date_approved IN okl_header_interface.date_approved%TYPE,
1599 p_term IN okl_header_interface.term%TYPE,
1600 p_accepted_date IN okl_header_interface.accepted_date%TYPE,
1601 p_deal_type_code IN okl_header_interface.deal_type_code%TYPE,
1602 p_bill_to_address IN okl_header_interface.bill_to_address%TYPE,
1603 p_bill_to_address_id IN okl_header_interface.bill_to_address_id%TYPE,
1604 p_authoring_org_id IN okl_header_interface.authoring_org_id%TYPE,
1605 p_inv_organization_id IN okl_header_interface.inventory_organization_id%TYPE,
1606 p_customer_account_number IN okl_header_interface.customer_account_number%TYPE,
1607 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
1608 p_eot_purchase_opt_type IN okl_header_interface.eot_purchase_opt_type%TYPE,
1609 p_expected_delivery_date IN okl_header_interface.expected_delivery_date%TYPE,
1610 p_currency_code IN okl_header_interface.currency_code%TYPE
1611 )
1612 RETURN VARCHAR2 IS
1613
1614 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1615 l_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1616
1617 l_rulv_tbl rulv_tbl_type;
1618 l_rule_count NUMBER;
1619 x_msg_count NUMBER;
1620 x_msg_data VARCHAR2(2000);
1621
1622 l_cust_acct_present VARCHAR2(1) := 'N';
1623 l_bto_present VARCHAR2(1) := 'N';
1624
1625 l_bill_to_site_use_id OKC_K_HEADERS_B.BILL_TO_SITE_USE_ID%TYPE;
1626 l_cust_acct_id OKC_K_HEADERS_B.CUST_ACCT_ID%TYPE;
1627 l_proc_name VARCHAR2(35) := 'check_header_literal';
1628
1629 BEGIN
1630
1631 debug_message(l_proc_name);
1632
1633 IF (UPPER(p_import_request_stage) NOT IN ( 'NEW','PASSED','COMPLETE','APPROVED','BOOKED' )) THEN
1634 okl_api.set_message(
1635 G_APP_NAME,
1636 G_LITERAL_MISMATCH,
1637 'COL_NAME',
1638 'IMPORT_REQUEST_STAGE',
1639 'COL_VALUE',
1640 p_import_request_stage
1641 );
1642 x_return_status := OKL_API.G_RET_STS_ERROR;
1643 END IF;
1644
1645 IF (p_import_request_stage <> 'NEW'
1646 AND
1647 p_date_signed IS NULL ) THEN
1648 okl_api.set_message(
1649 G_APP_NAME,
1650 G_MISSING_VALUE_FOR_STAGE,
1651 'CONTRACT_NUM',
1652 p_contract_number,
1653 'COL_NAME',
1654 'DATE_SIGNED',
1655 'STAGE',
1656 p_import_request_stage
1657 );
1658 x_return_status := OKL_API.G_RET_STS_ERROR;
1659 END IF;
1660
1661 IF (p_import_request_stage <> 'NEW'
1662 AND
1663 p_date_signed >= NVL(p_start_date,SYSDATE) ) THEN
1664 okl_api.set_message(
1665 G_APP_NAME,
1666 G_DATESIGNED_LT_START
1667 );
1668 x_return_status := OKL_API.G_RET_STS_ERROR;
1669 END IF;
1670
1671 IF (p_import_request_stage = 'BOOKED'
1672 AND
1673 p_date_approved IS NULL) THEN
1674 okl_api.set_message(
1675 G_APP_NAME,
1676 G_MISSING_VALUE_FOR_STAGE,
1677 'CONTRACT_NUM',
1678 p_contract_number,
1679 'COL_NAME',
1680 'DATE_APPROVED',
1681 'STAGE',
1682 p_import_request_stage
1683 );
1684 x_return_status := OKL_API.G_RET_STS_ERROR;
1685 END IF;
1686
1687 IF (p_import_request_stage <> 'NEW'
1688 AND
1689 p_term IS NULL ) THEN
1690 okl_api.set_message(
1691 G_APP_NAME,
1692 G_MISSING_VALUE_FOR_STAGE,
1693 'CONTRACT_NUM',
1694 p_contract_number,
1695 'COL_NAME',
1696 'TERM',
1697 'STAGE',
1698 p_import_request_stage
1699 );
1700 x_return_status := OKL_API.G_RET_STS_ERROR;
1701 END IF;
1702
1703 IF (p_authoring_org_id IS NULL) THEN
1704 okl_api.set_message(
1705 G_APP_NAME,
1706 G_MISSING_VALUE,
1707 'CONTRACT_NUM',
1708 p_contract_number,
1709 'COL_NAME',
1710 'AUTHORING_ORG_ID'
1711 );
1712 x_return_status := OKL_API.G_RET_STS_ERROR;
1713
1714 END IF;
1715
1716 IF (p_inv_organization_id IS NULL) THEN
1717 okl_api.set_message(
1718 G_APP_NAME,
1719 G_MISSING_VALUE,
1720 'CONTRACT_NUM',
1721 p_contract_number,
1722 'COL_NAME',
1723 'INV_ORGANIZATION_ID'
1724 );
1725 x_return_status := OKL_API.G_RET_STS_ERROR;
1726
1727 END IF;
1728
1729 IF (UPPER(p_import_request_stage) <> 'NEW'
1730 AND
1731 p_expected_delivery_date IS NULL) THEN
1732 okl_api.set_message(
1733 G_APP_NAME,
1734 G_MISSING_VALUE_FOR_STAGE,
1735 'CONTRACT_NUM',
1736 p_contract_number,
1737 'COL_NAME',
1738 'EXPECTED_DELIVERY_DATE',
1739 'STAGE',
1740 p_import_request_stage
1741 );
1742 x_return_status := OKL_API.G_RET_STS_ERROR;
1743 END IF;
1744
1745
1746 l_return_status := validate_currency_code(p_contract_number => p_contract_number,
1747 p_currency_code => p_currency_code);
1748
1749 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1750 x_return_status := l_return_status;
1751 END IF;
1752
1753 return x_return_status;
1754
1755 END check_header_literal;
1756
1757
1758 ------------------------------------------------------------------------------
1759 -- PROCEDURE check_for_release_asset
1760 -- This procedure checks to see whether the asset is released or not.
1761 -- Calls:
1762 -- Called By:
1763 -- load_input_record
1764 ------------------------------------------------------------------------------
1765 PROCEDURE check_for_release_asset(
1766 x_return_status OUT NOCOPY VARCHAR2,
1767 x_msg_count OUT NOCOPY NUMBER,
1768 x_msg_data OUT NOCOPY VARCHAR2,
1769 p_asset_number IN VARCHAR2,
1770 p_line_number IN NUMBER,
1771 p_org_id IN NUMBER,
1772 x_release_asset OUT NOCOPY VARCHAR2,
1773 x_asset_id OUT NOCOPY OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE
1774 ) IS
1775
1776 CURSOR release_csr (p_asset_number VARCHAR2,
1777 p_org_id NUMBER) IS
1778 SELECT asset_id
1779 FROM OKL_LA_RELEASE_ASSETS_UV
1780 WHERE asset_number = p_asset_number
1781 AND organization_id = p_org_id;
1782
1783 l_proc_name VARCHAR2(35) := 'CHECK_FOR_RELEASE_ASSET';
1784 l_release_yn VARCHAR2(1) := 'N';
1785 BEGIN
1786
1787 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1788 debug_message(l_proc_name);
1789
1790 x_asset_id := NULL;
1791 l_release_yn := 'N';
1792 OPEN release_csr (p_asset_number,
1793 p_org_id);
1794 FETCH release_csr INTO x_asset_id;
1795 IF release_csr%NOTFOUND THEN
1796 l_release_yn := 'N';
1797 ELSE
1798 l_release_yn := 'Y';
1799 END IF;
1800 CLOSE release_csr;
1801
1802 debug_message('=====> Asset '||p_asset_number||'/'||p_line_number||' : Released? : '||l_release_yn);
1803 debug_message('=====> Asset ID: '||x_asset_id);
1804
1805 x_release_asset := l_release_yn;
1806
1807 EXCEPTION
1808 WHEN OTHERS THEN
1809 okl_api.set_message(
1810 G_APP_NAME,
1811 G_UNEXPECTED_ERROR,
1812 'OKL_SQLCODE',
1813 SQLCODE,
1814 'OKL_SQLERRM',
1815 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
1816 );
1817 x_return_status := OKL_API.G_RET_STS_ERROR;
1818
1819 END check_for_release_asset;
1820 ------------------------------------------------------------------------------
1821 -- PROCEDURE get_release_asset_flag
1822 -- This procedure checks to see whether the contract header includes release assets.
1823 -- If Asset lines include a Release Asset, the function returns a value of 'Y'
1824 -- If Asset lines does not include Releases Assets, the function returns a value of 'N'
1825 -- If Asset lines includes mixed Assets, the function reports error
1826 -- Calls:
1827 -- Called By:
1828 -- load_input_record
1829 ------------------------------------------------------------------------------
1830 FUNCTION get_release_asset_flag(
1831 x_return_status OUT NOCOPY VARCHAR2,
1832 x_msg_count OUT NOCOPY NUMBER,
1833 x_msg_data OUT NOCOPY VARCHAR2,
1834 p_contract_number IN Varchar2,
1835 p_asset_number IN VARCHAR2, -- Bug #15992711:Add new parameter
1836 p_org_id IN NUMBER
1837 ) RETURN VARCHAR2 IS
1838
1839 CURSOR release_csr (p_contract_number VARCHAR2,
1840 p_asset_number VARCHAR2,
1841 p_org_id NUMBER) IS
1842 SELECT 'Y'
1843 FROM OKL_LINES_INTERFACE OLI
1844 WHERE oli.contract_number_old = p_contract_number
1845 AND EXISTS ( SELECT fa.asset_id
1846 FROM FA_ADDITIONS_B FA,
1847 OKL_ASSET_RETURNS_B OAR,
1848 OKC_K_ITEMS CIM_FA,
1849 OKC_K_LINES_B CLEB_FA,
1850 OKC_K_LINES_B CLEB_TL,
1851 OKC_K_HEADERS_B CHRB
1852 WHERE cleb_tl.chr_id = chrb.id
1853 AND chrb.inv_organization_id = p_org_id
1854 AND cleb_tl.lse_id = G_FIN_LINE_LTY_ID
1855 AND oar.kle_id = cleb_tl.id
1856 AND oar.ars_code = 'RE_LEASE'
1857 AND cleb_fa.cle_id = cleb_tl.id
1858 AND cleb_fa.lse_id = G_FA_LINE_LTY_ID
1859 AND cleb_fa.id = cim_fa.cle_id
1860 AND cleb_fa.dnz_chr_id =cim_fa.dnz_chr_id
1861 AND cim_fa.object1_id1 = fa.asset_id
1862 AND cim_fa.object1_id2 ='#'
1863 AND fa.asset_number = oli.asset_number
1864 AND oli.asset_number = p_asset_number -- Bug #15992711: Add extra condition to fetch the record pertaining to asset number
1865 AND not exists (SELECT '1'
1866 FROM okc_k_headers_b chrb_2,
1867 okc_statuses_b chr_sts,
1868 okc_k_lines_b cleb_2,
1869 okc_statuses_b cle_sts,
1870 okc_k_items cim_2
1871 WHERE chrb_2.id = cleb_2.dnz_chr_id
1872 AND chrb_2.scs_code in ('LEASE','LOAN')
1873 AND chrb_2.sts_code = chr_sts.code
1874 AND chr_sts.ste_code not in ('HOLD', 'EXPIRED', 'TERMINATED', 'CANCELLED')
1875 AND cleb_2.id = cim_2.cle_id
1876 AND cleb_2.dnz_chr_id = cim_2.dnz_chr_id
1877 AND cleb_2.sts_code = cle_sts.code
1878 AND cle_sts.ste_code not in ('HOLD', 'EXPIRED', 'TERMINATED', 'CANCELLED')
1879 AND cim_2.object1_id1 = to_char(fa.asset_id)
1880 AND cim_2.object1_id2 = '#' and cim_2.jtot_object1_code = 'OKX_ASSET'
1881 )
1882
1883 ) ;
1884
1885
1886 CURSOR unrelease_csr (p_asset_number VARCHAR2,
1887 p_org_id NUMBER) IS
1888
1889 SELECT 'Y'
1890 FROM OKL_LINES_INTERFACE OLI
1891 WHERE oli.contract_number_old = p_contract_number
1892 AND NOT EXISTS (SELECT fa.asset_id
1893 FROM FA_ADDITIONS_B FA,
1894 OKL_ASSET_RETURNS_B OAR,
1895 OKC_K_ITEMS CIM_FA,
1896 OKC_K_LINES_B CLEB_FA,
1897 OKC_K_LINES_B CLEB_TL,
1898 OKC_K_HEADERS_B CHRB
1899 WHERE cleb_tl.chr_id = chrb.id
1900 AND chrb.inv_organization_id = p_org_id
1901 AND cleb_tl.lse_id = G_FIN_LINE_LTY_ID
1902 AND oar.kle_id = cleb_tl.id
1903 AND oar.ars_code = 'RE_LEASE'
1904 AND cleb_fa.cle_id = cleb_tl.id
1905 AND cleb_fa.lse_id = G_FA_LINE_LTY_ID
1906 AND cleb_fa.id = cim_fa.cle_id
1907 AND cleb_fa.dnz_chr_id =cim_fa.dnz_chr_id
1908 AND cim_fa.object1_id1 = fa.asset_id
1909 AND cim_fa.object1_id2 ='#'
1910 AND fa.asset_number = oli.asset_number
1911 ) ;
1912
1913 l_proc_name VARCHAR2(35) := 'GET_RELEASE_ASSET_FLAG';
1914 l_released_assets_exist_yn VARCHAR2(1) := 'N';
1915 l_released_assets_not_exist_yn VARCHAR2(1) := 'N';
1916 l_release_yn VARCHAR2(1) ;
1917 BEGIN
1918
1919 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1920 debug_message(l_proc_name);
1921
1922 OPEN release_csr (p_contract_number, -- Bug #15992711: Added a new parameter
1923 p_asset_number,
1924 p_org_id);
1925
1926 FETCH release_csr INTO l_released_assets_exist_yn;
1927 IF release_csr%NOTFOUND THEN
1928 l_released_assets_exist_yn := 'N';
1929 ELSE
1930 l_released_assets_exist_yn := 'Y';
1931 END IF;
1932 CLOSE release_csr;
1933 debug_message ('l_released_assets_exist_yn :'|| l_released_assets_exist_yn);
1934
1935 --Bug #15992711 : Start of modification
1936 -- Condition no longer required
1937 /*OPEN unrelease_csr (p_contract_number,
1938 p_org_id);
1939
1940 FETCH unrelease_csr INTO l_released_assets_not_exist_yn;
1941 IF unrelease_csr%NOTFOUND THEN
1942 l_released_assets_not_exist_yn := 'N';
1943 ELSE
1944 l_released_assets_not_exist_yn := 'Y';
1945 END IF;
1946 CLOSE unrelease_csr;
1947 debug_message ('l_released_assets_not_exist_yn :'|| l_released_assets_not_exist_yn);
1948 */
1949
1950 --Bug #15992711
1951 --IF ((l_released_assets_exist_yn = 'Y') AND (l_released_assets_not_exist_yn = 'N')) THEN
1952 IF (l_released_assets_exist_yn = 'Y') THEN
1953 l_release_yn := 'Y';
1954 --ELSIF ((l_released_assets_exist_yn = 'N') AND (l_released_assets_not_exist_yn = 'Y')) THEN
1955 ELSE
1956 l_release_yn := 'N';
1957 -- 4539003
1958 --Bug #15992711 : Dont show an error when the contract has mix of assets.
1959 /*ELSIF ((l_released_assets_exist_yn = 'N') AND (l_released_assets_not_exist_yn = 'N')) THEN
1960 l_release_yn := 'N';
1961 ELSE
1962 okl_api.set_message(
1963 G_APP_NAME,
1964 G_MIXED_ASSET,
1965 'CONTRACT_NUM',
1966 p_contract_number
1967 );
1968 x_return_status := OKL_API.G_RET_STS_ERROR;*/
1969 -- Bug #15992711 : End of modification
1970 END IF;
1971 debug_message ('l_release_yn : '|| l_release_yn);
1972 RETURN l_release_yn;
1973
1974 EXCEPTION
1975 WHEN OTHERS THEN
1976 IF ( release_csr%ISOPEN ) THEN
1977 CLOSE release_csr;
1978 END IF;
1979 IF ( unrelease_csr%ISOPEN ) THEN
1980 CLOSE unrelease_csr;
1981 END IF;
1982 okl_api.set_message(
1983 G_APP_NAME,
1984 G_UNEXPECTED_ERROR,
1985 'OKL_SQLCODE',
1986 SQLCODE,
1987 'OKL_SQLERRM',
1988 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
1989 );
1990 x_return_status := OKL_API.G_RET_STS_ERROR;
1991
1992 END get_release_asset_flag;
1993 ------------------------------------------------------------------------------
1994 ------------------------------------------------------------------------------
1995 -- PROCEDURE check_balance_legacy
1996 -- This procedure checks to see that If DT_EFFECTIVE_BALANCE_LEGACY has been
1997 -- specified for any one asset, then the same date value should be specified
1998 -- for all assets on the contract
1999 --
2000 -- Calls:
2001 -- Called By:
2002 -- load_input_record
2003 ------------------------------------------------------------------------------
2004 PROCEDURE check_balance_legacy(
2005 x_return_status OUT NOCOPY VARCHAR2,
2006 x_msg_count OUT NOCOPY NUMBER,
2007 x_msg_data OUT NOCOPY VARCHAR2,
2008 p_contract_number IN Varchar2
2009 ) IS
2010
2011 CURSOR legacy_balance_csr (p_contract_number VARCHAR2) IS
2012 SELECT 'Y'
2013 FROM OKL_LINES_INTERFACE OLI
2014 WHERE oli.contract_number_old = p_contract_number
2015 AND oli.line_type = 'ASSET'
2016 AND oli.dt_effective_balance_legacy IS NOT NULL
2017 AND EXISTS ( SELECT 'Y'
2018 FROM OKL_LINES_INTERFACE OLI1
2019 WHERE oli1.contract_number_old = p_contract_number
2020 AND oli1.line_type = 'ASSET'
2021 AND (oli1.dt_effective_balance_legacy IS NULL OR
2022 oli1.dt_effective_balance_legacy <> oli.dt_effective_balance_legacy)
2023 ) ;
2024
2025
2026 l_proc_name VARCHAR2(35) := 'CHECK_BALANCE_LEGACY';
2027 l_multiple_bal_dates_yn VARCHAR2(1) := 'N';
2028 BEGIN
2029
2030 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2031 debug_message(l_proc_name);
2032
2033 OPEN legacy_balance_csr (p_contract_number);
2034
2035 FETCH legacy_balance_csr INTO l_multiple_bal_dates_yn;
2036 IF legacy_balance_csr%NOTFOUND THEN
2037 l_multiple_bal_dates_yn := 'N';
2038 END IF;
2039 CLOSE legacy_balance_csr;
2040 debug_message ('l_multiple_bal_dates_yn :'|| l_multiple_bal_dates_yn);
2041
2042 IF l_multiple_bal_dates_yn = 'Y' THEN
2043 okl_api.set_message(
2044 G_APP_NAME,
2045 G_MULTIPLE_LEGACY_BAL_DATE,
2046 'CONTRACT_NUM',
2047 p_contract_number
2048 );
2049 x_return_status := OKL_API.G_RET_STS_ERROR;
2050 END IF;
2051
2052 EXCEPTION
2053 WHEN OTHERS THEN
2054 IF ( legacy_balance_csr%ISOPEN ) THEN
2055 CLOSE legacy_balance_csr;
2056 END IF;
2057
2058 okl_api.set_message(
2059 G_APP_NAME,
2060 G_UNEXPECTED_ERROR,
2061 'OKL_SQLCODE',
2062 SQLCODE,
2063 'OKL_SQLERRM',
2064 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
2065 );
2066 x_return_status := OKL_API.G_RET_STS_ERROR;
2067
2068 END check_balance_legacy;
2069 --Bug# 16344245
2070 ------------------------------------------------------------------------------
2071 -- PROCEDURE check_line_literal
2072 -- It checks for literals in
2073 -- line_number, line_type, amount, inventory_item, install_site,
2074 -- asset_corporate_book, asset_category_segments, asset_location_segments,
2075 -- depreciation_method, life_in_months, fee_code, price_list_name,
2076 -- counter_group_name, usage_bill_frequency_code, base_reading_uom_code
2077 -- columns and reports error, if any
2078 -- Returns OKL_API.G_RET_STS_ERROR for any Error
2079 -- OKL_API.G_RET_STS_SUCCESS
2080 -- Calls:
2081 -- check_stream_type_code
2082 -- Called By:
2083 -- check_input_record
2084 ------------------------------------------------------------------------------
2085
2086 PROCEDURE check_line_literal (
2087 x_return_status OUT NOCOPY VARCHAR2,
2088 x_msg_count OUT NOCOPY NUMBER,
2089 x_msg_data OUT NOCOPY VARCHAR2,
2090 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
2091 p_import_request_stage IN okl_header_interface.import_request_stage%TYPE,
2092 p_product_id IN okl_header_interface.product_id%TYPE,
2093 p_product_name IN okl_header_interface.product_name%TYPE,
2094 p_line_number IN okl_lines_interface.line_number%TYPE,
2095 p_line_type IN okl_lines_interface.line_type%TYPE,
2096 p_amount IN okl_lines_interface.amount%TYPE,
2097 p_currency_code IN okl_lines_interface.currency_code%TYPE,
2098 p_asset_number IN okl_lines_interface.asset_number%TYPE,
2099 p_inventory_item_name IN okl_lines_interface.inventory_item_name%TYPE,
2100 p_inventory_item_id IN okl_lines_interface.inventory_item_id%TYPE,
2101 p_install_site_number IN okl_lines_interface.install_site_number%TYPE,
2102 p_install_site_id IN okl_lines_interface.install_site_id%TYPE,
2103 p_asset_corporate_book IN okl_lines_interface.asset_corporate_book%TYPE,
2104 p_asset_category_id IN okl_lines_interface.asset_category_id%TYPE,
2105 p_asset_category_segment1 IN okl_lines_interface.asset_category_segment1%TYPE,
2106 p_asset_category_segment2 IN okl_lines_interface.asset_category_segment2%TYPE,
2107 p_asset_category_segment3 IN okl_lines_interface.asset_category_segment3%TYPE,
2108 p_asset_category_segment4 IN okl_lines_interface.asset_category_segment4%TYPE,
2109 p_asset_category_segment5 IN okl_lines_interface.asset_category_segment5%TYPE,
2110 p_asset_category_segment6 IN okl_lines_interface.asset_category_segment6%TYPE,
2111 p_asset_category_segment7 IN okl_lines_interface.asset_category_segment7%TYPE,
2112 p_asset_location_id IN okl_lines_interface.asset_location_id%TYPE,
2113 p_asset_location_segment1 IN okl_lines_interface.asset_location_segment1%TYPE,
2114 p_asset_location_segment2 IN okl_lines_interface.asset_location_segment2%TYPE,
2115 p_asset_location_segment3 IN okl_lines_interface.asset_location_segment3%TYPE,
2116 p_asset_location_segment4 IN okl_lines_interface.asset_location_segment4%TYPE,
2117 p_asset_location_segment5 IN okl_lines_interface.asset_location_segment5%TYPE,
2118 p_asset_location_segment6 IN okl_lines_interface.asset_location_segment6%TYPE,
2119 p_asset_location_segment7 IN okl_lines_interface.asset_location_segment7%TYPE,
2120 p_depreciation_method_id IN okl_lines_interface.depreciation_method_id%TYPE,
2121 p_depreciation_method_code IN okl_lines_interface.depreciation_method_code%TYPE,
2122 p_life_in_months IN okl_lines_interface.life_in_months%TYPE,
2123 p_fee_code IN okl_lines_interface.fee_code%TYPE,
2124 p_stream_purpose IN okl_lines_interface.stream_purpose_code%TYPE,
2125 p_fee_type IN okl_lines_interface.fee_type%TYPE,
2126 p_price_list_name IN okl_lines_interface.price_list_name%TYPE,
2127 p_price_list_id IN okl_lines_interface.price_list_id%TYPE,
2128 p_counter_group_name IN okl_lines_interface.counter_group_name%TYPE,
2129 p_counter_group_id IN okl_lines_interface.counter_group_id%TYPE,
2130 p_usage_bill_frequency_code IN okl_lines_interface.usage_bill_frequency_code%TYPE,
2131 p_base_reading_uom_code IN okl_lines_interface.base_reading_uom_code%TYPE,
2132 p_usage_type_code IN okl_lines_interface.usage_type_code%TYPE,
2133 p_usage_period IN okl_lines_interface.usage_period%TYPE,
2134 p_usage_no_of_period IN okl_lines_interface.usage_no_of_period%TYPE,
2135 p_tax_cost IN okl_lines_interface.tax_cost%TYPE,
2136 p_tax_book IN okl_lines_interface.tax_book%TYPE,
2137 p_life_in_months_tax IN okl_lines_interface.life_in_months_tax%TYPE,
2138 p_deprn_method_tax IN okl_lines_interface.deprn_method_tax%TYPE,
2139 p_deprn_rate_tax IN okl_lines_interface.deprn_rate_tax%TYPE,
2140 p_in_service_date IN okl_lines_interface.in_service_date%TYPE,
2141 p_link_asset_amount IN okl_lines_interface.link_asset_amount%TYPE,
2142 p_inv_org_id IN okl_header_interface.inventory_organization_id%TYPE,
2143 p_term_quote_id IN okl_lines_interface.termination_quote_id%TYPE,
2144 p_term_quote_number IN okl_lines_interface.termination_quote_number%TYPE,
2145 p_fee_purpose_code IN okl_lines_interface.fee_purpose_code%TYPE,
2146 --Bug# 16344245
2147 p_amount_balance_legacy IN okl_lines_interface.amount_balance_legacy%TYPE,
2148 p_dt_effective_balance_legacy IN okl_lines_interface.dt_effective_balance_legacy%TYPE
2149 ) IS
2150 -- 4475344
2151 /*
2152 CURSOR srv_supp_csr(p_contract_number OKL_PARTY_ROLES_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
2153 p_line_number OKL_PARTY_ROLES_INTERFACE.LINE_NUMBER%TYPE) IS
2154 SELECT service_vendor_id,
2155 service_vendor_name
2156 FROM okl_party_roles_interface
2157 WHERE contract_number_old = p_contract_number
2158 AND line_number = p_line_number;
2159 */
2160 CURSOR fnd_lookup_csr(p_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE,
2161 p_lookup_type FND_LOOKUPS.LOOKUP_TYPE%TYPE) IS
2162 SELECT 'X'
2163 FROM FND_LOOKUPS
2164 WHERE lookup_code = p_lookup_code
2165 AND lookup_type = p_lookup_type;
2166
2167 l_supp_name OKL_PARTY_ROLES_INTERFACE.SERVICE_VENDOR_NAME%TYPE;
2168 l_supp_id OKL_PARTY_ROLES_INTERFACE.SERVICE_VENDOR_ID%TYPE;
2169
2170 x_id1 okl_strmtyp_source_v.id1%TYPE;
2171 x_asset_id OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE;
2172 x_release_asset VARCHAR2(1) := 'N';
2173
2174 halt_validation EXCEPTION;
2175 l_return_status VARCHAR2(1);
2176
2177 l_proc_name VARCHAR2(35) := 'check_line_literal';
2178 l_fee_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
2179
2180 l_exists_yn VARCHAR2(1);
2181
2182 BEGIN
2183 debug_message(l_proc_name);
2184
2185 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2186 debug_message('Line type: '||p_line_type);
2187
2188 IF (p_line_type NOT IN ('ASSET','SERVICE', 'FEE', 'USAGE', 'ASSET_SUBSIDY', 'ASSET_ADDON' )) THEN
2189 okl_api.set_message(
2190 G_APP_NAME,
2191 G_INVALID_VALUE,
2192 'CONTRACT_NUM',
2193 p_contract_number||'/'||TO_CHAR(p_line_number),
2194 'COL_NAME',
2195 'LINE_TYPE',
2196 'COL_VALUE',
2197 p_line_type
2198 );
2199
2200 x_return_status := OKL_API.G_RET_STS_ERROR;
2201 RAISE halt_validation; -- major error, don't proceed with other validation
2202 END IF;
2203
2204 IF (p_line_type = 'ASSET'
2205 AND
2206 p_asset_number IS NULL) THEN
2207 okl_api.set_message(
2208 G_APP_NAME,
2209 G_MISSING_VALUE_FOR_LINE,
2210 'CONTRACT_NUM',
2211 p_contract_number||'/'||TO_CHAR(p_line_number),
2212 'COL_NAME',
2213 'ASSET NUMBER',
2214 'LINE',
2215 p_line_type
2216 );
2217
2218 x_return_status := OKL_API.G_RET_STS_ERROR;
2219 END IF;
2220
2221 --Bug# 16344245
2222
2223 -- AMOUNT_BALANCE_LEGACY is supported only for Line Type - ASSET for contracts with Interest Calculation Basis - Reamort
2224 IF (p_line_type <> 'ASSET' AND p_amount_balance_legacy IS NOT NULL)
2225 OR (p_line_type = 'ASSET' AND p_amount_balance_legacy IS NOT NULL AND G_INTEREST_CALCULATION_BASIS <> 'REAMORT') THEN
2226 OKL_API.SET_MESSAGE(
2227 G_APP_NAME,
2228 G_LINE_VALUE_NOT_ALLOWED,
2229 'CONTRACT_NUM',
2230 p_contract_number,
2231 'LINE_NUM',
2232 p_line_number,
2233 'COL_NAME',
2234 'AMOUNT_BALANCE_LEGACY'
2235 );
2236
2237 x_return_status := OKL_API.G_RET_STS_ERROR;
2238 END IF;
2239
2240 -- DT_EFFECTIVE_BALANCE_LEGACY is supported only for Line Type - ASSET for contracts with Interest Calculation Basis - Reamort
2241 IF (p_line_type <> 'ASSET' AND p_dt_effective_balance_legacy IS NOT NULL)
2242 OR (p_line_type = 'ASSET' AND p_dt_effective_balance_legacy IS NOT NULL AND G_INTEREST_CALCULATION_BASIS <> 'REAMORT') THEN
2243 OKL_API.SET_MESSAGE(
2244 G_APP_NAME,
2245 G_LINE_VALUE_NOT_ALLOWED,
2246 'CONTRACT_NUM',
2247 p_contract_number,
2248 'LINE_NUM',
2249 p_line_number,
2250 'COL_NAME',
2251 'DT_EFFECTIVE_BALANCE_LEGACY'
2252 );
2253
2254 x_return_status := OKL_API.G_RET_STS_ERROR;
2255 END IF;
2256
2257 -- AMOUNT_BALANCE_LEGACY is required if DF_EFFECTIVE_BALANCE_LEGACY has been poulated
2258 IF (p_line_type = 'ASSET' AND G_INTEREST_CALCULATION_BASIS = 'REAMORT' AND p_dt_effective_balance_legacy IS NOT NULL AND p_amount_balance_legacy IS NULL) THEN
2259 OKL_API.SET_MESSAGE(
2260 G_APP_NAME,
2261 G_MISSING_VALUE_FOR_LINE,
2262 'CONTRACT_NUM',
2263 p_contract_number||'/'||TO_CHAR(p_line_number),
2264 'COL_NAME',
2265 'AMOUNT_BALANCE_LEGACY',
2266 'LINE',
2267 p_line_type
2268 );
2269
2270 x_return_status := OKL_API.G_RET_STS_ERROR;
2271 END IF;
2272
2273 -- DF_EFFECTIVE_BALANCE_LEGACY is required if AMOUNT_BALANCE_LEGACY has been poulated
2274 IF (p_line_type = 'ASSET' AND G_INTEREST_CALCULATION_BASIS = 'REAMORT' AND p_amount_balance_legacy IS NOT NULL AND p_dt_effective_balance_legacy IS NULL) THEN
2275 OKL_API.SET_MESSAGE(
2276 G_APP_NAME,
2277 G_MISSING_VALUE_FOR_LINE,
2278 'CONTRACT_NUM',
2279 p_contract_number||'/'||TO_CHAR(p_line_number),
2280 'COL_NAME',
2281 'DT_EFFECTIVE_BALANCE_LEGACY',
2282 'LINE',
2283 p_line_type
2284 );
2285
2286 x_return_status := OKL_API.G_RET_STS_ERROR;
2287 END IF;
2288
2289 --Bug# 16344245
2290
2291 /* 4414408
2292 check_for_release_asset(
2293 x_return_status => l_return_status,
2294 x_msg_count => x_msg_count,
2295 x_msg_data => x_msg_data,
2296 p_asset_number => p_asset_number,
2297 p_line_number => p_line_number,
2298 p_org_id => p_inv_org_id,
2299 x_release_asset => x_release_asset,
2300 x_asset_id => x_asset_id
2301 );
2302
2303 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2304 x_return_status := OKL_API.G_RET_STS_ERROR;
2305 END IF;
2306
2307 debug_message('------> Asset '||p_asset_number||': Released? :'||x_release_asset);
2308
2309 IF (p_line_type = 'ASSET'
2310 AND
2311 x_release_asset = 'N'
2312 AND
2313 p_tax_book IS NOT NULL
2314 AND
2315 p_asset_corporate_book IS NULL) THEN
2316 okl_api.set_message(
2317 G_APP_NAME,
2318 G_MISSING_VALUE_FOR_LINE,
2319 'CONTRACT_NUM',
2320 p_contract_number||'/'||TO_CHAR(p_line_number),
2321 'COL_NAME',
2322 'CORPORATE BOOK',
2323 'LINE',
2324 p_line_type
2325 );
2326 x_return_status := OKL_API.G_RET_STS_ERROR;
2327
2328 END IF;
2329 */
2330 IF (p_line_type = 'USAGE'
2331 AND
2332 p_asset_number IS NULL
2333 AND
2334 p_import_request_stage <> 'NEW') THEN
2335 okl_api.set_message(
2336 G_APP_NAME,
2337 G_MISSING_VALUE_STAGE_LINE,
2338 'CONTRACT_NUM',
2339 p_contract_number||'/'||TO_CHAR(p_line_number),
2340 'COL_NAME',
2341 'ASSET NUMBER',
2342 'STAGE',
2343 p_import_request_stage,
2344 'LINE',
2345 p_line_type
2346 );
2347
2348 x_return_status := OKL_API.G_RET_STS_ERROR;
2349 END IF;
2350
2351 IF (p_line_type IN ('SERVICE', 'FEE')
2352 AND
2353 p_amount IS NULL) THEN
2354 okl_api.set_message(
2355 G_APP_NAME,
2356 G_MISSING_VALUE_FOR_LINE,
2357 'CONTRACT_NUM',
2358 p_contract_number||'/'||TO_CHAR(p_line_number),
2359 'COL_NAME',
2360 'AMOUNT',
2361 'LINE',
2362 p_line_type
2363 );
2364
2365 x_return_status := OKL_API.G_RET_STS_ERROR;
2366 END IF;
2367
2368 /* 4414408
2369 IF (p_line_type = 'ASSET'
2370 AND
2371 x_release_asset = 'N'
2372 AND
2373 p_inventory_item_name IS NULL
2374 AND
2375 p_inventory_item_id IS NULL) THEN
2376 okl_api.set_message(
2377 G_APP_NAME,
2378 G_MISSING_VALUE_FOR_LINE,
2379 'CONTRACT_NUM',
2380 p_contract_number||'/'||TO_CHAR(p_line_number),
2381 'COL_NAME',
2382 'INVENTORY_ITEM_NAME OR INVENTORY_ITEM_ID',
2383 'LINE',
2384 p_line_type
2385 );
2386
2387 x_return_status := OKL_API.G_RET_STS_ERROR;
2388 END IF;
2389 */
2390 IF (p_line_type IN ('SERVICE','USAGE')
2391 AND
2392 p_inventory_item_name IS NULL
2393 AND
2394 p_inventory_item_id IS NULL) THEN
2395 okl_api.set_message(
2396 G_APP_NAME,
2397 G_MISSING_VALUE_FOR_LINE,
2398 'CONTRACT_NUM',
2399 p_contract_number||'/'||TO_CHAR(p_line_number),
2400 'COL_NAME',
2401 'INVENTORY_ITEM_NAME OR INVENTORY_ITEM_ID',
2402 'LINE',
2403 p_line_type
2404 );
2405
2406 x_return_status := OKL_API.G_RET_STS_ERROR;
2407 END IF;
2408
2409 /* 4414408
2410 IF (p_line_type = 'ASSET'
2411 AND
2412 x_release_asset = 'N'
2413 AND
2414 p_install_site_number IS NULL
2415 AND
2416 p_install_site_id IS NULL) THEN
2417 okl_api.set_message(
2418 G_APP_NAME,
2419 G_MISSING_VALUE_FOR_LINE,
2420 'CONTRACT_NUM',
2421 p_contract_number||'/'||TO_CHAR(p_line_number),
2422 'COL_NAME',
2423 'INSTALL_SITE_NUMBER OR INSTALL_SITE_ID',
2424 'LINE',
2425 p_line_type
2426 );
2427
2428 x_return_status := OKL_API.G_RET_STS_ERROR;
2429 END IF;
2430 */
2431 IF (p_line_type = 'FEE') THEN
2432
2433 IF (p_fee_code IS NULL) THEN
2434 okl_api.set_message(
2435 G_APP_NAME,
2436 G_MISSING_VALUE_FOR_LINE,
2437 'CONTRACT_NUM',
2438 p_contract_number||'/'||TO_CHAR(p_line_number),
2439 'COL_NAME',
2440 'FEE_CODE',
2441 'LINE',
2442 p_line_type
2443 );
2444
2445 x_return_status := OKL_API.G_RET_STS_ERROR;
2446
2447 ELSE
2448
2449 check_stream_type_code(
2450 x_return_status => l_return_status,
2451 x_msg_count => x_msg_count,
2452 x_msg_data => x_msg_data,
2453 p_stream_type_code => p_fee_code,
2454 p_stream_purpose => p_stream_purpose,
2455 x_id1 => x_id1,
2456 x_name => l_fee_name
2457 );
2458 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2459 okl_api.set_message(
2460 G_APP_NAME,
2461 G_INVALID_VALUE,
2462 'CONTRACT_NUM',
2463 p_contract_number||'/'||TO_CHAR(p_line_number),
2464 'COL_NAME',
2465 'FEE_CODE, STREAM_PURPOSE_CODE',
2466 'COL_VALUE',
2467 p_fee_code||', '||p_stream_purpose
2468 );
2469 x_return_status := OKL_API.G_RET_STS_ERROR;
2470 END IF;
2471 END IF; --fee_code not null
2472
2473 IF (p_fee_type IS NULL) THEN
2474 okl_api.set_message(
2475 G_APP_NAME,
2476 G_MISSING_VALUE_FOR_LINE,
2477 'CONTRACT_NUM',
2478 p_contract_number||'/'||TO_CHAR(p_line_number),
2479 'COL_NAME',
2480 'FEE_TYPE',
2481 'LINE',
2482 p_line_type
2483 );
2484
2485 x_return_status := OKL_API.G_RET_STS_ERROR;
2486
2487 END IF; --Fee Type
2488
2489 IF (p_fee_type = 'ROLLOVER'
2490 AND
2491 ( p_term_quote_id IS NULL
2492 AND
2493 p_term_quote_number IS NULL)
2494 ) THEN
2495
2496 okl_api.set_message(
2497 G_APP_NAME,
2498 G_MISSING_VALUE_FOR_LINE,
2499 'CONTRACT_NUM',
2500 p_contract_number||'/'||p_line_number,
2501 'COL_NAME',
2502 'TERMINATION_QUOTE_ID OR TERMINATION_QUOTE_NUMBER',
2503 'LINE',
2504 p_line_type
2505 );
2506 x_return_status := OKL_API.G_RET_STS_ERROR;
2507 END IF;
2508
2509 IF (p_fee_purpose_code is NOT NULL) THEN
2510 OPEN fnd_lookup_csr (p_fee_purpose_code, 'OKL_FEE_PURPOSE');
2511 FETCH fnd_lookup_csr INTO l_exists_yn;
2512 IF (fnd_lookup_csr%NOTFOUND) THEN
2513 okl_api.set_message(
2514 G_APP_NAME,
2515 G_INVALID_VALUE,
2516 'CONTRACT_NUM',
2517 p_contract_number||'/'||TO_CHAR(p_line_number),
2518 'COL_NAME',
2519 'FEE_PURPOSE_CODE',
2520 'COL_VALUE',
2521 p_fee_purpose_code
2522 );
2523 x_return_status := OKL_API.G_RET_STS_ERROR;
2524 END IF;
2525 CLOSE fnd_lookup_csr;
2526 END IF;
2527
2528 END IF; -- fee line type
2529
2530 IF (p_line_type = 'USAGE'
2531 AND
2532 p_price_list_name IS NULL
2533 AND
2534 p_price_list_id IS NULL) THEN
2535 okl_api.set_message(
2536 G_APP_NAME,
2537 G_MISSING_VALUE_FOR_LINE,
2538 'CONTRACT_NUM',
2539 p_contract_number||'/'||TO_CHAR(p_line_number),
2540 'COL_NAME',
2541 'PRICE_LIST_NAME OR PRICE_LIST_ID',
2542 'LINE',
2543 p_line_type
2544 );
2545
2546 x_return_status := OKL_API.G_RET_STS_ERROR;
2547 END IF;
2548
2549 IF (p_line_type = 'USAGE'
2550 AND
2551 p_base_reading_uom_code IS NULL) THEN
2552 okl_api.set_message(
2553 G_APP_NAME,
2554 G_MISSING_VALUE_FOR_LINE,
2555 'CONTRACT_NUM',
2556 p_contract_number||'/'||TO_CHAR(p_line_number),
2557 'COL_NAME',
2558 'BASE_READING_UOM_CODE',
2559 'LINE',
2560 p_line_type
2561 );
2562
2563 x_return_status := OKL_API.G_RET_STS_ERROR;
2564 END IF;
2565
2566 IF (p_line_type = 'USAGE'
2567 AND
2568 p_usage_type_code IS NULL) THEN
2569 okl_api.set_message(
2570 G_APP_NAME,
2571 G_MISSING_VALUE_FOR_LINE,
2572 'CONTRACT_NUM',
2573 p_contract_number||'/'||TO_CHAR(p_line_number),
2574 'COL_NAME',
2575 'USAGE_TYPE',
2576 'LINE',
2577 p_line_type
2578 );
2579
2580 x_return_status := OKL_API.G_RET_STS_ERROR;
2581 END IF;
2582
2583 IF (p_line_type = 'USAGE'
2584 AND
2585 p_usage_period IS NULL) THEN
2586 okl_api.set_message(
2587 G_APP_NAME,
2588 G_MISSING_VALUE_FOR_LINE,
2589 'CONTRACT_NUM',
2590 p_contract_number||'/'||TO_CHAR(p_line_number),
2591 'COL_NAME',
2592 'USAGE_PERIOD',
2593 'LINE',
2594 p_line_type
2595 );
2596
2597 x_return_status := OKL_API.G_RET_STS_ERROR;
2598 END IF;
2599
2600 IF (p_line_type = 'USAGE'
2601 AND
2602 p_usage_no_of_period IS NULL) THEN
2603 okl_api.set_message(
2604 G_APP_NAME,
2605 G_MISSING_VALUE_FOR_LINE,
2606 'CONTRACT_NUM',
2607 p_contract_number||'/'||TO_CHAR(p_line_number),
2608 'COL_NAME',
2609 'USAGE_NO_OF_PERIOD',
2610 'LINE',
2611 p_line_type
2612 );
2613
2614 x_return_status := OKL_API.G_RET_STS_ERROR;
2615 END IF;
2616
2617 IF (p_line_type = 'SERVICE') THEN
2618 --
2619 -- Check for the presence of SERVICE VENDOR
2620 -- and link asset line amount
2621 --
2622 IF (p_link_asset_amount IS NULL
2623 AND
2624 p_asset_number IS NOT NULL) THEN
2625 okl_api.set_message(
2626 G_APP_NAME,
2627 G_MISSING_VALUE_FOR_LINE,
2628 'CONTRACT_NUM',
2629 p_contract_number||'/'||TO_CHAR(p_line_number),
2630 'COL_NAME',
2631 'LINK ASSET AMOUNT',
2632 'LINE',
2633 p_line_type
2634 );
2635 x_return_status := OKL_API.G_RET_STS_ERROR;
2636 END IF;
2637
2638 /* 4475344
2639 l_supp_name := NULL;
2640 l_supp_id := NULL;
2641 OPEN srv_supp_csr (p_contract_number,
2642 p_line_number);
2643 FETCH srv_supp_csr INTO l_supp_id,
2644 l_supp_name;
2645 CLOSE srv_supp_csr;
2646
2647 IF (l_supp_name IS NULL
2648 AND
2649 l_supp_id IS NULL) THEN
2650 okl_api.set_message(
2651 G_APP_NAME,
2652 G_MISSING_VALUE_FOR_LINE,
2653 'CONTRACT_NUM',
2654 p_contract_number||'/'||TO_CHAR(p_line_number),
2655 'COL_NAME',
2656 'SERVICE VENDOR',
2657 'LINE',
2658 p_line_type
2659 );
2660
2661 x_return_status := OKL_API.G_RET_STS_ERROR;
2662 END IF;
2663 */
2664 END IF; -- SERVICE line
2665
2666 debug_message('return status :'||x_return_status);
2667
2668 return;
2669
2670 EXCEPTION
2671 WHEN halt_validation THEN
2672 x_return_status := OKL_API.G_RET_STS_ERROR;
2673
2674 END check_line_literal;
2675
2676 ------------------------------------------------------------------------------
2677 -- FUNCTION validate_customer
2678 -- It validates customer against database, OKX_PARTIES_V
2679 -- Returns OKL_API.G_RET_STS_ERROR for unknown customer
2680 -- OKL_API.G_RET_STS_SUCCESS for existing customer
2681 -- Also outputs ID1 for corresponding Customer
2682 -- Calls:
2683 -- None
2684 -- Called By:
2685 -- check_input_record
2686 ------------------------------------------------------------------------------
2687
2688 FUNCTION validate_customer (p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
2689 p_customer_id IN OKX_PARTIES_V.ID1%TYPE,
2690 p_customer_number IN OKX_PARTIES_V.PARTY_NUMBER%TYPE,
2691 x_id1 OUT NOCOPY OKX_PARTIES_V.ID1%TYPE)
2692 RETURN VARCHAR2 IS
2693
2694 CURSOR customer_csr (p_customer_id OKX_PARTIES_V.ID1%TYPE,
2695 p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE) IS
2696 SELECT id1
2697 FROM okx_parties_v
2698 WHERE NVL(TRUNC(end_date_active), TRUNC(SYSDATE)) >= TRUNC(SYSDATE)
2699 AND ((id1 = p_customer_id
2700 AND p_customer_id IS NOT NULL)
2701 OR
2702 (party_number = p_customer_number
2703 AND
2704 p_customer_number IS NOT NULL));
2705
2706 BEGIN
2707
2708 OPEN customer_csr(p_customer_id,
2709 p_customer_number);
2710 FETCH customer_csr into x_id1;
2711 CLOSE customer_csr;
2712
2713 IF (x_id1 IS NULL) THEN
2714 okl_api.set_message(
2715 G_APP_NAME,
2716 G_INVALID_VALUE,
2717 'CONTRACT_NUM',
2718 p_contract_number,
2719 'COL_NAME',
2720 'CUSTOMER_ID, NUMBER',
2721 'COL_VALUE',
2722 p_customer_id||', '||p_customer_number
2723 );
2724 return OKL_API.G_RET_STS_ERROR; -- Customer Not found
2725 ELSE
2726 return OKL_API.G_RET_STS_SUCCESS;
2727 END IF;
2728
2729 END validate_customer;
2730
2731 ------------------------------------------------------------------------------
2732 -- FUNCTION check_contract_number
2733 -- It checks for duplicate contract number in OKL.
2734 -- Returns OKL_API.G_RET_STS_ERROR for duplicate and
2735 -- OKL_API.G_RET_STS_SUCCESS for New
2736 -- Calls:
2737 -- None
2738 -- Called By:
2739 -- check_input_record
2740 ------------------------------------------------------------------------------
2741
2742 FUNCTION check_contract_number (p_contract_number IN VARCHAR2)
2743 RETURN VARCHAR2 IS
2744
2745 CURSOR khdr_csr (p_ontract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE) IS
2746 SELECT contract_number
2747 FROM okc_k_headers_v
2748 WHERE contract_number = p_contract_number;
2749
2750 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
2751 l_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
2752
2753 BEGIN
2754
2755 OPEN khdr_csr(p_contract_number);
2756 FETCH khdr_csr INTO l_contract_number;
2757 IF khdr_csr%NOTFOUND THEN
2758 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2759 ELSE
2760 x_return_status := OKL_API.G_RET_STS_ERROR;
2761 END IF;
2762 CLOSE khdr_csr;
2763
2764 IF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2765 okl_api.set_message(
2766 G_APP_NAME,
2767 G_DUP_VALUE,
2768 'COL_NAME',
2769 'CONTRACT_NUMBER_OLD',
2770 'COL_VALUE',
2771 p_contract_number
2772 );
2773 END IF;
2774
2775 return x_return_status;
2776
2777 END check_contract_number;
2778
2779
2780 ------------------------------------------------------------------------------
2781 -- PROCEDURE check_payment_frequency_code
2782 -- It validates Payment Frequency Code and returns ID1 and
2783 -- stacks error, if any for further processing
2784 -- Calls:
2785 -- None
2786 -- Called By:
2787 -- check_payment_record
2788 -- create_payment_other_rules
2789 -- load_input_record
2790 ------------------------------------------------------------------------------
2791 PROCEDURE check_payment_frequency_code(
2792 x_return_status OUT NOCOPY VARCHAR2,
2793 x_msg_count OUT NOCOPY NUMBER,
2794 x_msg_data OUT NOCOPY VARCHAR2,
2795 p_payment_freq_code IN okl_payments_interface.payment_frequency_code%TYPE,
2796 x_id1 OUT NOCOPY okx_tuom_v.id1%TYPE,
2797 x_uom_code OUT NOCOPY okx_tuom_v.uom_code%TYPE
2798 ) IS
2799 /*
2800 CURSOR freq_csr (p_payment_freq_code okl_payments_interface.payment_frequency_code%TYPE) IS
2801 SELECT id1,
2802 uom_code
2803 FROM okx_tuom_v
2804 WHERE uom_class = 'OKL-TIME'
2805 AND base_uom_flag = 'N'
2806 AND name = p_payment_freq_code;
2807 */
2808 CURSOR freq_csr (p_payment_freq_code okl_payments_interface.payment_frequency_code%TYPE) IS
2809 SELECT id1,
2810 id1
2811 FROM okl_time_units_v
2812 WHERE name = p_payment_freq_code;
2813
2814 l_id1 okx_tuom_v.id1%TYPE;
2815 l_uom_code okx_tuom_v.uom_code%TYPE;
2816
2817 BEGIN
2818
2819 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2820 OPEN freq_csr(p_payment_freq_code);
2821 FETCH freq_csr INTO l_id1,
2822 l_uom_code;
2823 IF freq_csr%NOTFOUND THEN
2824 x_return_status := OKL_API.G_RET_STS_ERROR;
2825 END IF;
2826
2827 x_id1 := l_id1;
2828 x_uom_code := l_uom_code;
2829 RETURN;
2830
2831 END check_payment_frequency_code;
2832
2833 ------------------------------------------------------------------------------
2834 -- PROCEDURE check_contract_line
2835 -- It validates Party role line number/ Terms Line number/ Payments line number against contract
2836 -- line number in OKL_LINES_INTERFACE table
2837 -- Calls:
2838 -- None
2839 -- Called By:
2840 -- check_payment_record
2841 -- check_input_record
2842 ------------------------------------------------------------------------------
2843 PROCEDURE check_contract_line(
2844 x_return_status OUT NOCOPY VARCHAR2,
2845 p_contract_number IN okl_party_roles_interface.contract_number_old%TYPE,
2846 p_line_number IN okl_party_roles_interface.line_number%TYPE
2847 ) IS
2848
2849 CURSOR line_csr (p_contract_number VARCHAR2,
2850 p_line_number NUMBER) IS
2851 SELECT 'X'
2852 FROM okl_lines_interface
2853 WHERE contract_number_old = p_contract_number
2854 AND line_number = p_line_number;
2855
2856 l_dummy VARCHAR2(1);
2857 BEGIN
2858
2859 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2860
2861 OPEN line_csr (p_contract_number,
2862 p_line_number);
2863 FETCH line_csr INTO l_dummy;
2864 IF line_csr%NOTFOUND THEN
2865 x_return_status := OKL_API.G_RET_STS_ERROR;
2866 END IF;
2867 CLOSE line_csr;
2868
2869 return;
2870 END check_contract_line;
2871
2872 ------------------------------------------------------------------------------
2873 -- PROCEDURE check_payment_record
2874 -- It validates Payment interface Record and stacks error, if any
2875 -- for further processing
2876 -- Calls:
2877 -- None
2878 -- Called By:
2879 -- check_payment_record
2880 ------------------------------------------------------------------------------
2881 PROCEDURE check_payment_record(
2882 x_return_status OUT NOCOPY VARCHAR2,
2883 x_msg_count OUT NOCOPY NUMBER,
2884 x_msg_data OUT NOCOPY VARCHAR2,
2885 p_contract_number_old IN okl_payments_interface.contract_number_old%TYPE,
2886 p_line_number IN okl_payments_interface.line_number%TYPE,
2887 p_asset_number IN okl_payments_interface.asset_number%TYPE,
2888 p_payment_type_code IN VARCHAR2,
2889 p_stream_purpose IN okl_payments_interface.stream_purpose_code%TYPE,
2890 p_payment_schedule_number IN okl_payments_interface.payment_schedule_number%TYPE,
2891 p_payment_frequency_code IN okl_payments_interface.payment_frequency_code%TYPE,
2892 p_arrears_flag IN okl_payments_interface.arrears_flag%TYPE,
2893 p_advance_payments IN okl_payments_interface.advance_payments%TYPE,
2894 p_payment_amount IN okl_payments_interface.payment_amount%TYPE,
2895 p_start_date IN okl_payments_interface.start_date%TYPE,
2896 p_number_of_periods IN okl_payments_interface.number_of_periods%TYPE,
2897 p_rate IN okl_payments_interface.rate%TYPE,
2898 p_comments IN okl_payments_interface.comments%TYPE,
2899 p_stub_days IN okl_payments_interface.stub_days%TYPE,
2900 p_stub_amount IN okl_payments_interface.stub_amount%TYPE
2901 ) IS
2902
2903 x_id1 okx_tuom_v.id1%TYPE;
2904 x_id2 okl_strmtyp_source_v.id1%TYPE;
2905 x_uom_code okx_tuom_v.uom_code%TYPE;
2906 payment_failed EXCEPTION;
2907
2908 l_return_status VARCHAR2(1);
2909 l_proc_name VARCHAR2(35) := 'check_payment_record';
2910 l_payment_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
2911
2912 BEGIN
2913
2914 debug_message(l_proc_name);
2915
2916 /*
2917 IF (p_asset_number IS NULL
2918 AND
2919 p_line_number IS NOT NULL) THEN
2920 okl_api.set_message(
2921 G_APP_NAME,
2922 G_MISSING_VALUE,
2923 'CONTRACT_NUM',
2924 p_contract_number_old||'/'||p_line_number,
2925 'COL_NAME',
2926 'ASSET_NUMBER'
2927 );
2928 x_return_status := OKL_API.G_RET_STS_ERROR;
2929 END IF;
2930 */
2931
2932 IF (p_payment_type_code IS NULL) THEN
2933
2934 okl_api.set_message(
2935 G_APP_NAME,
2936 G_MISSING_VALUE,
2937 'CONTRACT_NUM',
2938 p_contract_number_old||'/'||p_line_number,
2939 'COL_NAME',
2940 'PAYMENT_TYPE_CODE'
2941 );
2942 x_return_status := OKL_API.G_RET_STS_ERROR;
2943 ELSE
2944
2945 check_stream_type_code(
2946 x_return_status => l_return_status,
2947 x_msg_count => x_msg_count,
2948 x_msg_data => x_msg_data,
2949 p_stream_type_code => p_payment_type_code,
2950 p_stream_purpose => p_stream_purpose,
2951 x_id1 => x_id2,
2952 x_name => l_payment_name
2953 );
2954
2955 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2956 okl_api.set_message(
2957 G_APP_NAME,
2958 G_INVALID_VALUE,
2959 'CONTRACT_NUM',
2960 p_contract_number_old||'/'||p_line_number,
2961 'COL_NAME',
2962 'PAYMENT_TYPE_CODE, STREAM_PURPOSE_CODE',
2963 'COL_VALUE',
2964 p_payment_type_code||', '||p_stream_purpose
2965 );
2966 x_return_status := OKL_API.G_RET_STS_ERROR;
2967 END IF;
2968 END IF;
2969
2970 /*
2971 IF (p_payment_amount IS NULL
2972 AND
2973 p_rate IS NULL) THEN
2974 okl_api.set_message(
2975 G_APP_NAME,
2976 G_MISSING_VALUE,
2977 'CONTRACT_NUM',
2978 p_contract_number_old||'/'||p_line_number,
2979 'COL_NAME',
2980 'PAYMENT_AMOUNT or RATE'
2981 );
2982 x_return_status := OKL_API.G_RET_STS_ERROR;
2983 END IF;
2984 */
2985
2986 IF (p_payment_frequency_code IS NULL) THEN
2987
2988 okl_api.set_message(
2989 G_APP_NAME,
2990 G_MISSING_VALUE,
2991 'CONTRACT_NUM',
2992 p_contract_number_old||'/'||p_line_number,
2993 'COL_NAME',
2994 'PAYMENT_FREQUENCY_CODE'
2995 );
2996 x_return_status := OKL_API.G_RET_STS_ERROR;
2997 ELSE
2998 check_payment_frequency_code(
2999 x_return_status => l_return_status,
3000 x_msg_count => x_msg_count,
3001 x_msg_data => x_msg_data,
3002 p_payment_freq_code => p_payment_frequency_code,
3003 x_id1 => x_id1,
3004 x_uom_code => x_uom_code
3005 );
3006 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3007 okl_api.set_message(
3008 G_APP_NAME,
3009 G_INVALID_VALUE,
3010 'CONTRACT_NUM',
3011 p_contract_number_old||'/'||p_line_number,
3012 'COL_NAME',
3013 'PAYMENT_FREQUENCY_CODE',
3014 'COL_VALUE',
3015 p_payment_frequency_code
3016 );
3017 x_return_status := OKL_API.G_RET_STS_ERROR;
3018 END IF;
3019 END IF;
3020
3021 IF (p_advance_payments IS NULL) THEN
3022 okl_api.set_message(
3023 G_APP_NAME,
3024 G_MISSING_VALUE,
3025 'CONTRACT_NUM',
3026 p_contract_number_old||'/'||p_line_number,
3027 'COL_NAME',
3028 'ADVANCE_PAYMENTS'
3029 );
3030 x_return_status := OKL_API.G_RET_STS_ERROR;
3031 END IF;
3032
3033 IF (p_arrears_flag <> 'Y'
3034 AND
3035 p_arrears_flag <> 'N') THEN
3036
3037 okl_api.set_message(
3038 G_APP_NAME,
3039 G_INVALID_VALUE,
3040 'CONTRACT_NUM',
3041 p_contract_number_old||'/'||p_line_number,
3042 'COL_NAME',
3043 'ARREARS_FLAG',
3044 'COL_VALUE',
3045 p_arrears_flag
3046 );
3047 x_return_status := OKL_API.G_RET_STS_ERROR;
3048 END IF;
3049
3050 /*
3051 IF (p_start_date IS NULL) THEN
3052 okl_api.set_message(
3053 G_APP_NAME,
3054 G_MISSING_VALUE,
3055 'CONTRACT_NUM',
3056 p_contract_number_old||'/'||p_line_number,
3057 'COL_NAME',
3058 'START_DATE'
3059 );
3060 x_return_status := OKL_API.G_RET_STS_ERROR;
3061 END IF;
3062 */
3063
3064 IF (p_stub_days IS NOT NULL
3065 AND
3066 p_stub_amount IS NOT NULL
3067 AND
3068 p_number_of_periods IS NOT NULL
3069 AND
3070 p_payment_amount IS NOT NULL
3071 ) THEN
3072 okl_api.set_message(
3073 G_APP_NAME,
3074 G_STUB_PMNT_BOTH,
3075 'CONTRACT_NUM',
3076 p_contract_number_old||'/'||p_line_number
3077 );
3078 x_return_status := OKL_API.G_RET_STS_ERROR;
3079 ELSIF (p_stub_days IS NULL AND p_stub_amount IS NOT NULL) THEN
3080 okl_api.set_message(
3081 G_APP_NAME,
3082 G_MISSING_VALUE,
3083 'CONTRACT_NUM',
3084 p_contract_number_old||'/'||p_line_number,
3085 'COL_NAME',
3086 'STUB_DAYS'
3087 );
3088 x_return_status := OKL_API.G_RET_STS_ERROR;
3089 ELSIF (p_stub_days IS NOT NULL AND p_stub_amount IS NULL) THEN
3090 okl_api.set_message(
3091 G_APP_NAME,
3092 G_MISSING_VALUE,
3093 'CONTRACT_NUM',
3094 p_contract_number_old||'/'||p_line_number,
3095 'COL_NAME',
3096 'STUB_AMOUNT'
3097 );
3098 x_return_status := OKL_API.G_RET_STS_ERROR;
3099 ELSIF (p_number_of_periods IS NOT NULL AND p_payment_amount IS NULL) THEN
3100 okl_api.set_message(
3101 G_APP_NAME,
3102 G_MISSING_VALUE,
3103 'CONTRACT_NUM',
3104 p_contract_number_old||'/'||p_line_number,
3105 'COL_NAME',
3106 'PAYMENT_AMOUNT'
3107 );
3108 x_return_status := OKL_API.G_RET_STS_ERROR;
3109 ELSIF (p_number_of_periods IS NULL AND p_payment_amount IS NOT NULL) THEN
3110 okl_api.set_message(
3111 G_APP_NAME,
3112 G_MISSING_VALUE,
3113 'CONTRACT_NUM',
3114 p_contract_number_old||'/'||p_line_number,
3115 'COL_NAME',
3116 'NUMBER_OF_PERIODS'
3117 );
3118 x_return_status := OKL_API.G_RET_STS_ERROR;
3119 END IF;
3120
3121 RETURN;
3122
3123 EXCEPTION
3124
3125 WHEN payment_failed THEN
3126 x_return_status := OKL_API.G_RET_STS_ERROR;
3127
3128 END check_payment_record;
3129
3130 ------------------------------------------------------------------------------
3131 -- PROCEDURE validate_usage_freq
3132 -- It validates Usage line payment frequency code
3133 -- Calls:
3134 -- None
3135 -- Called By:
3136 ------------------------------------------------------------------------------
3137 PROCEDURE validate_usage_freq(
3138 x_return_status OUT NOCOPY VARCHAR2,
3139 x_msg_count OUT NOCOPY VARCHAR2,
3140 x_msg_data OUT NOCOPY VARCHAR2,
3141 p_freq IN VARCHAR2,
3142 p_contract_number IN VARCHAR2,
3143 p_line_number IN NUMBER
3144 ) IS
3145
3146 CURSOR freq_csr (p_freq_code VARCHAR2) IS
3147 SELECT 'Y'
3148 FROM okx_units_of_measure_v okx,
3149 okc_time_code_units_v okc
3150 WHERE okx.uom_code = okc.uom_code
3151 AND okc.active_flag = 'Y'
3152 AND okc.tce_code NOT IN ('HOUR','MINUTE','SECOND')
3153 AND okx.uom_code = p_freq_code;
3154
3155 l_found VARCHAR2(1) := 'N';
3156 freq_failed EXCEPTION;
3157 BEGIN
3158
3159 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3160
3161 l_found := 'N';
3162 OPEN freq_csr (p_freq);
3163 FETCH freq_csr INTO l_found;
3164 CLOSE freq_csr;
3165
3166 IF (l_found <> 'Y') THEN
3167 okl_api.set_message(
3168 G_APP_NAME,
3169 G_INVALID_VALUE,
3170 'CONTRACT_NUM',
3171 p_contract_number||','||p_line_number,
3172 'COL_NAME',
3173 'USAGE_PERIOD',
3174 'COL_VALUE',
3175 p_freq
3176 );
3177 RAISE freq_failed;
3178 END IF;
3179
3180 RETURN;
3181
3182 EXCEPTION
3183 WHEN freq_failed THEN
3184 x_return_status := OKL_API.G_RET_STS_ERROR;
3185 END validate_usage_freq;
3186
3187 ------------------------------------------------------------------------------
3188 -- PROCEDURE Check_Input_Record
3189 -- DO NOT USE THIS PROCEDURE, BUG 4350579
3190 -- It Reads data from Interface Tables and Validates. During process of validation it
3191 -- stacks Error, if any, and returns ERROR status to calling process.
3192 -- Calls:
3193 -- check_header_literal
3194 -- validate_customer
3195 -- validate_currency_code
3196 -- check_line_literal
3197 -- check_contract_line
3198 -- check_payment_record
3199 -- update_interface_status
3200 -- report_error
3201 -- Called By:
3202 -- process_record
3203 ------------------------------------------------------------------------------
3204 PROCEDURE Check_Input_Record(
3205 p_init_msg_list IN VARCHAR2,
3206 x_return_status OUT NOCOPY VARCHAR2,
3207 x_msg_count OUT NOCOPY NUMBER,
3208 x_msg_data OUT NOCOPY VARCHAR2,
3209 p_batch_number IN VARCHAR2,
3210 p_start_date_from IN DATE,
3211 p_start_date_to IN DATE,
3212 p_contract_number IN VARCHAR2,
3213 p_customer_number IN VARCHAR2,
3214 x_total_checked OUT NOCOPY NUMBER
3215 ) IS
3216
3217 l_proc_name VARCHAR2(35) := NULL;
3218 l_progress VARCHAR2(3) := NULL;
3219 l_contract_number_old okl_header_interface.contract_number_old%TYPE;
3220 l_customer_id okx_parties_v.id1%TYPE;
3221 l_record_status VARCHAR2(3);
3222 l_batch_status VARCHAR2(3);
3223 x_id1 NUMBER;
3224
3225 l_header_template template_h_rec_type;
3226
3227 header_validation_failed EXCEPTION;
3228 line_validation_failed EXCEPTION;
3229
3230 --
3231 -- Cursor to fetch Header Interface Records
3232 --
3233
3234 CURSOR okl_header_csr (p_batch_number VARCHAR2,
3235 p_start_date_from DATE,
3236 p_start_date_to DATE,
3237 p_contract_number VARCHAR2,
3238 p_customer_number VARCHAR2 ) IS
3239
3240 SELECT *
3241 FROM okl_header_interface
3242 WHERE (
3243 batch_number = p_batch_number
3244 OR
3245 contract_number_old = p_contract_number
3246 OR
3247 (
3248 customer_number = p_customer_number
3249 AND
3250 start_date between p_start_date_from AND p_start_date_to
3251 )
3252 )
3253 AND nvl(scheduled_worker_id,'NONE') = g_instance_number
3254 AND status in ('NEW','ERROR'); --Process only NEW and previuosly FAILED records
3255
3256 --
3257 -- Cursor to fetch Line Interface Records for each contract header
3258 --
3259
3260 CURSOR okl_line_csr (p_contract_number_old okc_k_headers_v.contract_number%TYPE) IS
3261 SELECT *
3262 FROM okl_lines_interface
3263 WHERE contract_number_old = p_contract_number_old
3264 ORDER BY line_number;
3265
3266 --
3267 -- Cursor to fetch Party Role Records
3268 --
3269
3270 CURSOR okl_party_role_csr (p_contract_number okc_k_headers_v.contract_number%TYPE) IS
3271 SELECT *
3272 FROM okl_party_roles_interface
3273 WHERE contract_number_old = p_contract_number;
3274
3275 --
3276 -- Cursor to fetch Terms Records
3277 --
3278
3279 CURSOR okl_term_csr (p_contract_number okc_k_headers_v.contract_number%TYPE) IS
3280 SELECT *
3281 FROM okl_terms_interface
3282 WHERE contract_number_old = p_contract_number;
3283
3284 --
3285 -- Cursor to fetch Payments Records
3286 --
3287
3288 CURSOR okl_payment_csr (p_contract_number okc_k_headers_v.contract_number%TYPE) IS
3289 SELECT *
3290 FROM okl_payments_interface
3291 WHERE contract_number_old = p_contract_number;
3292
3293
3294 BEGIN -- Actual Procedure Starts Here
3295
3296 -- Bug 4350579
3297 -- THIS PROCEDURE IS NOT BEING USED ANY MORE
3298 -- DO NOT CALL THIS PROCEDURE FOR IMPORT
3299 --
3300
3301 l_proc_name := 'CHECK_INPUT_RECORD';
3302 x_return_status := OKL_API.G_RET_STS_SUCCESS; -- individual validaiton status
3303 l_record_status := OKL_API.G_RET_STS_SUCCESS; -- record level status
3304 l_batch_status := OKL_API.G_RET_STS_SUCCESS; -- batch level status
3305
3306 okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE);
3307 l_progress := '000';
3308
3309 FOR okl_header_rec IN okl_header_csr (p_batch_number,
3310 p_start_date_from,
3311 p_start_date_to,
3312 p_contract_number,
3313 p_customer_number )
3314 LOOP
3315
3316 BEGIN
3317 -- Validation Starts For each Contract
3318 --fnd_file.put_line(fnd_file.output, 'Checking... '||okl_header_rec.contract_number_old);
3319
3320 write_to_log('Checking... '||okl_header_rec.contract_number_old);
3321
3322 x_total_checked := nvl(x_total_checked,0) + 1;
3323
3324 l_progress := '010';
3325 l_record_status := OKL_API.G_RET_STS_SUCCESS;
3326
3327
3328 l_contract_number_old := okl_header_rec.contract_number_old;
3329
3330 -- Validate CONTRACT_NUMBER_OLD
3331 IF ( okl_header_rec.contract_number_old IS NULL) THEN
3332 okl_api.set_message(
3333 G_APP_NAME,
3334 G_NULL_CONTRACT
3335 );
3336
3337
3338 raise header_validation_failed; -- Unable to continue further
3339
3340 /* not required, bug 3798008
3341 * ELSIF ( check_contract_number (l_contract_number_old) = OKL_API.G_RET_STS_ERROR ) THEN
3342 *
3343 * raise header_validation_failed; -- Unable to continue further
3344 *
3345 */
3346 END IF;
3347
3348
3349 l_progress := '020';
3350 --
3351 -- Get Template Information if requested
3352 --
3353 l_header_template := NULL;
3354 IF (okl_header_rec.template_number IS NOT NULL) THEN
3355 l_header_template := get_template(
3356 x_return_status => x_return_status,
3357 x_msg_count => x_msg_count,
3358 x_msg_data => x_msg_data,
3359 p_template_number => okl_header_rec.template_number
3360 );
3361
3362 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3363 RAISE header_validation_failed;
3364 END IF;
3365
3366 END IF;
3367 --
3368 -- Checks Constant literal, not needed check against table
3369 -- validate and stacks error
3370 --
3371 x_return_status := check_header_literal (
3372 p_contract_number => okl_header_rec.contract_number_old,
3373 p_template_id => l_header_template.id,
3374 p_application_code => okl_header_rec.application_code,
3375 p_contract_category => NVL(okl_header_rec.contract_category,l_header_template.scs_code),
3376 p_import_request_stage => okl_header_rec.import_request_stage,
3377 p_converted_account => NVL(okl_header_rec.converted_account,
3378 l_header_template.converted_account_yn),
3379 p_security_deposit_hold_flag => okl_header_rec.security_deposit_hold_flag,
3380 p_security_deposit_net_flag => okl_header_rec.security_deposit_net_flag,
3381 p_review_invoice_flag => okl_header_rec.review_invoice_flag,
3382 p_date_signed => NVL(okl_header_rec.date_signed,l_header_template.date_signed),
3383 p_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
3384 p_date_approved => NVL(okl_header_rec.date_approved,l_header_template.date_approved),
3385 p_term => NVL(okl_header_rec.term,l_header_template.term_duration),
3386 p_accepted_date => NVL(okl_header_rec.accepted_date,l_header_template.accepted_date),
3387 p_deal_type_code => NVL(okl_header_rec.deal_type_code,l_header_template.deal_type),
3388 p_bill_to_address => okl_header_rec.bill_to_address,
3389 p_bill_to_address_id => okl_header_rec.bill_to_address_id,
3390 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,
3391 l_header_template.authoring_org_id),
3392 p_inv_organization_id => NVL(okl_header_rec.inventory_organization_id,
3393 l_header_template.inv_organization_id),
3394 p_customer_account_number => okl_header_rec.customer_account_number,
3395 p_customer_account_id => okl_header_rec.customer_account_id,
3396 p_eot_purchase_opt_type => okl_header_rec.eot_purchase_opt_type,
3397 p_expected_delivery_date => okl_header_rec.expected_delivery_date,
3398 p_currency_code => NVL(okl_header_rec.currency_code,
3399 l_header_template.currency_code)
3400 );
3401
3402 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3403 l_record_status := OKL_API.G_RET_STS_ERROR;
3404 END IF;
3405
3406 l_progress := '030';
3407
3408 -- Validate CUSTOMER
3409 x_return_status := validate_customer(p_contract_number => okl_header_rec.contract_number_old,
3410 p_customer_id => okl_header_rec.customer_id,
3411 p_customer_number => okl_header_rec.customer_number,
3412 x_id1 => l_customer_id);
3413
3414 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3415 okl_header_rec.customer_id := l_customer_id;
3416 END IF;
3417
3418 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3419 l_record_status := OKL_API.G_RET_STS_ERROR;
3420 END IF;
3421
3422 l_progress := '040';
3423
3424 -- Validate CURRENCY CODE
3425 x_return_status := validate_currency_code(p_contract_number => okl_header_rec.contract_number_old,
3426 p_currency_code => NVL(okl_header_rec.currency_code,
3427 l_header_template.currency_code));
3428
3429 l_progress := '050';
3430 -- Call Line Cursor to get Line detail
3431
3432 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3433 l_record_status := OKL_API.G_RET_STS_ERROR;
3434 END IF;
3435
3436
3437 FOR okl_line_rec IN okl_line_csr (okl_header_rec.contract_number_old)
3438 LOOP
3439 BEGIN
3440
3441 -- Validation Starts For each Line of current header
3442
3443 l_progress := '080';
3444
3445 -- Validate Line Number
3446 IF (okl_line_rec.line_number IS NULL) THEN
3447 okl_api.set_message(
3448 G_APP_NAME,
3449 G_MISSING_VALUE,
3450 'CONTRACT_NUM',
3451 okl_header_rec.contract_number_old,
3452 'COL_NAME',
3453 'CONTRACT_LINE_NUMBER'
3454 );
3455
3456 x_return_status := OKL_API.G_RET_STS_ERROR;
3457
3458 raise line_validation_failed; -- unable to continue with line validation, proceed with next line
3459
3460 END IF;
3461
3462 l_progress := '090';
3463 check_line_literal (
3464 x_return_status => x_return_status,
3465 x_msg_count => x_msg_count,
3466 x_msg_data => x_msg_data,
3467 p_contract_number => okl_header_rec.contract_number_old,
3468 p_import_request_stage => okl_header_rec.import_request_stage,
3469 p_product_id => okl_header_rec.product_id,
3470 p_product_name => okl_header_rec.product_name,
3471 p_line_number => okl_line_rec.line_number,
3472 p_line_type => okl_line_rec.line_type,
3473 p_amount => okl_line_rec.amount,
3474 p_currency_code => okl_header_rec.currency_code,
3475 p_asset_number => okl_line_rec.asset_number,
3476 p_inventory_item_name => okl_line_rec.inventory_item_name,
3477 p_inventory_item_id => okl_line_rec.inventory_item_id,
3478 p_install_site_number => okl_line_rec.install_site_number,
3479 p_install_site_id => okl_line_rec.install_site_id,
3480 p_asset_corporate_book => okl_line_rec.asset_corporate_book,
3481 p_asset_category_id => okl_line_rec.asset_category_id,
3482 p_asset_category_segment1 => okl_line_rec.asset_category_segment1,
3483 p_asset_category_segment2 => okl_line_rec.asset_category_segment2,
3484 p_asset_category_segment3 => okl_line_rec.asset_category_segment3,
3485 p_asset_category_segment4 => okl_line_rec.asset_category_segment4,
3486 p_asset_category_segment5 => okl_line_rec.asset_category_segment5,
3487 p_asset_category_segment6 => okl_line_rec.asset_category_segment6,
3488 p_asset_category_segment7 => okl_line_rec.asset_category_segment7,
3489 p_asset_location_id => okl_line_rec.asset_location_id,
3490 p_asset_location_segment1 => okl_line_rec.asset_location_segment1,
3491 p_asset_location_segment2 => okl_line_rec.asset_location_segment2,
3492 p_asset_location_segment3 => okl_line_rec.asset_location_segment3,
3493 p_asset_location_segment4 => okl_line_rec.asset_location_segment4,
3494 p_asset_location_segment5 => okl_line_rec.asset_location_segment5,
3495 p_asset_location_segment6 => okl_line_rec.asset_location_segment6,
3496 p_asset_location_segment7 => okl_line_rec.asset_location_segment7,
3497 p_depreciation_method_id => okl_line_rec.depreciation_method_id,
3498 p_depreciation_method_code => okl_line_rec.depreciation_method_code,
3499 p_life_in_months => okl_line_rec.life_in_months,
3500 p_fee_code => okl_line_rec.fee_code,
3501 p_stream_purpose => okl_line_rec.stream_purpose_code,
3502 p_fee_type => okl_line_rec.fee_type,
3503 p_price_list_name => okl_line_rec.price_list_name,
3504 p_price_list_id => okl_line_rec.price_list_id,
3505 p_counter_group_name => okl_line_rec.counter_group_name,
3506 p_counter_group_id => okl_line_rec.counter_group_id,
3507 p_usage_bill_frequency_code => okl_line_rec.usage_bill_frequency_code,
3508 p_base_reading_uom_code => okl_line_rec.base_reading_uom_code,
3509 p_usage_type_code => okl_line_rec.usage_type_code,
3510 p_usage_period => okl_line_rec.usage_period,
3511 p_usage_no_of_period => okl_line_rec.usage_no_of_period,
3512 p_tax_cost => okl_line_rec.tax_cost,
3513 p_tax_book => okl_line_rec.tax_book,
3514 p_life_in_months_tax => okl_line_rec.life_in_months_tax,
3515 p_deprn_method_tax => okl_line_rec.deprn_method_tax,
3516 p_deprn_rate_tax => okl_line_rec.deprn_rate_tax,
3517 p_in_service_date => okl_line_rec.in_service_date,
3518 p_link_asset_amount => okl_line_rec.link_asset_amount,
3519 p_inv_org_id => okl_header_rec.inventory_organization_id,
3520 p_term_quote_id => okl_line_rec.termination_quote_id,
3521 p_term_quote_number => okl_line_rec.termination_quote_number,
3522 p_fee_purpose_code => okl_line_rec.fee_purpose_code,
3523 --Bug# 16344245
3524 p_amount_balance_legacy => okl_line_rec.amount_balance_legacy,
3525 p_dt_effective_balance_legacy => okl_line_rec.dt_effective_balance_legacy
3526 );
3527
3528
3529 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3530 l_record_status := OKL_API.G_RET_STS_ERROR;
3531 END IF;
3532
3533 EXCEPTION
3534
3535 WHEN line_validation_failed THEN
3536 x_return_status := OKL_API.G_RET_STS_ERROR;
3537
3538 END; -- of line begin
3539
3540 END LOOP; -- okl_line_csr
3541
3542 l_progress := '100';
3543 -- Final Reporting of error, if any, for this contract
3544
3545 FOR okl_party_role_rec IN okl_party_role_csr (okl_header_rec.contract_number_old)
3546 LOOP
3547 BEGIN
3548 IF (okl_party_role_rec.line_number IS NOT NULL) THEN
3549 check_contract_line(
3550 x_return_status => x_return_status,
3551 p_contract_number => okl_party_role_rec.contract_number_old,
3552 p_line_number => okl_party_role_rec.line_number
3553 );
3554
3555 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3556 okl_api.set_message(
3557 G_APP_NAME,
3558 G_PARTY_ROLE_LINE_ERROR,
3559 'CONTRACT_NUM',
3560 okl_party_role_rec.contract_number_old||'/'||okl_party_role_rec.line_number
3561 );
3562 x_return_status := OKL_API.G_RET_STS_ERROR;
3563 END IF;
3564
3565 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3566 l_record_status := OKL_API.G_RET_STS_ERROR;
3567 END IF;
3568 END IF;
3569 END;
3570
3571 END LOOP; -- party_role
3572
3573 l_progress := '110';
3574
3575 --x_return_status := l_record_status;
3576
3577 FOR okl_term_rec IN okl_term_csr (okl_header_rec.contract_number_old)
3578 LOOP
3579 BEGIN
3580 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3581
3582 IF (okl_term_rec.line_number IS NULL) THEN
3583 okl_api.set_message(
3584 G_APP_NAME,
3585 G_TERM_NO_LINE_NUMBER,
3586 'CONTRACT_NUM',
3587 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number
3588 );
3589 check_contract_line(
3590 x_return_status => x_return_status,
3591 p_contract_number => okl_term_rec.contract_number_old,
3592 p_line_number => okl_term_rec.line_number
3593 );
3594
3595 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3596 okl_api.set_message(
3597 G_APP_NAME,
3598 G_TERM_LINE_ERROR,
3599 'LINE_NUM',
3600 okl_term_rec.line_number,
3601 'CONTRACT_NUM',
3602 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number
3603 );
3604 x_return_status := OKL_API.G_RET_STS_ERROR;
3605 END IF;
3606
3607 END IF;
3608
3609 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3610 l_record_status := x_return_status;
3611 END IF;
3612
3613 IF (okl_header_rec.import_request_stage <> 'NEW'
3614 AND
3615 okl_term_rec.bill_to_address_id IS NULL
3616 AND
3617 okl_term_rec.bill_to_address IS NULL) THEN
3618
3619 okl_api.set_message(
3620 G_APP_NAME,
3621 G_MISSING_VALUE,
3622 'CONTRACT_NUM',
3623 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number,
3624 'COL_NAME',
3625 'BILL_TO_ADDRESS'
3626 );
3627
3628 x_return_status := OKL_API.G_RET_STS_ERROR;
3629 END IF;
3630
3631 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3632 l_record_status := x_return_status;
3633 END IF;
3634 END;
3635
3636 END LOOP; -- term
3637
3638 l_progress := '120';
3639
3640 FOR okl_payment_rec IN okl_payment_csr (okl_header_rec.contract_number_old)
3641 LOOP
3642 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3643 BEGIN
3644
3645 check_payment_record(
3646 x_return_status => x_return_status,
3647 x_msg_count => x_msg_count,
3648 x_msg_data => x_msg_data,
3649 p_contract_number_old => okl_payment_rec.contract_number_old,
3650 p_line_number => okl_payment_rec.line_number,
3651 p_asset_number => okl_payment_rec.asset_number,
3652 p_payment_type_code => okl_payment_rec.payment_type_code,
3653 p_stream_purpose => okl_payment_rec.stream_purpose_code,
3654 p_payment_schedule_number => okl_payment_rec.payment_schedule_number,
3655 p_payment_frequency_code => okl_payment_rec.payment_frequency_code,
3656 p_arrears_flag => okl_payment_rec.arrears_flag,
3657 p_advance_payments => okl_payment_rec.advance_payments,
3658 p_payment_amount => okl_payment_rec.payment_amount,
3659 p_start_date => okl_payment_rec.start_date,
3660 p_number_of_periods => okl_payment_rec.number_of_periods,
3661 p_rate => okl_payment_rec.rate,
3662 p_comments => okl_payment_rec.comments,
3663 p_stub_days => okl_payment_rec.stub_days,
3664 p_stub_amount => okl_payment_rec.stub_amount
3665 );
3666
3667 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3668 l_record_status := x_return_status;
3669 END IF;
3670
3671 END;
3672
3673 END LOOP; -- payment
3674
3675 l_progress := '130';
3676
3677 EXCEPTION
3678 WHEN header_validation_failed THEN
3679
3680 -- okl_open_interface_pvt.report_error (
3681 -- x_msg_count => x_msg_count,
3682 -- x_msg_data => x_msg_data
3683 -- );
3684 x_return_status := OKL_API.G_RET_STS_ERROR;
3685 l_record_status := OKL_API.G_RET_STS_ERROR;
3686
3687 END; -- of Header Begin
3688
3689 IF (l_record_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3690 l_batch_status := OKL_API.G_RET_STS_ERROR;
3691 x_return_status := OKL_API.G_RET_STS_ERROR;
3692 END IF;
3693
3694 IF (l_record_status = OKL_API.G_RET_STS_SUCCESS) THEN
3695 Update_Interface_Status(p_contract_number => okl_header_rec.contract_number_old,
3696 p_new_contract_number => okl_header_rec.contract_number,
3697 p_status => 'ELIGIBLE',
3698 x_return_status => x_return_status
3699 );
3700 COMMIT;
3701
3702 ELSE
3703 Update_Interface_Status(p_contract_number => okl_header_rec.contract_number_old,
3704 p_new_contract_number => okl_header_rec.contract_number,
3705 p_status => 'ERROR',
3706 x_return_status => x_return_status
3707 );
3708 COMMIT;
3709 x_return_status := OKL_API.G_RET_STS_ERROR;
3710 END IF;
3711
3712 -- report_error (
3713 -- x_msg_count => x_msg_count,
3714 -- x_msg_data => x_msg_data
3715 -- );
3716 -- debug_message('========================done ');
3717
3718 END LOOP; -- okl_header_csr
3719
3720 IF (l_batch_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3721 x_return_status := l_batch_status; -- set final status to out variable for further processing
3722 END IF;
3723
3724 EXCEPTION
3725 WHEN OTHERS THEN
3726 okl_api.set_message(
3727 G_APP_NAME,
3728 G_UNEXPECTED_ERROR,
3729 'OKL_SQLCODE',
3730 SQLCODE,
3731 'OKL_SQLERRM',
3732 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
3733 );
3734 x_return_status := OKL_API.G_RET_STS_ERROR;
3735
3736 report_error (
3737 x_msg_count => x_msg_count,
3738 x_msg_data => x_msg_data
3739 );
3740
3741 END Check_Input_Record;
3742 --*********************** check Interface **************************************
3743
3744 --+++++++++++++++++++++++ Load Interface +++++++++++++++++++++++++++++++++++++++
3745 ------------------------------------------------------------------------------
3746 -- FUNCTION get_product_id
3747 -- It gets Product ID if any. It checks againts okl_products_v for
3748 -- esistance of product as supplied in parameters
3749 -- Calls:
3750 -- None
3751 -- Called By:
3752 -- load_input_record
3753 ------------------------------------------------------------------------------
3754
3755 FUNCTION get_product_id (p_product_id IN okl_products_v.id%TYPE,
3756 p_product_name IN okl_products_v.name%TYPE,
3757 x_product_id OUT NOCOPY okl_products_v.id%TYPE )
3758 RETURN VARCHAR2 IS
3759
3760 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
3761 l_product_id OKL_PRODUCTS_V.ID%TYPE;
3762 l_revenue_recognition_method okl_product_parameters_v.REVENUE_RECOGNITION_METHOD%TYPE;
3763 l_interest_calculation_basis okl_product_parameters_v.INTEREST_CALCULATION_BASIS%TYPE;
3764 l_deal_type okl_product_parameters_v.DEAL_TYPE%TYPE;
3765 product_exception EXCEPTION;
3766
3767 CURSOR product_csr(p_product_name okl_products_v.name%TYPE,
3768 p_product_id okl_products_v.id%TYPE) IS
3769 SELECT a.id,
3770 b.revenue_recognition_method,
3771 b.interest_calculation_basis,
3772 b.deal_type
3773 FROM okl_products_v a,
3774 okl_product_parameters_v b
3775 WHERE ((a.name = p_product_name
3776 AND
3777 p_product_name IS NOT NULL
3778 )
3779 OR
3780 (a.id = p_product_id
3781 AND
3782 p_product_id IS NOT NULL
3783 )
3784 )
3785 AND TRUNC(SYSDATE) BETWEEN NVL(a.from_date,TRUNC(SYSDATE)) AND NVL(a.to_date,TRUNC(SYSDATE))
3786 AND A.id = B.id;
3787
3788 BEGIN
3789
3790 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3791
3792 OPEN product_csr(p_product_name,
3793 p_product_id);
3794 FETCH product_csr INTO l_product_id,
3795 l_revenue_recognition_method,
3796 l_interest_calculation_basis,
3797 l_deal_type;
3798
3799 IF product_csr%NOTFOUND THEN
3800 RAISE product_exception;
3801 END IF;
3802 CLOSE product_csr;
3803 x_product_id := l_product_id;
3804 G_PRODUCT_ID := l_product_id;
3805 G_REVENUE_RECOGNITION_METHOD := l_revenue_recognition_method;
3806 G_INTEREST_CALCULATION_BASIS := l_interest_calculation_basis;
3807 G_DEAL_TYPE := l_deal_type;
3808
3809 return x_return_status;
3810
3811 EXCEPTION
3812
3813 WHEN product_exception THEN
3814
3815 IF product_csr%ISOPEN THEN
3816 CLOSE product_csr;
3817 END IF;
3818
3819 x_return_status := OKL_API.G_RET_STS_ERROR;
3820 return x_return_status;
3821
3822 WHEN OTHERS THEN
3823 NULL;
3824
3825 END get_product_id;
3826
3827 ------------------------------------------------------------------------------
3828 -- FUNCTION check_product_type
3829 -- It checks product type and returns 'Y' to out parameter
3830 -- if it is a LOAN product
3831 -- Calls:
3832 -- None
3833 -- Called By:
3834 -- load_input_record
3835 ------------------------------------------------------------------------------
3836
3837 PROCEDURE check_product_type (
3838 x_return_status OUT NOCOPY VARCHAR2,
3839 x_msg_count OUT NOCOPY NUMBER,
3840 x_msg_data OUT NOCOPY VARCHAR2,
3841 p_prod_name IN okl_header_interface.product_name%TYPE,
3842 p_prod_id IN okl_header_interface.product_id%TYPE,
3843 x_loan_yn OUT NOCOPY VARCHAR2
3844 ) IS
3845
3846 l_type VARCHAR2(1) := 'N';
3847 l_proc_name VARCHAR2(35) := 'CHECK_PRODUCT_TYPE';
3848
3849 --dkagrawa changed query to use view okl_prod_qlty_val_uv than product_parameters_v for performance
3850 CURSOR prod_type_csr(p_product_name okl_products_v.name%TYPE,
3851 p_product_id okl_products_v.id%TYPE) IS
3852 SELECT 'Y'
3853 FROM okl_products prod,
3854 okl_prod_qlty_val_uv pqv
3855 WHERE ((prod.name = p_product_name
3856 AND
3857 p_product_name IS NOT NULL
3858 )
3859 OR
3860 (prod.id = p_product_id
3861 AND
3862 p_product_id IS NOT NULL
3863 )
3864 )
3865 AND TRUNC(SYSDATE) BETWEEN NVL(prod.from_date,TRUNC(SYSDATE)) AND NVL(prod.to_date,TRUNC(SYSDATE))
3866 AND prod.id = pqv.pdt_id
3867 AND prod.reporting_pdt_id IS NULL
3868 AND pqv.quality_name IN ('LEASE','INVESTOR')
3869 AND pqv.quality_val = 'LOAN';
3870
3871 BEGIN
3872
3873 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3874 debug_message(l_proc_name);
3875
3876 l_type := 'N';
3877 OPEN prod_type_csr(p_prod_name,
3878 p_prod_id);
3879 FETCH prod_type_csr INTO l_type;
3880 CLOSE prod_type_csr;
3881
3882 x_loan_yn := l_type;
3883
3884 EXCEPTION
3885
3886 WHEN OTHERS THEN
3887 IF prod_type_csr%ISOPEN THEN
3888 CLOSE prod_type_csr;
3889 END IF;
3890
3891 okl_api.set_message(
3892 G_APP_NAME,
3893 G_UNEXPECTED_ERROR,
3894 'OKL_SQLCODE',
3895 SQLCODE,
3896 'OKL_SQLERRM',
3897 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
3898 );
3899
3900 x_return_status := OKL_API.G_RET_STS_ERROR;
3901
3902 END check_product_type;
3903
3904 ------------------------------------------------------------------------------
3905 -- FUNCTION get_prog_agreement_id
3906 -- It gets Program agreement ID if any.
3907 -- Calls:
3908 -- None
3909 -- Called By:
3910 -- load_input_record
3911 ------------------------------------------------------------------------------
3912
3913 FUNCTION get_prog_agreement_id (
3914 p_scs_code IN okc_k_headers_v.scs_code%TYPE,
3915 p_agreement_number IN okc_k_headers_v.contract_number%TYPE,
3916 p_agreement_id IN okc_k_headers_v.id%TYPE,
3917 p_auth_org_id IN okc_k_headers_v.authoring_org_id%TYPE,
3918 x_agreement_id OUT NOCOPY okc_k_headers_v.contract_number%TYPE
3919 ) RETURN VARCHAR2 IS
3920
3921 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
3922 l_contract_id OKC_K_HEADERS_V.ID%TYPE;
3923 agreement_exception EXCEPTION;
3924
3925 --Fixed Bug # 5484903
3926 CURSOR contract_csr (
3927 p_scs_code okc_k_headers_v.scs_code%TYPE,
3928 p_agreement_id okc_k_headers_v.id%TYPE,
3929 p_agreement_number okc_k_headers_v.contract_number%TYPE,
3930 p_auth_org_id okc_k_headers_v.authoring_org_id%TYPE
3931 ) IS
3932 SELECT id
3933 FROM okc_k_headers_all_b
3934 WHERE ((contract_number = p_agreement_number
3935 AND
3936 p_agreement_number IS NOT NULL
3937 )
3938 OR
3939 (id = p_agreement_id
3940 AND
3941 p_agreement_id IS NOT NULL
3942 )
3943 )
3944 AND scs_code = p_scs_code
3945 AND sts_code = 'ACTIVE'
3946 AND authoring_org_id = p_auth_org_id;
3947
3948 BEGIN
3949
3950 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3951
3952 OPEN contract_csr(p_scs_code,
3953 p_agreement_id,
3954 p_agreement_number,
3955 p_auth_org_id);
3956 FETCH contract_csr INTO l_contract_id;
3957 IF contract_csr%NOTFOUND THEN
3958 RAISE agreement_exception;
3959 END IF;
3960 CLOSE contract_csr;
3961
3962 x_agreement_id := l_contract_id;
3963
3964 return x_return_status;
3965
3966 EXCEPTION
3967
3968 WHEN agreement_exception THEN
3969
3970 IF contract_csr%ISOPEN THEN
3971 CLOSE contract_csr;
3972 END IF;
3973
3974 x_return_status := OKL_API.G_RET_STS_ERROR;
3975 return x_return_status;
3976
3977 WHEN OTHERS THEN
3978 NULL;
3979
3980 END get_prog_agreement_id;
3981
3982 ------------------------------------------------------------------------------
3983 -- FUNCTION get_agreement_id
3984 -- It gets Master Lease ID if any. It checks againts okc_k_headers_v for
3985 -- esistance of master contract as supplied in parameters
3986 -- Calls:
3987 -- None
3988 -- Called By:
3989 -- load_input_record
3990 ------------------------------------------------------------------------------
3991
3992 FUNCTION get_agreement_id (
3993 p_scs_code IN okc_k_headers_v.scs_code%TYPE,
3994 p_auth_org_id IN okc_k_headers_v.authoring_org_id%TYPE,
3995 p_agreement_number IN okc_k_headers_v.contract_number%TYPE,
3996 p_agreement_id IN okc_k_headers_v.id%TYPE,
3997 x_agreement_id OUT NOCOPY okc_k_headers_v.contract_number%TYPE
3998 ) RETURN VARCHAR2 IS
3999
4000 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
4001 l_contract_id OKC_K_HEADERS_V.ID%TYPE;
4002 agreement_exception EXCEPTION;
4003 --Fixed Bug #5484903
4004 CURSOR contract_csr (
4005 p_scs_code okc_k_headers_v.scs_code%TYPE,
4006 p_org_id okc_k_headers_v.authoring_org_id%TYPE,
4007 p_agreement_id okc_k_headers_v.id%TYPE,
4008 p_agreement_number okc_k_headers_v.contract_number%TYPE
4009 ) IS
4010 SELECT id
4011 FROM okc_k_headers_all_b
4012 WHERE ((contract_number = p_agreement_number
4013 AND
4014 p_agreement_number IS NOT NULL
4015 )
4016 OR
4017 (id = p_agreement_id
4018 AND
4019 p_agreement_id IS NOT NULL
4020 )
4021 )
4022 AND authoring_org_id = p_org_id
4023 AND scs_code = p_scs_code
4024 AND sts_code <> 'TERMINATED';
4025
4026 BEGIN
4027
4028 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4029
4030 debug_message('Org: '||p_auth_org_id);
4031 debug_message('SCS: '||p_scs_code);
4032 debug_message('Agreement :'||p_agreement_id||', '||p_agreement_number||'***');
4033
4034 OPEN contract_csr(p_scs_code,
4035 p_auth_org_id,
4036 p_agreement_id,
4037 p_agreement_number);
4038 FETCH contract_csr INTO l_contract_id;
4039 IF contract_csr%NOTFOUND THEN
4040 RAISE agreement_exception;
4041 END IF;
4042 CLOSE contract_csr;
4043
4044 x_agreement_id := l_contract_id;
4045
4046 return x_return_status;
4047
4048 EXCEPTION
4049
4050 WHEN agreement_exception THEN
4051
4052 IF contract_csr%ISOPEN THEN
4053 CLOSE contract_csr;
4054 END IF;
4055
4056 x_return_status := OKL_API.G_RET_STS_ERROR;
4057 return x_return_status;
4058
4059 WHEN OTHERS THEN
4060 NULL;
4061
4062 END get_agreement_id;
4063
4064 ------------------------------------------------------------------------------
4065 -- PROCEDURE get_vendor_id
4066 -- It gets vendor id for given vendor name
4067 -- and stacks error if any
4068 -- Calls:
4069 -- None
4070 -- Called By:
4071 -- process_party_role
4072 ------------------------------------------------------------------------------
4073 PROCEDURE get_vendor_id(
4074 x_return_status OUT NOCOPY VARCHAR2,
4075 x_msg_count OUT NOCOPY NUMBER,
4076 x_msg_data OUT NOCOPY VARCHAR2,
4077 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4078 p_line_number IN okl_lines_interface.line_number%TYPE,
4079 x_vendor_id OUT NOCOPY NUMBER,
4080 p_vendor_name IN OKX_VENDORS_V.NAME%TYPE
4081 ) IS
4082
4083 CURSOR vendor_csr (p_vendor_name VARCHAR2) IS
4084 SELECT id1
4085 FROM okx_vendors_v
4086 WHERE name = p_vendor_name;
4087
4088 l_id NUMBER;
4089 l_proc_name VARCHAR2(35) := 'GET_VENDOR_ID';
4090 vendor_failed EXCEPTION;
4091
4092 BEGIN
4093
4094 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4095
4096 OPEN vendor_csr(p_vendor_name);
4097 FETCH vendor_csr INTO l_id;
4098 IF vendor_csr%NOTFOUND THEN
4099 RAISE vendor_failed;
4100 END IF;
4101 CLOSE vendor_csr;
4102
4103 x_vendor_id := l_id;
4104
4105 EXCEPTION
4106 WHEN vendor_failed THEN
4107 CLOSE vendor_csr;
4108 okl_api.set_message(
4109 G_APP_NAME,
4110 G_INVALID_VALUE,
4111 'CONTRACT_NUM',
4112 p_contract_number||'/'||TO_CHAR(p_line_number),
4113 'COL_NAME',
4114 'VENDOR_NAME',
4115 'COL_VALUE',
4116 p_vendor_name
4117 );
4118 x_return_status := OKL_API.G_RET_STS_ERROR;
4119
4120
4121 WHEN OTHERS THEN
4122 IF vendor_csr%ISOPEN THEN
4123 CLOSE vendor_csr;
4124 END IF;
4125
4126 okl_api.set_message(
4127 G_APP_NAME,
4128 G_UNEXPECTED_ERROR,
4129 'OKL_SQLCODE',
4130 SQLCODE,
4131 'OKL_SQLERRM',
4132 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4133 );
4134
4135 x_return_status := OKL_API.G_RET_STS_ERROR;
4136
4137 END get_vendor_id;
4138
4139 ------------------------------------------------------------------------------
4140 -- PROCEDURE get_party_id
4141 -- It gets party id for given party number
4142 -- and stacks error if any
4143 -- Calls:
4144 -- None
4145 -- Called By:
4146 -- create_line_rules
4147 -- process_party_role
4148 ------------------------------------------------------------------------------
4149 PROCEDURE get_party_id(
4150 x_return_status OUT NOCOPY VARCHAR2,
4151 x_msg_count OUT NOCOPY NUMBER,
4152 x_msg_data OUT NOCOPY VARCHAR2,
4153 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4154 p_line_number IN okl_lines_interface.line_number%TYPE,
4155 p_party_id IN OKX_PARTIES_V.ID1%TYPE,
4156 p_party_number IN OKX_PARTIES_V.PARTY_NUMBER%TYPE,
4157 x_party_id OUT NOCOPY NUMBER
4158 ) IS
4159
4160 CURSOR party_csr (p_party_number VARCHAR2,
4161 p_party_id NUMBER) IS
4162 SELECT id1
4163 FROM okx_parties_v
4164 WHERE ((party_number = p_party_number
4165 AND
4166 p_party_number IS NOT NULL)
4167 OR
4168 (id1 = p_party_id
4169 AND
4170 p_party_id IS NOT NULL
4171 )
4172 );
4173
4174 l_id NUMBER;
4175 l_proc_name VARCHAR2(35) := 'GET_PARTY_ID';
4176 party_failed EXCEPTION;
4177
4178 BEGIN
4179
4180 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4181
4182 OPEN party_csr(p_party_number,
4183 p_party_id);
4184 FETCH party_csr INTO l_id;
4185 IF party_csr%NOTFOUND THEN
4186 RAISE party_failed;
4187 END IF;
4188 CLOSE party_csr;
4189
4190 x_party_id := l_id;
4191
4192 EXCEPTION
4193 WHEN party_failed THEN
4194 CLOSE party_csr;
4195 okl_api.set_message(
4196 G_APP_NAME,
4197 G_INVALID_VALUE,
4198 'CONTRACT_NUM',
4199 p_contract_number||'/'||TO_CHAR(p_line_number),
4200 'COL_NAME',
4201 'PARTY_ID, NUMBER: ',
4202 'COL_VALUE',
4203 p_party_id||', '||p_party_number
4204 );
4205 x_return_status := OKL_API.G_RET_STS_ERROR;
4206
4207
4208 WHEN OTHERS THEN
4209 IF party_csr%ISOPEN THEN
4210 CLOSE party_csr;
4211 END IF;
4212
4213 okl_api.set_message(
4214 G_APP_NAME,
4215 G_UNEXPECTED_ERROR,
4216 'OKL_SQLCODE',
4217 SQLCODE,
4218 'OKL_SQLERRM',
4219 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4220 );
4221
4222 x_return_status := OKL_API.G_RET_STS_ERROR;
4223
4224 END get_party_id;
4225
4226 -- cklee start 02/23/2004
4227 ------------------------------------------------------------------------------
4228 -- PROCEDURE get_party
4229 -- It gets party id/party site id for any given combination of name, number
4230 -- and stacks error if any
4231 -- Calls:
4232 -- None
4233 -- Called By:
4234 ------------------------------------------------------------------------------
4235 PROCEDURE get_party( x_return_status OUT NOCOPY VARCHAR2,
4236 x_msg_count OUT NOCOPY NUMBER,
4237 x_msg_data OUT NOCOPY VARCHAR2,
4238 p_intf_party_rec IN intf_party_rec_type,
4239 x_party_id OUT NOCOPY NUMBER,
4240 x_party_site_id OUT NOCOPY NUMBER
4241 ) IS
4242
4243 CURSOR party_csr (p_party_name VARCHAR2,
4244 p_party_id NUMBER,
4245 p_party_number VARCHAR2,
4246 p_party_site_name VARCHAR2,
4247 p_party_site_id NUMBER,
4248 p_party_site_number VARCHAR2,
4249 p_category_code VARCHAR2) IS
4250 SELECT prt.PARTY_ID,
4251 prt.PARTY_NAME,
4252 prt.PARTY_NUMBER,
4253 hps.PARTY_SITE_ID,
4254 hps.PARTY_SITE_NAME,
4255 hps.PARTY_SITE_NUMBER
4256 FROM
4257 HZ_PARTIES PRT,
4258 HZ_PARTY_SITES HPS
4259 WHERE
4260 prt.PARTY_ID = hps.PARTY_ID
4261 --start modified by abhaxen for 6689015 on 24-Jan-2008
4262 -- Added new filters to remove full table scans
4263 AND ( prt.CATEGORY_CODE = p_category_code AND p_category_code IS NOT NULL )
4264 AND ( ( prt.PARTY_ID = p_party_id AND p_party_id IS NOT NULL )
4265 OR ( prt.PARTY_NAME = p_party_name AND p_party_name IS NOT NULL)
4266 OR ( prt.PARTY_NUMBER = p_party_number AND p_party_number IS NOT NULL ))
4267 AND ( ( hps.PARTY_SITE_ID = p_party_site_id AND p_party_site_id IS NOT NULL )
4268 OR( hps.PARTY_SITE_NUMBER = p_party_site_number AND p_party_site_number IS NOT NULL )
4269 OR( hps.PARTY_SITE_NAME = p_party_site_name AND p_party_site_name IS NOT NULL ))
4270 ;
4271
4272
4273 /* AND NVL(prt.CATEGORY_CODE, G_DEFAULT_CHAR) = NVL(p_category_code, NVL(prt.CATEGORY_CODE,G_DEFAULT_CHAR))
4274 AND NVL(prt.PARTY_ID, G_DEFAULT_NUM) = NVL(p_party_id, NVL(prt.PARTY_ID,G_DEFAULT_NUM))
4275 AND NVL(prt.PARTY_NUMBER, G_DEFAULT_CHAR) = NVL(p_party_number, NVL(prt.PARTY_NUMBER, G_DEFAULT_CHAR))
4276 AND NVL(prt.PARTY_NAME, G_DEFAULT_CHAR) = NVL(p_party_name, NVL(prt.PARTY_NAME, G_DEFAULT_CHAR))
4277 AND NVL(hps.PARTY_SITE_ID, G_DEFAULT_NUM) = NVL(p_party_site_id, NVL(hps.PARTY_SITE_ID, G_DEFAULT_NUM))
4278 AND NVL(hps.PARTY_SITE_NUMBER, G_DEFAULT_CHAR) = NVL(p_party_site_number, NVL(hps.PARTY_SITE_NUMBER, G_DEFAULT_CHAR))
4279 AND NVL(hps.PARTY_SITE_NAME, G_DEFAULT_CHAR) = NVL(p_party_site_name, NVL(hps.PARTY_SITE_NAME, G_DEFAULT_CHAR)) ;
4280 */
4281 --end modified by abhsaxen for 6689015 on 24-Jan-2008
4282 l_proc_name VARCHAR2(35) := 'GET_PARTY';
4283 party_failed EXCEPTION;
4284 r_party party_csr%ROWTYPE;
4285 l_count NUMBER := 0;
4286
4287
4288 BEGIN
4289
4290 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4291
4292 OPEN party_csr(p_intf_party_rec.party_name,
4293 p_intf_party_rec.party_id,
4294 p_intf_party_rec.party_number,
4295 p_intf_party_rec.party_site_name,
4296 p_intf_party_rec.party_site_id,
4297 p_intf_party_rec.party_site_number,
4298 p_intf_party_rec.party_category_code);
4299
4300 LOOP
4301
4302 FETCH party_csr INTO r_party;
4303 EXIT WHEN party_csr%NOTFOUND;
4304
4305 x_party_id := r_party.party_id;
4306 x_party_site_id := r_party.party_site_id;
4307 l_count := party_csr%ROWCOUNT;
4308
4309 END LOOP;
4310 CLOSE party_csr;
4311
4312 -- no row return or multiple rows return
4313 IF (l_count = 0 OR l_count > 1) THEN
4314 raise party_failed;
4315 END IF;
4316
4317 EXCEPTION
4318 WHEN party_failed THEN
4319
4320 IF party_csr%ISOPEN THEN
4321 CLOSE party_csr;
4322 END IF;
4323
4324 okl_api.set_message(
4325 G_APP_NAME,
4326 G_INVALID_VALUE,
4327 'CONTRACT_NUM',
4328 p_intf_party_rec.contract_number||'/'||TO_CHAR(p_intf_party_rec.line_number),
4329 'COL_NAME',
4330 -- 'PARTY_ID, NUMBER: ',
4331 p_intf_party_rec.intf_party_id || ', ' || p_intf_party_rec.intf_party_name || ', '
4332 || p_intf_party_rec.intf_party_number || '/' ||
4333 p_intf_party_rec.intf_party_site_id || ', ' || p_intf_party_rec.intf_party_site_name || ', '
4334 || p_intf_party_rec.intf_party_site_number || ': ',
4335 'COL_VALUE',
4336 p_intf_party_rec.party_id || ', ' || p_intf_party_rec.party_name || ', '
4337 || p_intf_party_rec.party_number || '/' ||
4338 p_intf_party_rec.party_site_id || ', ' || p_intf_party_rec.party_site_name || ', '
4339 || p_intf_party_rec.party_site_number || ': '
4340 );
4341 x_return_status := OKL_API.G_RET_STS_ERROR;
4342
4343
4344 WHEN OTHERS THEN
4345
4346 IF party_csr%ISOPEN THEN
4347 CLOSE party_csr;
4348 END IF;
4349
4350 okl_api.set_message(
4351 G_APP_NAME,
4352 G_UNEXPECTED_ERROR,
4353 'OKL_SQLCODE',
4354 SQLCODE,
4355 'OKL_SQLERRM',
4356 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4357 );
4358
4359 x_return_status := OKL_API.G_RET_STS_ERROR;
4360
4361 END get_party;
4362 -- cklee end 02/23/2004
4363
4364
4365 ------------------------------------------------------------------------------
4366 -- PROCEDURE create_party_role
4367 -- It creates Party Role from Header Interface Record and retruns status to
4368 -- calling module for further processing.
4369 -- Calls:
4370 -- None
4371 -- Called By:
4372 -- load_input_record
4373 ------------------------------------------------------------------------------
4374 PROCEDURE create_party_role(
4375 x_return_status OUT NOCOPY VARCHAR2,
4376 x_msg_count OUT NOCOPY NUMBER,
4377 x_msg_data OUT NOCOPY VARCHAR2,
4378 p_contract_header_id IN okl_k_headers_v.id%TYPE,
4379 p_contract_number_old IN okc_k_headers_v.orig_system_reference1%TYPE,
4380 p_customer_id IN okl_header_interface.customer_id%TYPE,
4381 p_customer_number IN okl_header_interface.customer_number%TYPE,
4382 p_authoring_org_id IN okl_header_interface.authoring_org_id%TYPE,
4383 x_cplv_rec OUT NOCOPY cplv_rec_type ) IS
4384
4385 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
4386 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
4387 SELECT id1
4388 FROM okx_parties_v
4389 WHERE ((party_number = p_customer_number
4390 AND
4391 p_customer_number IS NOT NULL
4392 )
4393 OR
4394 (id1 = p_customer_id
4395 AND
4396 p_customer_id IS NOT NULL
4397 )
4398 );
4399
4400 l_id1 okx_parties_v.id1%TYPE;
4401 l_proc_name VARCHAR2(35) := 'CREATE_PARTY_ROLE';
4402 party_role_failed EXCEPTION;
4403 p_cplv_rec cplv_rec_type;
4404 l_kplv_rec kplv_rec_type;
4405 x_kplv_rec kplv_rec_type;
4406
4407 BEGIN
4408
4409 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4410
4411 /*
4412 OPEN customer_csr(p_customer_number,
4413 p_customer_id);
4414 FETCH customer_csr INTO l_id1;
4415 IF customer_csr%NOTFOUND THEN
4416 raise party_role_failed;
4417 END IF;
4418 CLOSE customer_csr;
4419
4420 g_customer_id := l_id1;
4421 */
4422
4423 -- Create LESSEE
4424 p_cplv_rec.chr_id := p_contract_header_id;
4425 p_cplv_rec.dnz_chr_id := p_contract_header_id;
4426 p_cplv_rec.object1_id1 := TO_CHAR(g_customer_id);
4427 --p_cplv_rec.object1_id1 := TO_CHAR(l_id1);
4428 p_cplv_rec.object1_id2 := '#';
4429 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
4430 p_cplv_rec.rle_code := 'LESSEE';
4431
4432 --OKL_OKC_MIGRATION_PVT.create_k_party_role( -- Contract addl field, Bug 4558486
4433 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
4434 p_api_version => 1.0,
4435 p_init_msg_list => OKL_API.G_FALSE,
4436 x_return_status => x_return_status,
4437 x_msg_count => x_msg_count,
4438 x_msg_data => x_msg_data,
4439 p_cplv_rec => p_cplv_rec,
4440 p_kplv_rec => l_kplv_rec,
4441 x_cplv_rec => x_cplv_rec,
4442 x_kplv_rec => x_kplv_rec
4443 );
4444
4445 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
4446 -- Create LESSOR
4447 p_cplv_rec.chr_id := p_contract_header_id;
4448 p_cplv_rec.dnz_chr_id := p_contract_header_id;
4449 p_cplv_rec.object1_id1 := TO_CHAR(p_authoring_org_id);
4450 p_cplv_rec.object1_id2 := '#';
4451 p_cplv_rec.jtot_object1_code := 'OKX_OPERUNIT';
4452 p_cplv_rec.rle_code := 'LESSOR';
4453
4454 -- OKL_OKC_MIGRATION_PVT.create_k_party_role( -- Contract addl field, Bug 4558486
4455 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
4456 p_api_version => 1.0,
4457 p_init_msg_list => OKL_API.G_FALSE,
4458 x_return_status => x_return_status,
4459 x_msg_count => x_msg_count,
4460 x_msg_data => x_msg_data,
4461 p_cplv_rec => p_cplv_rec,
4462 p_kplv_rec => l_kplv_rec,
4463 x_cplv_rec => x_cplv_rec,
4464 x_kplv_rec => x_kplv_rec
4465 );
4466 END IF;
4467
4468 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
4469 RAISE party_role_failed;
4470 END IF;
4471
4472 return;
4473
4474 EXCEPTION
4475 WHEN party_role_failed THEN
4476
4477 IF customer_csr%ISOPEN THEN
4478 CLOSE customer_csr;
4479 END IF;
4480
4481 okl_api.set_message(
4482 G_APP_NAME,
4483 G_INVALID_VALUE,
4484 'CONTRACT_NUM',
4485 p_contract_number_old,
4486 'COL_NAME',
4487 'CUSTOMER_ID, NUMBER: ',
4488 'COL_VALUE',
4489 p_customer_id||', '||p_customer_number
4490 );
4491
4492 x_return_status := OKL_API.G_RET_STS_ERROR;
4493
4494 WHEN OTHERS THEN
4495
4496 IF customer_csr%ISOPEN THEN
4497 CLOSE customer_csr;
4498 END IF;
4499
4500 okl_api.set_message(
4501 G_APP_NAME,
4502 G_UNEXPECTED_ERROR,
4503 'OKL_SQLCODE',
4504 SQLCODE,
4505 'OKL_SQLERRM',
4506 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4507 );
4508
4509 x_return_status := OKL_API.G_RET_STS_ERROR;
4510
4511
4512 END create_party_role;
4513
4514 ------------------------------------------------------------------------------
4515 -- PROCEDURE get_bill_to_address_id
4516 -- It returns Bill To Address ID from bill to address number and
4517 -- stacks Error, if any, and returns ERROR status to calling process.
4518 -- Calls:
4519 -- None
4520 -- Called By:
4521 -- create_header_rules
4522 -- process_term
4523 ------------------------------------------------------------------------------
4524
4525 PROCEDURE get_bill_to_address_id(
4526 x_return_status OUT NOCOPY VARCHAR2,
4527 x_msg_count OUT NOCOPY NUMBER,
4528 x_msg_data OUT NOCOPY VARCHAR2,
4529 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4530 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
4531 p_bill_to_address_id IN okl_header_interface.bill_to_address_id%TYPE,
4532 p_bill_to_address IN okl_header_interface.bill_to_address%TYPE,
4533 p_customer_account_id IN NUMBER,
4534 x_bill_to_address_id OUT NOCOPY NUMBER
4535 ) IS
4536
4537 CURSOR bill_csr (p_org_id NUMBER,
4538 p_bill_to_address VARCHAR2,
4539 p_bill_to_address_id NUMBER,
4540 p_customer_account_id NUMBER) IS
4541 SELECT site_use.id1
4542 FROM okx_cust_site_uses_v site_use,
4543 hz_cust_acct_sites_all site
4544 WHERE site.cust_acct_site_id = site_use.cust_acct_site_id
4545 AND ((site_use.name = p_bill_to_address
4546 AND
4547 p_bill_to_address IS NOT NULL)
4548 OR
4549 (site_use.id1 = p_bill_to_address_id
4550 AND
4551 p_bill_to_address_id IS NOT NULL
4552 )
4553 )
4554 AND site_use.org_id = p_org_id
4555 AND site.org_id = p_org_id
4556 AND site_use.site_use_code = 'BILL_TO'
4557 AND site_use.cust_account_id = p_customer_account_id
4558 AND site_use.b_status = 'A'
4559 AND site.status = 'A';
4560 --AND cust_acct_site_status = 'A';
4561
4562 l_proc_name VARCHAR2(35) := 'GET_BILL_TO_ADDRESS_ID';
4563 l_id okl_header_interface.bill_to_address_id%TYPE;
4564 bill_failed EXCEPTION;
4565
4566 BEGIN
4567
4568 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4569
4570
4571 OPEN bill_csr(p_auth_org_id,
4572 p_bill_to_address,
4573 p_bill_to_address_id,
4574 p_customer_account_id);
4575 FETCH bill_csr INTO l_id;
4576 IF bill_csr%NOTFOUND THEN
4577 raise bill_failed;
4578 END IF;
4579 CLOSE bill_csr;
4580
4581 x_bill_to_address_id := l_id;
4582
4583 return;
4584
4585 EXCEPTION
4586 WHEN bill_failed THEN
4587
4588 IF (bill_csr%ISOPEN) THEN
4589 CLOSE bill_csr;
4590 END IF;
4591
4592 okl_api.set_message(
4593 G_APP_NAME,
4594 G_INVALID_VALUE,
4595 'CONTRACT_NUM',
4596 p_contract_number,
4597 'COL_NAME',
4598 'BILL_TO_ADDRESS_ID, NAME',
4599 'COL_VALUE',
4600 p_bill_to_address_id||', '||p_bill_to_address
4601 );
4602 x_return_status := OKL_API.G_RET_STS_ERROR;
4603
4604 WHEN OTHERS THEN
4605 okl_api.set_message(
4606 G_APP_NAME,
4607 G_UNEXPECTED_ERROR,
4608 'OKL_SQLCODE',
4609 SQLCODE,
4610 'OKL_SQLERRM',
4611 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4612 );
4613
4614 x_return_status := OKL_API.G_RET_STS_ERROR;
4615
4616
4617 END get_bill_to_address_id;
4618
4619 ------------------------------------------------------------------------------
4620 -- PROCEDURE get_bank_account_id
4621 -- It returns Bank account id from account Number and
4622 -- stacks Error, if any, and returns ERROR status to calling process.
4623 -- Calls:
4624 -- None
4625 -- Called By:
4626 -- create_header_rules
4627 -- process_term
4628 ------------------------------------------------------------------------------
4629
4630 PROCEDURE get_bank_account_id(
4631 x_return_status OUT NOCOPY VARCHAR2,
4632 x_msg_count OUT NOCOPY NUMBER,
4633 x_msg_data OUT NOCOPY VARCHAR2,
4634 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4635 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
4636 p_bank_account_id IN okl_header_interface.bank_account_id%TYPE,
4637 p_bank_account_number IN okl_header_interface.bank_account_number%TYPE,
4638 p_customer_account_id IN NUMBER,
4639 p_cust_site_id IN NUMBER,
4640 x_bank_account_id OUT NOCOPY NUMBER
4641 ) IS
4642
4643 CURSOR bank_acct_csr(p_bank_acc_number VARCHAR2,
4644 p_bank_acc_id NUMBER,
4645 p_customer_acc_id NUMBER,
4646 p_cust_site_id NUMBER,
4647 p_org_id NUMBER) IS
4648 SELECT id1
4649 FROM okx_rcpt_method_accounts_v
4650 WHERE (
4651 (bank_account_num = p_bank_acc_number)
4652 OR
4653 (id1 = p_bank_acc_id)
4654 )
4655 AND customer_id = p_customer_acc_id
4656 -- udhenuko Bug#5925603 : Start
4657 --AND customer_site_use_id =p_cust_site_id
4658 AND ((customer_site_use_id = p_cust_site_id)
4659 or ( customer_site_use_id IS NULL) )
4660 --Bug#5925603: End
4661 -- rbanerje Bug#5925603(Release bug 7355967) : Start
4662 -- AND org_id = p_org_id
4663 -- rbanerje Bug#5925603(Release bug 7355967) : End
4664 AND TRUNC(SYSDATE) between NVL(START_DATE_ACTIVE, TRUNC(SYSDATE)) AND NVL(END_DATE_ACTIVE,TRUNC(SYSDATE))
4665 -- udhenuko Bug#5925603 : added order clause so that one used at site level will take precedence
4666 ORDER BY CUSTOMER_SITE_USE_ID;
4667 --Bug#5925603 : End
4668
4669 l_id OKX_RCPT_METHOD_ACCOUNTS_V.ID1%TYPE;
4670 bank_acct_failed EXCEPTION;
4671 l_proc_name VARCHAR2(35) := 'GET_BANK_ACCOUNT_ID';
4672
4673 BEGIN
4674
4675 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4676
4677 OPEN bank_acct_csr(p_bank_account_number,
4678 p_bank_account_id,
4679 p_customer_account_id,
4680 p_cust_site_id,
4681 p_auth_org_id);
4682 FETCH bank_acct_csr INTO l_id;
4683 IF bank_acct_csr%NOTFOUND THEN
4684 raise bank_acct_failed;
4685 END IF;
4686 CLOSE bank_acct_csr;
4687
4688 x_bank_account_id := l_id;
4689
4690 return;
4691
4692 EXCEPTION
4693 WHEN bank_acct_failed THEN
4694
4695 IF (bank_acct_csr%ISOPEN) THEN
4696 CLOSE bank_acct_csr;
4697 END IF;
4698
4699 okl_api.set_message(
4700 G_APP_NAME,
4701 G_INVALID_VALUE,
4702 'CONTRACT_NUM',
4703 p_contract_number,
4704 'COL_NAME',
4705 'BANK_ACCOUNT_ID, NUMBER: ',
4706 'COL_VALUE',
4707 p_bank_account_id||', '||p_bank_account_number
4708 );
4709 x_return_status := OKL_API.G_RET_STS_ERROR;
4710
4711 WHEN OTHERS THEN
4712
4713 okl_api.set_message(
4714 G_APP_NAME,
4715 G_UNEXPECTED_ERROR,
4716 'OKL_SQLCODE',
4717 SQLCODE,
4718 'OKL_SQLERRM',
4719 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4720 );
4721
4722 x_return_status := OKL_API.G_RET_STS_ERROR;
4723
4724 END get_bank_account_id;
4725
4726 ------------------------------------------------------------------------------
4727 -- PROCEDURE get_index_id
4728 -- It returns Index Id for a given Index Name and
4729 -- stacks Error, if any, and returns ERROR status to calling process.
4730 -- Calls:
4731 -- None
4732 -- Called By:
4733 -- create_header_rules
4734 ------------------------------------------------------------------------------
4735 PROCEDURE get_index_id(
4736 x_return_status OUT NOCOPY VARCHAR2,
4737 p_index_name IN okl_header_interface.index_name%TYPE,
4738 x_index_id OUT NOCOPY okl_indices.id%TYPE
4739 ) IS
4740
4741 CURSOR index_csr (p_index_name okl_header_interface.index_name%TYPE) IS
4742 SELECT id
4743 FROM okl_indices
4744 WHERE name = p_index_name;
4745
4746 l_proc_name VARCHAR2(35) := 'GET_INDEX_ID';
4747 l_id okl_indices.id%TYPE;
4748 index_failed EXCEPTION;
4749
4750 BEGIN
4751 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4752 OPEN index_csr (p_index_name);
4753 FETCH index_csr INTO l_id;
4754 IF index_csr%NOTFOUND THEN
4755 raise index_failed;
4756 END IF;
4757 CLOSE index_csr;
4758
4759 x_index_id := l_id;
4760
4761 RETURN;
4762
4763 EXCEPTION
4764 WHEN index_failed THEN
4765 --x_return_status := OKL_API.G_RET_STS_SUCCESS;
4766 x_return_status := OKL_API.G_RET_STS_ERROR; -- Bug 5024651
4767 WHEN OTHERS THEN
4768 x_return_status := OKL_API.G_RET_STS_ERROR;
4769 END get_index_id;
4770
4771 ------------------------------------------------------------------------------
4772 -- PROCEDURE get_payment_term
4773 -- It returns payment term id after validation and
4774 -- stacks Error, if any, and returns ERROR status to calling process.
4775 -- Calls:
4776 -- None
4777 -- Called By:
4778 ------------------------------------------------------------------------------
4779 FUNCTION get_payment_term(
4780 x_return_status OUT NOCOPY VARCHAR2,
4781 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
4782 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
4783 p_payment_term IN OKL_LINES_INTERFACE.PAYMENT_TERM%TYPE,
4784 p_payment_term_id IN OKL_LINES_INTERFACE.PAYMENT_TERM_ID%TYPE
4785 )
4786 RETURN NUMBER IS
4787
4788 CURSOR term_csr (p_payment_term VARCHAR2,
4789 p_payment_term_id NUMBER) IS
4790 SELECT id1
4791 FROM okx_payables_terms_v
4792 WHERE (name = p_payment_term
4793 AND
4794 p_payment_term IS NOT NULL)
4795 OR (id1 = p_payment_term_id
4796 AND
4797 p_payment_term_id IS NOT NULL)
4798 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active),TRUNC(SYSDATE))
4799 AND NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
4800
4801 l_id1 OKX_PAYABLES_TERMS_V.ID1%TYPE;
4802 BEGIN
4803
4804 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4805
4806 OPEN term_csr (p_payment_term,
4807 p_payment_term_id);
4808 FETCH term_csr INTO l_id1;
4809 IF term_csr%NOTFOUND THEN
4810 okl_api.set_message(
4811 G_APP_NAME,
4812 G_INVALID_VALUE,
4813 'CONTRACT_NUM/LINE_NUMBER',
4814 p_contract_number||'/'||p_line_number,
4815 'COL_NAME',
4816 'PAYMENT_TERM OR PAYMENT_TERM_ID',
4817 'COL_VALUE',
4818 p_payment_term||', '||p_payment_term_id
4819 );
4820 x_return_status := OKL_API.G_RET_STS_ERROR;
4821 RETURN NULL;
4822 END IF;
4823 CLOSE term_csr;
4824
4825 RETURN l_id1;
4826
4827 END get_payment_term;
4828
4829 ------------------------------------------------------------------------------
4830 -- PROCEDURE get_vendor_paysite
4831 -- It returns vendor Pay-site info and
4832 -- stacks Error, if any, and returns ERROR status to calling process.
4833 -- Calls:
4834 -- None
4835 -- Called By:
4836 ------------------------------------------------------------------------------
4837 FUNCTION get_vendor_paysite(
4838 x_return_status OUT NOCOPY VARCHAR2,
4839 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
4840 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
4841 p_vendor_paysite_name IN OKL_LINES_INTERFACE.VENDOR_PAYSITE_NAME%TYPE,
4842 p_vendor_paysite_id IN OKL_LINES_INTERFACE.VENDOR_PAYSITE_ID%TYPE
4843 )
4844 RETURN NUMBER IS
4845 CURSOR site_csr (p_name VARCHAR2,
4846 p_id NUMBER) IS
4847 SELECT id1
4848 FROM okx_vendor_sites_v
4849 WHERE (name = p_name
4850 AND
4851 p_name IS NOT NULL)
4852 OR
4853 (id1 = p_id
4854 AND
4855 p_id IS NOT NULL)
4856 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE))
4857 AND NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
4858
4859 l_id1 okx_vendor_sites_v.id1%TYPE;
4860 BEGIN
4861
4862 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4863
4864 OPEN site_csr (p_vendor_paysite_name,
4865 p_vendor_paysite_id);
4866 FETCH site_csr INTO l_id1;
4867 IF site_csr%NOTFOUND THEN
4868 okl_api.set_message(
4869 G_APP_NAME,
4870 G_INVALID_VALUE,
4871 'CONTRACT_NUM/LINE_NUMBER',
4872 p_contract_number||'/'||p_line_number,
4873 'COL_NAME',
4874 'VENDOR PAY SITE NAME OR VENDOR PAYSITE ID',
4875 'COL_VALUE',
4876 p_vendor_paysite_name||', '||p_vendor_paysite_id
4877 );
4878 x_return_status := OKL_API.G_RET_STS_ERROR;
4879 RETURN NULL;
4880 END IF;
4881 CLOSE site_csr;
4882
4883 RETURN l_id1;
4884
4885 END get_vendor_paysite;
4886
4887 ------------------------------------------------------------------------------
4888 -- PROCEDURE get_invoice_format
4889 -- It returns Invoice Format id from Format Code and
4890 -- stacks Error, if any, and returns ERROR status to calling process.
4891 -- Calls:
4892 -- None
4893 -- Called By:
4894 -- create_header_rules
4895 -- process_term
4896 ------------------------------------------------------------------------------
4897
4898 PROCEDURE get_invoice_format_id(
4899 x_return_status OUT NOCOPY VARCHAR2,
4900 x_msg_count OUT NOCOPY NUMBER,
4901 x_msg_data OUT NOCOPY VARCHAR2,
4902 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4903 p_invoice_format_id IN okl_header_interface.invoice_format_id%TYPE,
4904 p_invoice_format_code IN okl_header_interface.invoice_format_code%TYPE,
4905 x_invoice_format_id OUT NOCOPY NUMBER,
4906 x_invoice_format_name OUT NOCOPY VARCHAR2
4907 ) IS
4908
4909 CURSOR inv_format_csr(p_invoice_format_code VARCHAR2,
4910 p_invoice_format_id NUMBER) IS
4911 SELECT id,
4912 name
4913 FROM okl_invoice_formats_v
4914 WHERE ((name = p_invoice_format_code
4915 AND
4916 p_invoice_format_code IS NOT NULL)
4917 OR
4918 (id = p_invoice_format_id
4919 AND
4920 p_invoice_format_id IS NOT NULL
4921 )
4922 )
4923 AND TRUNC(SYSDATE) between NVL(START_DATE, TRUNC(SYSDATE)) AND NVL(END_DATE,TRUNC(SYSDATE));
4924
4925 l_id OKL_INVOICE_FORMATS_V.ID%TYPE;
4926 l_name OKL_INVOICE_FORMATS_V.NAME%TYPE;
4927 inv_format_failed EXCEPTION;
4928 l_proc_name VARCHAR2(35) := 'GET_INVOICE_FORMAT_ID';
4929
4930 BEGIN
4931
4932 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4933
4934 OPEN inv_format_csr(p_invoice_format_code,
4935 p_invoice_format_id);
4936 FETCH inv_format_csr INTO l_id,
4937 l_name;
4938 IF inv_format_csr%NOTFOUND THEN
4939 raise inv_format_failed;
4940 END IF;
4941 CLOSE inv_format_csr;
4942
4943 x_invoice_format_id := l_id;
4944 x_invoice_format_name := l_name;
4945 return;
4946
4947 EXCEPTION
4948 WHEN inv_format_failed THEN
4949
4950 IF (inv_format_csr%ISOPEN) THEN
4951 CLOSE inv_format_csr;
4952 END IF;
4953
4954 okl_api.set_message(
4955 G_APP_NAME,
4956 G_INVALID_VALUE,
4957 'CONTRACT_NUM',
4958 p_contract_number,
4959 'COL_NAME',
4960 'INVOICE_FORMAT_ID, CODE',
4961 'COL_VALUE',
4962 p_invoice_format_id||', '||p_invoice_format_code
4963 );
4964 x_return_status := OKL_API.G_RET_STS_ERROR;
4965
4966 WHEN OTHERS THEN
4967
4968 okl_api.set_message(
4969 G_APP_NAME,
4970 G_UNEXPECTED_ERROR,
4971 'OKL_SQLCODE',
4972 SQLCODE,
4973 'OKL_SQLERRM',
4974 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4975 );
4976
4977 x_return_status := OKL_API.G_RET_STS_ERROR;
4978
4979 END get_invoice_format_id;
4980
4981 ------------------------------------------------------------------------------
4982 -- PROCEDURE get_payment_method_id
4983 -- It returns Payment Method id from Payment Method
4984 -- stacks Error, if any, and returns ERROR status to calling process.
4985 -- Calls:
4986 -- None
4987 -- Called By:
4988 -- create_header_rules
4989 -- process_term
4990 ------------------------------------------------------------------------------
4991
4992 PROCEDURE get_payment_method_id(
4993 x_return_status OUT NOCOPY VARCHAR2,
4994 x_msg_count OUT NOCOPY NUMBER,
4995 x_msg_data OUT NOCOPY VARCHAR2,
4996 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4997 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
4998 p_bill_to_address_id IN okl_header_interface.bill_to_address_id%TYPE,
4999 p_payment_method_id IN okl_header_interface.payment_method_id%TYPE,
5000 p_payment_method IN okl_header_interface.payment_method%TYPE,
5001 x_payment_method_id OUT NOCOPY NUMBER
5002 ) IS
5003
5004 CURSOR payment_csr(p_payment_method VARCHAR2,
5005 p_payment_method_id NUMBER,
5006 p_customer_acc_id NUMBER,
5007 p_bill_to_address_id NUMBER) IS
5008 SELECT id1
5009 FROM okx_receipt_methods_v
5010 WHERE ((name = p_payment_method
5011 AND
5012 p_payment_method IS NOT NULL)
5013 OR
5014 (id1 = p_payment_method_id
5015 AND
5016 p_payment_method_id IS NOT NULL))
5017 AND customer_id = p_customer_acc_id
5018 AND (site_use_id = p_bill_to_address_id
5019 OR
5020 site_use_id IS NULL)
5021 AND TRUNC(SYSDATE) between NVL(START_DATE_ACTIVE, TRUNC(SYSDATE)) AND NVL(END_DATE_ACTIVE,TRUNC(SYSDATE));
5022
5023 l_id OKX_RECEIPT_METHODS_V.ID1%TYPE;
5024 payment_failed EXCEPTION;
5025 l_proc_name VARCHAR2(35) := 'GET_PAYMENT_METHOD_ID';
5026
5027 BEGIN
5028
5029 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5030
5031 debug_message(p_payment_method||','||p_customer_account_id||', '||p_bill_to_address_id);
5032 OPEN payment_csr(p_payment_method,
5033 p_payment_method_id,
5034 p_customer_account_id,
5035 p_bill_to_address_id);
5036 FETCH payment_csr INTO l_id;
5037 IF payment_csr%NOTFOUND THEN
5038 raise payment_failed;
5039 END IF;
5040 CLOSE payment_csr;
5041
5042 x_payment_method_id := l_id;
5043 debug_message('PMNT ID: '||x_payment_method_id);
5044 return;
5045
5046 EXCEPTION
5047 WHEN payment_failed THEN
5048
5049 IF (payment_csr%ISOPEN) THEN
5050 CLOSE payment_csr;
5051 END IF;
5052
5053 okl_api.set_message(
5054 G_APP_NAME,
5055 G_INVALID_VALUE,
5056 'CONTRACT_NUM',
5057 p_contract_number,
5058 'COL_NAME',
5059 'PAYMENT_METHOD, ID',
5060 'COL_VALUE',
5061 p_payment_method||', '||p_payment_method_id
5062 );
5063 x_return_status := OKL_API.G_RET_STS_ERROR;
5064
5065 WHEN OTHERS THEN
5066
5067 okl_api.set_message(
5068 G_APP_NAME,
5069 G_UNEXPECTED_ERROR,
5070 'OKL_SQLCODE',
5071 SQLCODE,
5072 'OKL_SQLERRM',
5073 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
5074 );
5075
5076 x_return_status := OKL_API.G_RET_STS_ERROR;
5077
5078 END get_payment_method_id;
5079
5080 ------------------------------------------------------------------------------
5081 -- PROCEDURE get_customer_account_id
5082 -- It returns customer account id from account Number and
5083 -- stacks Error, if any, and returns ERROR status to calling process.
5084 -- validate against customer
5085 -- Calls:
5086 -- None
5087 -- Called By:
5088 -- create_header_rules
5089 ------------------------------------------------------------------------------
5090
5091 PROCEDURE get_customer_account_id(
5092 x_return_status OUT NOCOPY VARCHAR2,
5093 x_msg_count OUT NOCOPY NUMBER,
5094 x_msg_data OUT NOCOPY VARCHAR2,
5095 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
5096 p_customer_id IN okl_header_interface.customer_id%TYPE,
5097 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
5098 p_customer_account_number IN okl_header_interface.customer_account_number%TYPE,
5099 x_customer_account_id OUT NOCOPY NUMBER
5100 ) IS
5101
5102 CURSOR cust_acct_csr(p_cust_id NUMBER,
5103 p_cust_acc_number VARCHAR2,
5104 p_customer_account_id NUMBER) IS
5105 SELECT id1
5106 FROM okx_customer_accounts_v
5107 WHERE ((description = p_cust_acc_number
5108 AND
5109 p_cust_acc_number IS NOT NULL)
5110 OR
5111 (id1 = p_customer_account_id
5112 AND
5113 p_customer_account_id IS NOT NULL
5114 )
5115 )
5116 AND party_id = p_cust_id
5117 AND status = 'A';
5118
5119 l_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
5120 cust_acct_failed EXCEPTION;
5121 l_proc_name VARCHAR2(35) := 'GET_CUSTOMER_ACCOUNT_ID';
5122
5123 BEGIN
5124
5125 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5126
5127 debug_message('Customer Account ID: '||p_customer_account_id);
5128
5129 OPEN cust_acct_csr(p_customer_id,
5130 p_customer_account_number,
5131 p_customer_account_id);
5132 FETCH cust_acct_csr INTO l_id;
5133 IF cust_acct_csr%NOTFOUND THEN
5134 raise cust_acct_failed;
5135 END IF;
5136 CLOSE cust_acct_csr;
5137
5138 x_customer_account_id := l_id;
5139
5140 return;
5141
5142 EXCEPTION
5143 WHEN cust_acct_failed THEN
5144
5145 IF (cust_acct_csr%ISOPEN) THEN
5146 CLOSE cust_acct_csr;
5147 END IF;
5148
5149 okl_api.set_message(
5150 G_APP_NAME,
5151 G_INVALID_VALUE,
5152 'CONTRACT_NUM',
5153 p_contract_number,
5154 'COL_NAME',
5155 'CUSTOMER_ACCOUNT, ID',
5156 'COL_VALUE',
5157 p_customer_account_number||', '||p_customer_account_id
5158 );
5159 x_return_status := OKL_API.G_RET_STS_ERROR;
5160
5161 WHEN OTHERS THEN
5162
5163 okl_api.set_message(
5164 G_APP_NAME,
5165 G_UNEXPECTED_ERROR,
5166 'OKL_SQLCODE',
5167 SQLCODE,
5168 'OKL_SQLERRM',
5169 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
5170 );
5171
5172 x_return_status := OKL_API.G_RET_STS_ERROR;
5173
5174 END get_customer_account_id;
5175
5176 ------------------------------------------------------------------------------
5177 -- PROCEDURE get_customer_account_id
5178 -- It returns customer account id from account Number and
5179 -- stacks Error, if any, and returns ERROR status to calling process.
5180 -- Calls:
5181 -- None
5182 -- Called By:
5183 -- create_header_rules
5184 ------------------------------------------------------------------------------
5185
5186 PROCEDURE get_customer_account_id(
5187 x_return_status OUT NOCOPY VARCHAR2,
5188 x_msg_count OUT NOCOPY NUMBER,
5189 x_msg_data OUT NOCOPY VARCHAR2,
5190 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
5191 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
5192 p_customer_account_number IN okl_header_interface.customer_account_number%TYPE,
5193 x_customer_account_id OUT NOCOPY NUMBER
5194 ) IS
5195
5196 CURSOR cust_acct_csr(p_cust_acc_number VARCHAR2,
5197 p_customer_account_id NUMBER) IS
5198 SELECT id1
5199 FROM okx_customer_accounts_v
5200 WHERE ((description = p_cust_acc_number
5201 AND
5202 p_cust_acc_number IS NOT NULL)
5203 OR
5204 (id1 = p_customer_account_id
5205 AND
5206 p_customer_account_id IS NOT NULL
5207 )
5208 )
5209 AND status = 'A';
5210
5211 l_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
5212 cust_acct_failed EXCEPTION;
5213 l_proc_name VARCHAR2(35) := 'GET_CUSTOMER_ACCOUNT_ID';
5214
5215 BEGIN
5216
5217 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5218
5219 OPEN cust_acct_csr(p_customer_account_number,
5220 p_customer_account_id);
5221 FETCH cust_acct_csr INTO l_id;
5222 IF cust_acct_csr%NOTFOUND THEN
5223 raise cust_acct_failed;
5224 END IF;
5225 CLOSE cust_acct_csr;
5226
5227 x_customer_account_id := l_id;
5228
5229 return;
5230
5231 EXCEPTION
5232 WHEN cust_acct_failed THEN
5233
5234 IF (cust_acct_csr%ISOPEN) THEN
5235 CLOSE cust_acct_csr;
5236 END IF;
5237
5238 okl_api.set_message(
5239 G_APP_NAME,
5240 G_INVALID_VALUE,
5241 'CONTRACT_NUM',
5242 p_contract_number,
5243 'COL_NAME',
5244 'CUSTOMER_ACCOUNT, ID',
5245 'COL_VALUE',
5246 p_customer_account_number||', '||p_customer_account_id
5247 );
5248 x_return_status := OKL_API.G_RET_STS_ERROR;
5249
5250 WHEN OTHERS THEN
5251
5252 okl_api.set_message(
5253 G_APP_NAME,
5254 G_UNEXPECTED_ERROR,
5255 'OKL_SQLCODE',
5256 SQLCODE,
5257 'OKL_SQLERRM',
5258 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
5259 );
5260
5261 x_return_status := OKL_API.G_RET_STS_ERROR;
5262
5263 END get_customer_account_id;
5264
5265 ------------------------------------------------------------------------------
5266 -- PROCEDURE get_base_uom_id
5267 -- It returns Base Reading UOM ID from Code and
5268 -- stacks Error, if any, and returns ERROR status to calling process.
5269 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5270 -- Calls:
5271 -- Called By:
5272 ------------------------------------------------------------------------------
5273 PROCEDURE get_base_uom_id(
5274 x_return_status OUT NOCOPY VARCHAR2,
5275 p_base_uom_code IN okx_tuom_v.id1%TYPE,
5276 x_base_uom_id OUT NOCOPY okx_tuom_v.id1%TYPE
5277 ) IS
5278 l_proc_name VARCHAR2(35) := 'GET_BASE_UOM_ID';
5279 CURSOR uom_csr (p_base_uom_code VARCHAR2) IS
5280 SELECT id1
5281 FROM okx_tuom_v
5282 WHERE uom_code = p_base_uom_code;
5283
5284 uom_failed EXCEPTION;
5285 l_id okx_tuom_v.id1%TYPE;
5286
5287 BEGIN
5288 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5289 OPEN uom_csr(p_base_uom_code);
5290 FETCH uom_csr INTO l_id;
5291 IF uom_csr%NOTFOUND THEN
5292 RAISE uom_failed;
5293 END IF;
5294
5295 CLOSE uom_csr;
5296 x_base_uom_id := l_id;
5297
5298 RETURN;
5299
5300 EXCEPTION
5301 WHEN uom_failed THEN
5302 IF uom_csr%ISOPEN THEN
5303 CLOSE uom_csr;
5304 END IF;
5305 x_return_status := OKL_API.G_RET_STS_ERROR;
5306
5307 END get_base_uom_id;
5308
5309 ------------------------------------------------------------------------------
5310 -- PROCEDURE get_price_list_id
5311 -- It returns Price List ID from Name and
5312 -- stacks Error, if any, and returns ERROR status to calling process.
5313 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5314 -- Calls:
5315 -- Called By:
5316 ------------------------------------------------------------------------------
5317 PROCEDURE get_price_list_id(
5318 x_return_status OUT NOCOPY VARCHAR2,
5319 p_price_list_name IN okx_list_headers_v.name%TYPE,
5320 p_price_list_id IN okx_list_headers_v.id1%TYPE,
5321 x_price_list_id OUT NOCOPY okx_list_headers_v.id1%TYPE
5322 ) IS
5323
5324 l_proc_name VARCHAR2(35) := 'GET_PRICE_LIST_ID';
5325 CURSOR price_csr (p_price_list_name VARCHAR2,
5326 p_price_list_id NUMBER) IS
5327 SELECT id1
5328 FROM okx_list_headers_v
5329 WHERE list_type_code = 'PRL'
5330 AND ((name = p_price_list_name
5331 AND
5332 p_price_list_name IS NOT NULL
5333 )
5334 OR
5335 (id1 = p_price_list_id
5336 AND
5337 p_price_list_id IS NOT NULL
5338 )
5339 )
5340 AND SYSDATE BETWEEN NVL(start_date_active,SYSDATE) AND NVL(end_date_active, SYSDATE);
5341
5342 l_id okx_list_headers_v.id1%TYPE;
5343 price_failed EXCEPTION;
5344
5345 BEGIN
5346 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5347 OPEN price_csr(p_price_list_name,
5348 p_price_list_id);
5349 FETCH price_csr INTO l_id;
5350 IF price_csr%NOTFOUND THEN
5351 RAISE price_failed;
5352 END IF;
5353
5354 CLOSE price_csr;
5355 x_price_list_id := l_id;
5356
5357 RETURN;
5358
5359 EXCEPTION
5360 WHEN price_failed THEN
5361 IF price_csr%ISOPEN THEN
5362 CLOSE price_csr;
5363 END IF;
5364 x_return_status := OKL_API.G_RET_STS_ERROR;
5365 END get_price_list_id;
5366
5367 ------------------------------------------------------------------------------
5368 -- PROCEDURE get_usage_item_id
5369 -- It returns USAGE ITEM ID from Number and
5370 -- stacks Error, if any, and returns ERROR status to calling process.
5371 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5372 -- Calls:
5373 -- Called By:
5374 ------------------------------------------------------------------------------
5375 PROCEDURE get_usage_item_id(
5376 x_return_status OUT NOCOPY VARCHAR2,
5377 p_usage_item_name IN okx_system_items_v.name%TYPE,
5378 p_usage_item_id IN okx_system_items_v.id1%TYPE,
5379 p_org_id IN NUMBER,
5380 x_usage_item_id OUT NOCOPY okx_system_items_v.id1%TYPE,
5381 x_usage_id2 OUT NOCOPY okx_system_items_v.id2%TYPE
5382 ) IS
5383
5384 l_proc_name VARCHAR2(35) := 'GET_USAGE_ITEM_ID';
5385 CURSOR uitem_csr (p_item_name VARCHAR2,
5386 p_item_id NUMBER,
5387 p_org_id NUMBER) IS
5388 SELECT id1,
5389 id2
5390 FROM okx_system_items_v
5391 WHERE usage_item_flag = 'Y'
5392 AND organization_id = p_org_id
5393 AND ((name = p_item_name
5394 AND
5395 p_item_name IS NOT NULL
5396 )
5397 OR
5398 (id1 = p_item_id
5399 AND
5400 p_item_id IS NOT NULL
5401 )
5402 );
5403
5404 uitem_failed EXCEPTION;
5405 l_id1 okx_system_items_v.id1%TYPE;
5406 l_id2 okx_system_items_v.id2%TYPE;
5407
5408 BEGIN
5409 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5410 OPEN uitem_csr(p_usage_item_name,
5411 p_usage_item_id,
5412 p_org_id);
5413 FETCH uitem_csr INTO l_id1,
5414 l_id2;
5415 IF uitem_csr%NOTFOUND THEN
5416 RAISE uitem_failed;
5417 END IF;
5418
5419 CLOSE uitem_csr;
5420 x_usage_item_id := l_id1;
5421 x_usage_id2 := l_id2;
5422
5423 RETURN;
5424
5425 EXCEPTION
5426 WHEN uitem_failed THEN
5427 IF uitem_csr%ISOPEN THEN
5428 CLOSE uitem_csr;
5429 END IF;
5430 x_return_status := OKL_API.G_RET_STS_ERROR;
5431 END get_usage_item_id;
5432
5433 ------------------------------------------------------------------------------
5434 -- PROCEDURE create_rule_group_and_rule
5435 -- It creates rule group ad rules and
5436 -- stacks Error, if any, and returns ERROR status to calling process.
5437 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5438 -- Calls:
5439 -- Called By:
5440 ------------------------------------------------------------------------------
5441 PROCEDURE create_rule_group_and_rule(
5442 x_return_status OUT NOCOPY VARCHAR2,
5443 x_msg_count OUT NOCOPY NUMBER,
5444 x_msg_data OUT NOCOPY VARCHAR2,
5445 p_rgp_id IN NUMBER,
5446 p_rgpv_rec IN rgpv_rec_type,
5447 p_rulv_rec IN rulv_rec_type,
5448 x_rgpv_rec OUT NOCOPY rgpv_rec_type,
5449 x_rulv_rec OUT NOCOPY rulv_rec_type
5450 ) IS
5451
5452 l_proc_name VARCHAR2(35) := 'CREATE_RULE_GROUP_AND_RULE';
5453 l_id NUMBER;
5454 rg_failed EXCEPTION;
5455 l_rulv_rec_in rulv_rec_type;
5456
5457 BEGIN
5458
5459 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5460
5461 -- Check for presence of RULE info, if not RETURN with SUCCESS
5462 IF (p_rulv_rec.rule_information_category IS NULL) THEN
5463 RETURN;
5464 END IF;
5465
5466 --IF (p_rgp_id IS NULL) THEN -- create rule group
5467 --Bug# 4284166 : Added check for p_rgp_id = OKC_API.G_MISS_NUM in if statement
5468 IF (p_rgp_id IS NULL or p_rgp_id = OKC_API.G_MISS_NUM) THEN -- create rule group
5469
5470 OKL_RULE_PUB.create_rule_group(
5471 p_api_version => 1.0,
5472 p_init_msg_list => OKL_API.G_FALSE,
5473 x_return_status => x_return_status,
5474 x_msg_count => x_msg_count,
5475 x_msg_data => x_msg_data,
5476 p_rgpv_rec => p_rgpv_rec,
5477 x_rgpv_rec => x_rgpv_rec
5478 );
5479 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5480 x_return_status := OKL_API.G_RET_STS_ERROR;
5481 raise rg_failed;
5482 END IF;
5483
5484 l_id := x_rgpv_rec.id;
5485
5486 ELSE
5487 l_id := p_rgp_id;
5488
5489 END IF; --rule_group
5490
5491 -- create rule now
5492 l_rulv_rec_in := p_rulv_rec;
5493 l_rulv_rec_in.rgp_id := l_id;
5494
5495 OKL_RULE_PUB.create_rule(
5496 p_api_version => 1.0,
5497 p_init_msg_list => OKL_API.G_FALSE,
5498 x_return_status => x_return_status,
5499 x_msg_count => x_msg_count,
5500 x_msg_data => x_msg_data,
5501 p_rulv_rec => l_rulv_rec_in,
5502 x_rulv_rec => x_rulv_rec
5503 );
5504
5505 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5506 x_return_status := OKL_API.G_RET_STS_ERROR;
5507 raise rg_failed;
5508 END IF;
5509
5510 RETURN;
5511
5512 EXCEPTION
5513 WHEN rg_failed THEN
5514 x_return_status := OKL_API.G_RET_STS_ERROR;
5515 END create_rule_group_and_rule;
5516
5517 ------------------------------------------------------------------------------
5518 -- PROCEDURE create_update_asset_rules
5519 -- It creates or updates rules and
5520 -- stacks Error, if any, and returns ERROR status to calling process.
5521 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5522 -- Calls:
5523 -- Called By:
5524 ------------------------------------------------------------------------------
5525 PROCEDURE create_update_asset_rules(
5526 x_return_status OUT NOCOPY VARCHAR2,
5527 x_msg_count OUT NOCOPY NUMBER,
5528 x_msg_data OUT NOCOPY VARCHAR2,
5529 p_chr_id IN okc_k_headers_v.id%TYPE,
5530 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
5531 p_cle_id IN okl_k_lines_v.id%TYPE,
5532 p_line_number IN okc_k_lines_v.line_number%TYPE,
5533 p_line_type IN okl_lines_interface.line_type%TYPE,
5534 p_inv_org_id IN okl_lines_interface.inventory_organization_id%TYPE,
5535 p_sales_tax_exempt_flag IN okl_lines_interface.sales_tax_exempt_flag%TYPE,
5536 p_sales_tax_exempt_cert_number IN okl_lines_interface.sales_tax_exempt_cert_number%TYPE,
5537 p_sales_tax_override_flag IN okl_lines_interface.sales_tax_override_flag%TYPE,
5538 p_sales_tax_override_rate IN okl_lines_interface.sales_tax_override_rate%TYPE,
5539 p_st_upd_lines_from_contract IN okl_lines_interface.st_update_lines_from_contract%TYPE,
5540 p_st_transfer_of_title IN okl_lines_interface.st_transfer_of_title%TYPE,
5541 p_st_sale_and_lease_back IN okl_lines_interface.st_sale_and_lease_back%TYPE,
5542 p_st_purchase_of_lease IN okl_lines_interface.st_purchase_of_lease%TYPE,
5543 p_st_equipment_usage IN okl_lines_interface.st_equipment_usage%TYPE,
5544 p_st_equipment_age IN okl_lines_interface.st_equipment_age%TYPE,
5545 p_st_asset_upfront_tax IN okl_lines_interface.st_asset_upfront_tax%TYPE,
5546 p_vat_tax_exempt IN okl_lines_interface.vat_tax_exempt%TYPE,
5547 p_vat_tax_exempt_cert_number IN okl_lines_interface.vat_tax_exempt_cert_number%TYPE,
5548 p_vat_tax_override_flag IN okl_lines_interface.vat_tax_override_flag%TYPE,
5549 p_vat_tax_override_rate IN okl_lines_interface.vat_tax_override_rate%TYPE,
5550 p_prop_tax_applicable IN okl_lines_interface.prop_tax_applicable%TYPE,
5551 p_prop_tax_lease_rep IN okl_lines_interface.prop_tax_lease_rep%TYPE,
5552 p_french_tax_code IN okl_lines_interface.french_tax_code%TYPE,
5553 p_french_tax_name IN okl_lines_interface.french_tax_name%TYPE,
5554 p_prop_tax_bill_method IN okl_lines_interface.prop_tax_bill_method%TYPE,
5555 p_prop_tax_as_contract_yn IN okl_lines_interface.prop_tax_as_contract_yn%TYPE ) IS
5556
5557 line_rule_failed EXCEPTION;
5558 rule_group_failed EXCEPTION;
5559 rule_failed EXCEPTION;
5560 l_proc_name VARCHAR2(35) := 'CREATE_UPDATE_ASSET_RULES';
5561
5562 x_lienholder_id NUMBER := NULL;
5563 x_title_issuer_id NUMBER := NULL;
5564 l_rgp_id NUMBER;
5565 x_base_uom_id okx_tuom_v.id1%TYPE;
5566 x_price_list_id okx_list_headers_v.id1%TYPE;
5567 x_stream_id okl_strmtyp_source_v.id1%TYPE;
5568 l_payment_term_id okx_payables_terms_v.id1%TYPE;
5569 l_vendor_paysite_id okx_vendor_sites_v.id1%TYPE;
5570 l_freq_id okl_time_units_v.id1%TYPE;
5571
5572 -- Rule Rec
5573 x_rgpv_rec rgpv_rec_type;
5574 l_rgpv_rec rgpv_rec_type;
5575
5576 l_rulv_rec rulv_rec_type;
5577 x_rulv_rec rulv_rec_type;
5578
5579 lp_rulv_rec rulv_rec_type;
5580 xp_rulv_rec rulv_rec_type;
5581
5582 l_progress VARCHAR2(10) := '1.0';
5583 l_french_tax_code OKL_FRENCH_TAX_V.CODE%TYPE;
5584
5585 CURSOR french_tax_csr (p_tax_code okl_french_tax_v.code%TYPE,
5586 p_tax_name okl_french_tax_v.name%TYPE) IS
5587 SELECT code
5588 FROM okl_french_tax_v
5589 WHERE ( code = p_tax_code
5590 AND
5591 p_tax_code IS NOT NULL)
5592 OR ( name = p_tax_name
5593 AND
5594 p_tax_name IS NOT NULL)
5595 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date), TRUNC(SYSDATE))
5596 AND NVL(TRUNC(end_date), TRUNC(SYSDATE));
5597
5598 CURSOR get_rule_group_info(p_chr_id okc_k_headers_b.id%TYPE,
5599 p_cle_id okc_k_lines_v.id%TYPE) IS
5600 SELECT rgp.id
5601 FROM okc_rule_groups_v rgp
5602 WHERE rgp.dnz_chr_id = p_chr_id
5603 AND rgp.cle_id = p_cle_id
5604 AND rgp.rgd_code = 'LAASTX'
5605 AND rgp.rgp_type = 'KRG';
5606
5607 -- 5179119
5608 CURSOR get_sales_tax_rule_info(p_chr_id okc_k_headers_b.id%TYPE,
5609 p_rgp_id okc_k_lines_v.id%TYPE) IS
5610 SELECT rule.id
5611 FROM okc_rules_v rule
5612 WHERE rule.dnz_chr_id = p_chr_id
5613 AND rule.rgp_id = p_rgp_id
5614 AND rule.rule_information_category = 'LAASTX';
5615
5616 CURSOR get_prop_tax_rule_info(p_chr_id okc_k_headers_b.id%TYPE,
5617 p_rgp_id okc_k_lines_v.id%TYPE) IS
5618 SELECT rule.id
5619 FROM okc_rules_v rule
5620 WHERE rule.dnz_chr_id = p_chr_id
5621 AND rule.rgp_id = p_rgp_id
5622 AND rule.rule_information_category = 'LAPRTX';
5623
5624 ln_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
5625 ln_rule_id OKC_RULES_V.ID%TYPE;
5626 -- 5179119
5627 l_sales_tax_rule_id OKC_RULES_V.ID%TYPE;
5628 l_sales_tax_rule_found BOOLEAN;
5629
5630 lv_rec_populate_check VARCHAR2(1) := 'N';
5631
5632 BEGIN
5633
5634 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5635 debug_message(l_proc_name);
5636
5637 OPEN get_rule_group_info(p_chr_id, p_cle_id);
5638 FETCH get_rule_group_info into ln_rgp_id;
5639 IF get_rule_group_info%NOTFOUND THEN
5640 RAISE rule_group_failed;
5641 END IF;
5642 CLOSE get_rule_group_info;
5643
5644 -- Sales Tax 5179119
5645 OPEN get_sales_tax_rule_info(p_chr_id => p_chr_id,
5646 p_rgp_id => ln_rgp_id);
5647 FETCH get_sales_tax_rule_info into l_sales_tax_rule_id;
5648 IF get_sales_tax_rule_info%NOTFOUND THEN
5649 l_sales_tax_rule_found := FALSE;
5650 ELSE
5651 l_sales_tax_rule_found := TRUE;
5652 END IF;
5653 CLOSE get_sales_tax_rule_info;
5654
5655 l_rulv_rec := NULL;
5656
5657 -- Rule Group LAASTX
5658 IF (p_sales_tax_exempt_flag IS NOT NULL) THEN
5659 l_rulv_rec.rule_information1 := p_sales_tax_exempt_flag;
5660 l_rulv_rec.rgp_id := ln_rgp_id;
5661 l_rulv_rec.dnz_chr_id := p_chr_id;
5662 l_rulv_rec.rule_information_category := 'LAASTX';
5663 l_rulv_rec.std_template_yn := 'N';
5664 l_rulv_rec.warn_yn := 'N';
5665 lv_rec_populate_check := 'Y';
5666 END IF;
5667
5668 IF (p_sales_tax_exempt_cert_number IS NOT NULL) THEN
5669 l_rulv_rec.rule_information2 := p_sales_tax_exempt_cert_number;
5670 l_rulv_rec.rgp_id := ln_rgp_id;
5671 l_rulv_rec.dnz_chr_id := p_chr_id;
5672 l_rulv_rec.rule_information_category := 'LAASTX';
5673 l_rulv_rec.std_template_yn := 'N';
5674 l_rulv_rec.warn_yn := 'N';
5675 lv_rec_populate_check := 'Y';
5676 END IF;
5677
5678 IF (p_sales_tax_override_flag IS NOT NULL) THEN
5679 l_rulv_rec.rule_information3 := p_sales_tax_override_flag;
5680 l_rulv_rec.rgp_id := ln_rgp_id;
5681 l_rulv_rec.dnz_chr_id := p_chr_id;
5682 l_rulv_rec.rule_information_category := 'LAASTX';
5683 l_rulv_rec.std_template_yn := 'N';
5684 l_rulv_rec.warn_yn := 'N';
5685 lv_rec_populate_check := 'Y';
5686 END IF;
5687
5688 IF (p_sales_tax_override_rate IS NOT NULL) THEN
5689 l_rulv_rec.rule_information4 := p_sales_tax_override_rate;
5690 l_rulv_rec.rgp_id := ln_rgp_id;
5691 l_rulv_rec.dnz_chr_id := p_chr_id;
5692 l_rulv_rec.rule_information_category := 'LAASTX';
5693 l_rulv_rec.std_template_yn := 'N';
5694 l_rulv_rec.warn_yn := 'N';
5695 lv_rec_populate_check := 'Y';
5696 END IF;
5697
5698 IF (p_st_upd_lines_from_contract IS NOT NULL) THEN
5699 l_rulv_rec.rule_information5 := p_st_upd_lines_from_contract;
5700 l_rulv_rec.rgp_id := ln_rgp_id;
5701 l_rulv_rec.dnz_chr_id := p_chr_id;
5702 l_rulv_rec.rule_information_category := 'LAASTX';
5703 l_rulv_rec.std_template_yn := 'N';
5704 l_rulv_rec.warn_yn := 'N';
5705 lv_rec_populate_check := 'Y';
5706 END IF;
5707
5708 IF (p_st_transfer_of_title IS NOT NULL) THEN
5709 l_rulv_rec.rule_information6 := p_st_transfer_of_title;
5710 l_rulv_rec.rgp_id := ln_rgp_id;
5711 l_rulv_rec.dnz_chr_id := p_chr_id;
5712 l_rulv_rec.rule_information_category := 'LAASTX';
5713 l_rulv_rec.std_template_yn := 'N';
5714 l_rulv_rec.warn_yn := 'N';
5715 lv_rec_populate_check := 'Y';
5716 END IF;
5717
5718 IF (p_st_sale_and_lease_back IS NOT NULL) THEN
5719 l_rulv_rec.rule_information7 := p_st_sale_and_lease_back;
5720 l_rulv_rec.rgp_id := ln_rgp_id;
5721 l_rulv_rec.dnz_chr_id := p_chr_id;
5722 l_rulv_rec.rule_information_category := 'LAASTX';
5723 l_rulv_rec.std_template_yn := 'N';
5724 l_rulv_rec.warn_yn := 'N';
5725 lv_rec_populate_check := 'Y';
5726 END IF;
5727
5728 IF (p_st_purchase_of_lease IS NOT NULL) THEN
5729 l_rulv_rec.rule_information8 := p_st_purchase_of_lease;
5730 l_rulv_rec.rgp_id := ln_rgp_id;
5731 l_rulv_rec.dnz_chr_id := p_chr_id;
5732 l_rulv_rec.rule_information_category := 'LAASTX';
5733 l_rulv_rec.std_template_yn := 'N';
5734 l_rulv_rec.warn_yn := 'N';
5735 lv_rec_populate_check := 'Y';
5736 END IF;
5737
5738 IF (p_st_equipment_usage IS NOT NULL) THEN
5739 l_rulv_rec.rule_information9 := p_st_equipment_usage;
5740 l_rulv_rec.rgp_id := ln_rgp_id;
5741 l_rulv_rec.dnz_chr_id := p_chr_id;
5742 l_rulv_rec.rule_information_category := 'LAASTX';
5743 l_rulv_rec.std_template_yn := 'N';
5744 l_rulv_rec.warn_yn := 'N';
5745 lv_rec_populate_check := 'Y';
5746 END IF;
5747
5748 IF (p_st_equipment_age IS NOT NULL) THEN
5749 l_rulv_rec.rule_information10 := p_st_equipment_age;
5750 l_rulv_rec.rgp_id := ln_rgp_id;
5751 l_rulv_rec.dnz_chr_id := p_chr_id;
5752 l_rulv_rec.rule_information_category := 'LAASTX';
5753 l_rulv_rec.std_template_yn := 'N';
5754 l_rulv_rec.warn_yn := 'N';
5755 lv_rec_populate_check := 'Y';
5756 END IF;
5757
5758 IF (p_st_asset_upfront_tax IS NOT NULL) THEN
5759 l_rulv_rec.rule_information11 := p_st_asset_upfront_tax;
5760 l_rulv_rec.rgp_id := ln_rgp_id;
5761 l_rulv_rec.dnz_chr_id := p_chr_id;
5762 l_rulv_rec.rule_information_category := 'LAASTX';
5763 l_rulv_rec.std_template_yn := 'N';
5764 l_rulv_rec.warn_yn := 'N';
5765 lv_rec_populate_check := 'Y';
5766 END IF;
5767
5768 IF (lv_rec_populate_check = 'Y') THEN
5769 IF NOT(l_sales_tax_rule_found) THEN -- 5179119
5770 OKL_RULE_PUB.create_rule(
5771 p_api_version => 1.0,
5772 p_init_msg_list => OKL_API.G_FALSE,
5773 x_return_status => x_return_status,
5774 x_msg_count => x_msg_count,
5775 x_msg_data => x_msg_data,
5776 p_rulv_rec => l_rulv_rec,
5777 x_rulv_rec => x_rulv_rec
5778 );
5779 ELSE
5780 l_rulv_rec.id := l_sales_tax_rule_id;
5781 l_rulv_rec.created_by := OKC_API.G_MISS_NUM;
5782 l_rulv_rec.creation_date := OKC_API.G_MISS_DATE;
5783 OKL_RULE_PUB.update_rule(
5784 p_api_version => 1.0,
5785 p_init_msg_list => OKL_API.G_FALSE,
5786 x_return_status => x_return_status,
5787 x_msg_count => x_msg_count,
5788 x_msg_data => x_msg_data,
5789 p_rulv_rec => l_rulv_rec,
5790 x_rulv_rec => x_rulv_rec
5791 );
5792 END IF;
5793 l_progress := '1.1';
5794 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5795 x_return_status := OKL_API.G_RET_STS_ERROR;
5796 raise line_rule_failed;
5797 END IF;
5798 END IF;
5799
5800 l_rulv_rec := NULL;
5801 lv_rec_populate_check := 'N';
5802 IF (p_vat_tax_exempt IS NOT NULL) THEN
5803
5804 l_rulv_rec.rule_information1 := p_vat_tax_exempt;
5805 l_rulv_rec.rgp_id := ln_rgp_id;
5806 l_rulv_rec.dnz_chr_id := p_chr_id;
5807 l_rulv_rec.rule_information_category := 'LAAVTX';
5808 l_rulv_rec.std_template_yn := 'N';
5809 l_rulv_rec.warn_yn := 'N';
5810 lv_rec_populate_check := 'Y';
5811 END IF;
5812
5813 IF (p_vat_tax_exempt_cert_number IS NOT NULL) THEN
5814
5815 l_rulv_rec.rule_information2 := p_vat_tax_exempt_cert_number;
5816 l_rulv_rec.rgp_id := ln_rgp_id;
5817 l_rulv_rec.dnz_chr_id := p_chr_id;
5818 l_rulv_rec.rule_information_category := 'LAAVTX';
5819 l_rulv_rec.std_template_yn := 'N';
5820 l_rulv_rec.warn_yn := 'N';
5821 lv_rec_populate_check := 'Y';
5822 END IF;
5823
5824 IF (p_vat_tax_override_flag IS NOT NULL) THEN
5825
5826 l_rulv_rec.rule_information3 := p_vat_tax_override_flag;
5827 l_rulv_rec.rgp_id := ln_rgp_id;
5828 l_rulv_rec.dnz_chr_id := p_chr_id;
5829 l_rulv_rec.rule_information_category := 'LAAVTX';
5830 l_rulv_rec.std_template_yn := 'N';
5831 l_rulv_rec.warn_yn := 'N';
5832 lv_rec_populate_check := 'Y';
5833 END IF;
5834
5835 IF (p_vat_tax_override_rate IS NOT NULL) THEN
5836
5837 l_rulv_rec.rule_information4 := p_vat_tax_override_rate;
5838 l_rulv_rec.rgp_id := ln_rgp_id;
5839 l_rulv_rec.dnz_chr_id := p_chr_id;
5840 l_rulv_rec.rule_information_category := 'LAAVTX';
5841 l_rulv_rec.std_template_yn := 'N';
5842 l_rulv_rec.warn_yn := 'N';
5843 lv_rec_populate_check := 'Y';
5844 END IF;
5845
5846 IF (lv_rec_populate_check = 'Y') THEN
5847 OKL_RULE_PUB.create_rule(
5848 p_api_version => 1.0,
5849 p_init_msg_list => OKL_API.G_FALSE,
5850 x_return_status => x_return_status,
5851 x_msg_count => x_msg_count,
5852 x_msg_data => x_msg_data,
5853 p_rulv_rec => l_rulv_rec,
5854 x_rulv_rec => x_rulv_rec
5855 );
5856 l_progress := '1.2';
5857 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5858 x_return_status := OKL_API.G_RET_STS_ERROR;
5859 raise line_rule_failed;
5860 END IF;
5861 END IF;
5862
5863 -- Property Tax
5864 OPEN get_prop_tax_rule_info(p_chr_id => p_chr_id,
5865 p_rgp_id => ln_rgp_id);
5866 FETCH get_prop_tax_rule_info into ln_rule_id;
5867 IF get_prop_tax_rule_info%NOTFOUND THEN
5868 RAISE rule_failed;
5869 END IF;
5870 CLOSE get_prop_tax_rule_info;
5871
5872 IF (p_prop_tax_applicable IS NOT NULL) THEN
5873 lp_rulv_rec.id := ln_rule_id;
5874 lp_rulv_rec.rule_information1 := p_prop_tax_applicable;
5875 lp_rulv_rec.rule_information_category := 'LAPRTX';
5876 END IF;
5877
5878 IF (p_prop_tax_lease_rep IS NOT NULL) THEN
5879 lp_rulv_rec.id := ln_rule_id;
5880 lp_rulv_rec.rule_information2 := p_prop_tax_lease_rep;
5881 lp_rulv_rec.rule_information_category := 'LAPRTX';
5882 END IF;
5883
5884 IF (p_prop_tax_bill_method IS NOT NULL) THEN
5885 lp_rulv_rec.id := ln_rule_id;
5886 lp_rulv_rec.rule_information3 := p_prop_tax_bill_method;
5887 lp_rulv_rec.rule_information_category := 'LAPRTX';
5888 END IF;
5889
5890 IF (p_prop_tax_applicable IS NOT NULL
5891 OR
5892 p_prop_tax_lease_rep IS NOT NULL
5893 OR
5894 p_prop_tax_bill_method IS NOT NULL) THEN -- Bug# 3984890
5895 OKL_RULE_PUB.update_rule(
5896 p_api_version => 1.0,
5897 p_init_msg_list => OKL_API.G_FALSE,
5898 x_return_status => x_return_status,
5899 x_msg_count => x_msg_count,
5900 x_msg_data => x_msg_data,
5901 p_rulv_rec => lp_rulv_rec,
5902 x_rulv_rec => xp_rulv_rec
5903 );
5904 l_progress := '1.3';
5905 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5906 x_return_status := OKL_API.G_RET_STS_ERROR;
5907 raise line_rule_failed;
5908 END IF;
5909
5910 END IF;
5911
5912 l_rulv_rec := NULL;
5913 lv_rec_populate_check := 'N';
5914
5915 -- 'LAASTK' Rule
5916 IF (p_prop_tax_as_contract_yn IS NOT NULL) THEN
5917 l_rulv_rec.rgp_id := ln_rgp_id;
5918 l_rulv_rec.dnz_chr_id := p_chr_id;
5919 l_rulv_rec.rule_information1 := p_prop_tax_as_contract_yn;
5920 l_rulv_rec.rule_information_category := 'LAASTK';
5921 l_rulv_rec.std_template_yn := 'N';
5922 l_rulv_rec.warn_yn := 'N';
5923 lv_rec_populate_check := 'Y';
5924 END IF;
5925
5926 IF (lv_rec_populate_check = 'Y') THEN
5927 OKL_RULE_PUB.create_rule(
5928 p_api_version => 1.0,
5929 p_init_msg_list => OKL_API.G_FALSE,
5930 x_return_status => x_return_status,
5931 x_msg_count => x_msg_count,
5932 x_msg_data => x_msg_data,
5933 p_rulv_rec => l_rulv_rec,
5934 x_rulv_rec => x_rulv_rec
5935 );
5936 l_progress := '1.4';
5937 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5938 x_return_status := OKL_API.G_RET_STS_ERROR;
5939 raise line_rule_failed;
5940 END IF;
5941 END IF;
5942
5943 l_rulv_rec := NULL;
5944 lv_rec_populate_check := 'N';
5945
5946 IF (p_french_tax_code IS NOT NULL
5947 OR
5948 p_french_tax_name IS NOT NULL) THEN
5949
5950 OPEN french_tax_csr (p_french_tax_code,
5951 p_french_tax_name);
5952 FETCH french_tax_csr INTO l_french_tax_code;
5953 IF french_tax_csr%NOTFOUND THEN
5954 okl_api.set_message(
5955 G_APP_NAME,
5956 G_INVALID_VALUE,
5957 'CONTRACT_NUM',
5958 p_contract_number||'/'||p_line_number,
5959 'COL_NAME',
5960 'FRENCH_TAX_CODE, NAME',
5961 'COL_VALUE',
5962 p_french_tax_code||', '||p_french_tax_name
5963 );
5964
5965 raise line_rule_failed;
5966 END IF;
5967 CLOSE french_tax_csr;
5968 END IF;
5969
5970 IF (l_french_tax_code IS NOT NULL) THEN
5971 l_rulv_rec.rgp_id := ln_rgp_id;
5972 l_rulv_rec.dnz_chr_id := p_chr_id;
5973 l_rulv_rec.rule_information1 := l_french_tax_code;
5974 l_rulv_rec.rule_information_category := 'LATAXP';
5975 l_rulv_rec.std_template_yn := 'N';
5976 l_rulv_rec.warn_yn := 'N';
5977 lv_rec_populate_check := 'Y';
5978 END IF;
5979
5980 IF (lv_rec_populate_check = 'Y') THEN
5981 OKL_RULE_PUB.create_rule(
5982 p_api_version => 1.0,
5983 p_init_msg_list => OKL_API.G_FALSE,
5984 x_return_status => x_return_status,
5985 x_msg_count => x_msg_count,
5986 x_msg_data => x_msg_data,
5987 p_rulv_rec => l_rulv_rec,
5988 x_rulv_rec => x_rulv_rec
5989 );
5990 l_progress := '1.5';
5991 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5992 x_return_status := OKL_API.G_RET_STS_ERROR;
5993 raise line_rule_failed;
5994 END IF;
5995 END IF;
5996
5997 RETURN;
5998
5999 EXCEPTION
6000 WHEN line_rule_failed THEN
6001 x_return_status := OKL_API.G_RET_STS_ERROR;
6002 debug_message('Line rule failed : '||l_progress);
6003
6004 WHEN rule_group_failed THEN
6005 IF get_rule_group_info%ISOPEN THEN
6006 CLOSE get_rule_group_info;
6007 END IF;
6008 x_return_status := OKL_API.G_RET_STS_ERROR;
6009
6010 WHEN rule_failed THEN
6011 IF get_prop_tax_rule_info%ISOPEN THEN
6012 CLOSE get_prop_tax_rule_info;
6013 END IF;
6014 x_return_status := OKL_API.G_RET_STS_ERROR;
6015
6016 WHEN OTHERS THEN
6017 okl_api.set_message(
6018 G_APP_NAME,
6019 G_UNEXPECTED_ERROR,
6020 'OKL_SQLCODE',
6021 SQLCODE,
6022 'OKL_SQLERRM',
6023 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
6024 );
6025
6026 x_return_status := OKL_API.G_RET_STS_ERROR;
6027 debug_message('line other : '||l_progress);
6028 END create_update_asset_rules;
6029
6030 ------------------------------------------------------------------------------
6031 -- PROCEDURE create_line_rules
6032 -- It creates rules for line records and
6033 -- stacks Error, if any, and returns ERROR status to calling process.
6034 -- Calls:
6035 -- get_party_id
6036 -- Called By:
6037 -- load_input_record
6038 ------------------------------------------------------------------------------
6039
6040 PROCEDURE create_line_rules(
6041 x_return_status OUT NOCOPY VARCHAR2,
6042 x_msg_count OUT NOCOPY NUMBER,
6043 x_msg_data OUT NOCOPY VARCHAR2,
6044 p_chr_id IN okc_k_headers_v.id%TYPE,
6045 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
6046 p_cle_id IN okl_k_lines_v.id%TYPE,
6047 p_line_number IN okc_k_lines_v.line_number%TYPE,
6048 p_line_type IN okl_lines_interface.line_type%TYPE,
6049 p_inv_org_id IN okl_lines_interface.inventory_organization_id%TYPE,
6050 p_sales_tax_exempt_flag IN okl_lines_interface.sales_tax_exempt_flag%TYPE,
6051 p_sales_tax_exempt_cert_number IN okl_lines_interface.sales_tax_exempt_cert_number%TYPE,
6052 p_sales_tax_override_flag IN okl_lines_interface.sales_tax_override_flag%TYPE,
6053 p_sales_tax_override_rate IN okl_lines_interface.sales_tax_override_rate%TYPE,
6054 p_st_upd_lines_from_contract IN okl_lines_interface.st_update_lines_from_contract%TYPE,
6055 p_st_transfer_of_title IN okl_lines_interface.st_transfer_of_title%TYPE,
6056 p_st_sale_and_lease_back IN okl_lines_interface.st_sale_and_lease_back%TYPE,
6057 p_st_purchase_of_lease IN okl_lines_interface.st_purchase_of_lease%TYPE,
6058 p_st_equipment_usage IN okl_lines_interface.st_equipment_usage%TYPE,
6059 p_st_equipment_age IN okl_lines_interface.st_equipment_age%TYPE,
6060 p_st_asset_upfront_tax IN okl_lines_interface.st_asset_upfront_tax%TYPE,
6061 p_vat_tax_exempt IN okl_lines_interface.vat_tax_exempt%TYPE,
6062 p_vat_tax_exempt_cert_number IN okl_lines_interface.vat_tax_exempt_cert_number%TYPE,
6063 p_vat_tax_override_flag IN okl_lines_interface.vat_tax_override_flag%TYPE,
6064 p_vat_tax_override_rate IN okl_lines_interface.vat_tax_override_rate%TYPE,
6065 p_lien_type IN okl_lines_interface.lien_type%TYPE,
6066 p_lien_filing_number IN okl_lines_interface.lien_filing_number%TYPE,
6067 p_lien_filing_date IN okl_lines_interface.lien_filing_date%TYPE,
6068 p_lien_filing_status IN okl_lines_interface.lien_filing_status%TYPE,
6069 p_lienholder_id IN okl_lines_interface.lienholder_id%TYPE,
6070 p_lienholder_number IN okl_lines_interface.lienholder_number%TYPE,
6071 p_filing_jurisdiction IN okl_lines_interface.filing_jurisdiction%TYPE,
6072 p_filing_sub_jurisdiction IN okl_lines_interface.filing_sub_jurisdiction%TYPE,
6073 p_lien_expiration_date IN okl_lines_interface.lien_expiration_date%TYPE,
6074 p_lien_continuation_number IN okl_lines_interface.lien_continuation_number%TYPE,
6075 p_lien_continuation_date IN okl_lines_interface.lien_continuation_date%TYPE,
6076 p_title_type IN okl_lines_interface.title_type%TYPE,
6077 p_title_issuer_number IN okl_lines_interface.title_issuer_number%TYPE,
6078 p_title_issuer_id IN okl_lines_interface.title_issuer_id%TYPE,
6079 p_title_date IN okl_lines_interface.title_date%TYPE,
6080 p_title_number IN okl_lines_interface.title_number%TYPE,
6081 p_registration_number IN okl_lines_interface.registration_number%TYPE,
6082 p_asset_registration_loc_name IN okl_lines_interface.asset_registration_loc_name%TYPE,
6083 p_title_custodian_name IN okl_lines_interface.title_custodian_name%TYPE,
6084 p_payee_site_name IN okl_lines_interface.payee_site_name%TYPE,
6085 p_passthrough_percent IN okl_lines_interface.passthrough_percent%TYPE,
6086 p_passthrough_basis_code IN okl_lines_interface.passthrough_basis_code%TYPE,
6087 p_fee_code IN okl_lines_interface.fee_code%TYPE,
6088 p_stream_purpose IN okl_lines_interface.stream_purpose_code%TYPE,
6089 p_usage_item_name IN okl_lines_interface.usage_item_name%TYPE,
6090 p_usage_item_id IN okl_lines_interface.usage_item_id%TYPE,
6091 p_price_list_name IN okl_lines_interface.price_list_name%TYPE,
6092 p_price_list_id IN okl_lines_interface.price_list_id%TYPE,
6093 p_minimum_qty_usage IN okl_lines_interface.minimum_qty_usage%TYPE,
6094 p_default_qty_usage IN okl_lines_interface.default_qty_usage%TYPE,
6095 p_amcv_flag IN okl_lines_interface.amcv_flag%TYPE,
6096 p_level_flag IN okl_lines_interface.level_flag%TYPE,
6097 p_base_reading IN okl_lines_interface.base_reading%TYPE,
6098 p_base_reading_uom_code IN okl_lines_interface.base_reading_uom_code%TYPE,
6099 p_usage_type_code IN okl_lines_interface.usage_type_code%TYPE,
6100 p_fixed_usage_quantity IN okl_lines_interface.fixed_usage_quantity%TYPE,
6101 p_usage_period IN okl_lines_interface.usage_period%TYPE,
6102 p_usage_no_of_period IN okl_lines_interface.usage_no_of_period%TYPE,
6103 p_fee_no_of_period IN okl_lines_interface.fee_exp_no_of_periods%TYPE,
6104 p_fee_frequency IN okl_lines_interface.fee_exp_frequency%TYPE,
6105 p_fee_amount_per_period IN okl_lines_interface.fee_exp_amount_per_period%TYPE,
6106 p_prop_tax_applicable IN okl_lines_interface.prop_tax_applicable%TYPE,
6107 p_prop_tax_lease_rep IN okl_lines_interface.prop_tax_lease_rep%TYPE,
6108 p_french_tax_code IN okl_lines_interface.french_tax_code%TYPE,
6109 p_french_tax_name IN okl_lines_interface.french_tax_name%TYPE,
6110 -- Added by rravikir (Fix for Bug 3947959)
6111 p_prop_tax_bill_method IN okl_lines_interface.prop_tax_bill_method%TYPE,
6112 p_prop_tax_as_contract_yn IN okl_lines_interface.prop_tax_as_contract_yn%TYPE
6113 -- End
6114 ) IS
6115
6116 line_rule_failed EXCEPTION;
6117 l_proc_name VARCHAR2(35) := 'CREATE_LINE_RULES';
6118
6119 x_lienholder_id NUMBER := NULL;
6120 x_title_issuer_id NUMBER := NULL;
6121 l_rgp_id NUMBER;
6122 x_usage_item_id okx_system_items_v.id1%TYPE;
6123 x_usage_id2 okx_system_items_v.id2%TYPE;
6124 x_base_uom_id okx_tuom_v.id1%TYPE;
6125 x_price_list_id okx_list_headers_v.id1%TYPE;
6126 x_stream_id okl_strmtyp_source_v.id1%TYPE;
6127 l_payment_term_id okx_payables_terms_v.id1%TYPE;
6128 l_vendor_paysite_id okx_vendor_sites_v.id1%TYPE;
6129 l_freq_id okl_time_units_v.id1%TYPE;
6130
6131 CURSOR freq_csr (p_frequency VARCHAR2) IS
6132 SELECT id1
6133 FROM okl_time_units_v
6134 WHERE name = p_frequency
6135 AND status = 'A'
6136 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE)) AND
6137 NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
6138 -- Rule Rec
6139 x_rgpv_rec rgpv_rec_type;
6140 l_rgpv_rec rgpv_rec_type;
6141
6142 l_rulv_rec rulv_rec_type;
6143 x_rulv_rec rulv_rec_type;
6144
6145 l_progress VARCHAR2(10) := '1.0';
6146 l_french_tax_code OKL_FRENCH_TAX_V.CODE%TYPE;
6147
6148 CURSOR french_tax_csr (p_tax_code okl_french_tax_v.code%TYPE,
6149 p_tax_name okl_french_tax_v.name%TYPE) IS
6150 SELECT code
6151 FROM okl_french_tax_v
6152 WHERE ( code = p_tax_code
6153 AND
6154 p_tax_code IS NOT NULL)
6155 OR ( name = p_tax_name
6156 AND
6157 p_tax_name IS NOT NULL)
6158 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date), TRUNC(SYSDATE))
6159 AND NVL(TRUNC(end_date), TRUNC(SYSDATE));
6160
6161 l_ok VARCHAR2(1) := '?';
6162 CURSOR usage_type_csr (p_usage_type VARCHAR2) IS
6163 SELECT 'Y'
6164 FROM fnd_lookups
6165 WHERE lookup_type = 'OKS_USAGE_TYPE'
6166 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE)) AND
6167 NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
6168
6169 -- Added by rravikir (Fix for Bug 3947959)
6170 lv_asset_default okl_property_tax_setups.enable_asset_default%TYPE;
6171 CURSOR get_est_prop_tax_info(p_chr_id okc_k_headers_b.id%TYPE) IS
6172 SELECT enable_asset_default
6173 FROM okl_property_tax_setups
6174 WHERE org_id = (SELECT authoring_org_id
6175 FROM okc_k_headers_b
6176 WHERE id = p_chr_id);
6177 -- End
6178
6179 l_present_yn VARCHAR2(1);
6180 l_service_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
6181
6182 -- 5179119
6183 CURSOR get_sales_tax_rgp_info(p_chr_id okc_k_headers_b.id%TYPE,
6184 p_cle_id okc_k_lines_v.id%TYPE) IS
6185 SELECT rgp.id
6186 FROM okc_rule_groups_v rgp
6187 WHERE rgp.dnz_chr_id = p_chr_id
6188 AND rgp.cle_id = p_cle_id
6189 AND rgp.rgd_code = 'LAASTX'
6190 AND rgp.rgp_type = 'KRG';
6191
6192 CURSOR get_sales_tax_rule_info(p_chr_id okc_k_headers_b.id%TYPE,
6193 p_rgp_id okc_k_lines_v.id%TYPE) IS
6194 SELECT rule.id
6195 FROM okc_rules_v rule
6196 WHERE rule.dnz_chr_id = p_chr_id
6197 AND rule.rgp_id = p_rgp_id
6198 AND rule.rule_information_category = 'LAASTX';
6199
6200 l_sales_tax_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
6201 l_sales_tax_rule_id OKC_RULES_V.ID%TYPE;
6202 l_sales_tax_rgp_found BOOLEAN;
6203 l_sales_tax_rule_found BOOLEAN;
6204 l_create_rule_group BOOLEAN;
6205 -- 5179119
6206 l_rgp_count NUMBER; --AKP
6207 l_rul_count NUMBER;
6208
6209 BEGIN
6210 x_return_status := OKL_API.G_RET_STS_SUCCESS;
6211 --debug_message('AKP:In create_line_rules.. p_cle_id=' || p_cle_id);
6212
6213 l_rulv_rec := NULL; -- DDEY
6214
6215 -- Added by rravikir (Fix for Bug 3947959)
6216 OPEN get_est_prop_tax_info(p_chr_id => p_chr_id);
6217 FETCH get_est_prop_tax_info into lv_asset_default;
6218 CLOSE get_est_prop_tax_info;
6219 -- End
6220
6221 IF (p_line_type = 'ASSET') THEN
6222 -- Added by rravikir (Fix for Bug 3947959)
6223 IF (lv_asset_default IS NOT NULL AND lv_asset_default = 'YES') THEN
6224 create_update_asset_rules(
6225 x_return_status => x_return_status,
6226 x_msg_count => x_msg_count,
6227 x_msg_data => x_msg_data,
6228 p_chr_id => p_chr_id,
6229 p_cle_id => p_cle_id,
6230 p_contract_number => p_contract_number,
6231 p_line_number => p_line_number,
6232 p_line_type => p_line_type,
6233 p_inv_org_id => p_inv_org_id,
6234 p_sales_tax_exempt_flag => p_sales_tax_exempt_flag,
6235 p_sales_tax_exempt_cert_number => p_sales_tax_exempt_cert_number,
6236 p_sales_tax_override_flag => p_sales_tax_override_flag,
6237 p_sales_tax_override_rate => p_sales_tax_override_rate,
6238 p_st_upd_lines_from_contract => p_st_upd_lines_from_contract,
6239 p_st_transfer_of_title => p_st_transfer_of_title,
6240 p_st_sale_and_lease_back => p_st_sale_and_lease_back,
6241 p_st_purchase_of_lease => p_st_purchase_of_lease,
6242 p_st_equipment_usage => p_st_equipment_usage,
6243 p_st_equipment_age => p_st_equipment_age,
6244 p_st_asset_upfront_tax => p_st_asset_upfront_tax,
6245 p_vat_tax_exempt => p_vat_tax_exempt,
6246 p_vat_tax_exempt_cert_number => p_vat_tax_exempt_cert_number,
6247 p_vat_tax_override_flag => p_vat_tax_override_flag,
6248 p_vat_tax_override_rate => p_vat_tax_override_rate,
6249 p_prop_tax_applicable => p_prop_tax_applicable,
6250 p_prop_tax_lease_rep => p_prop_tax_lease_rep,
6251 p_french_tax_code => p_french_tax_code,
6252 p_french_tax_name => p_french_tax_name,
6253 p_prop_tax_bill_method => p_prop_tax_bill_method,
6254 p_prop_tax_as_contract_yn => p_prop_tax_as_contract_yn);
6255 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6256 raise line_rule_failed;
6257 END IF;
6258 ELSE
6259 -- End
6260
6261 debug_message('***** > Else of estimated prop tax');
6262
6263 -- 5179119
6264 OPEN get_sales_tax_rgp_info(p_chr_id, p_cle_id);
6265 FETCH get_sales_tax_rgp_info into l_sales_tax_rgp_id;
6266 IF get_sales_tax_rgp_info%NOTFOUND THEN
6267 l_sales_tax_rgp_found := FALSE;
6268 ELSE
6269 l_sales_tax_rgp_found := TRUE;
6270 END IF;
6271 CLOSE get_sales_tax_rgp_info;
6272
6273 OPEN get_sales_tax_rule_info(p_chr_id => p_chr_id,
6274 p_rgp_id => l_sales_tax_rgp_id);
6275 FETCH get_sales_tax_rule_info into l_sales_tax_rule_id;
6276 IF get_sales_tax_rule_info%NOTFOUND THEN
6277 l_sales_tax_rule_found := FALSE;
6278 ELSE
6279 l_sales_tax_rule_found := TRUE;
6280 END IF;
6281 CLOSE get_sales_tax_rule_info;
6282
6283 -- Rule Group LAASTX
6284 l_rgpv_rec := NULL;
6285 l_rgp_id := NULL;
6286 l_rgpv_rec.rgd_code := 'LAASTX';
6287 l_rgpv_rec.chr_id := NULL;
6288 l_rgpv_rec.dnz_chr_id := p_chr_id;
6289 l_rgpv_rec.cle_id := p_cle_id;
6290 l_rgpv_rec.rgp_type := 'KRG';
6291
6292 l_create_rule_group := FALSE;
6293 IF (p_sales_tax_exempt_flag IS NOT NULL) THEN
6294
6295 l_rulv_rec.rule_information1 := p_sales_tax_exempt_flag;
6296 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6297 l_rulv_rec.dnz_chr_id := p_chr_id;
6298 l_rulv_rec.rule_information_category := 'LAASTX';
6299 l_rulv_rec.std_template_yn := 'N';
6300 l_rulv_rec.warn_yn := 'N';
6301 l_create_rule_group := TRUE;
6302 END IF;
6303
6304 IF (p_sales_tax_exempt_cert_number IS NOT NULL) THEN
6305
6306 l_rulv_rec.rule_information2 := p_sales_tax_exempt_cert_number;
6307 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6308 l_rulv_rec.dnz_chr_id := p_chr_id;
6309 l_rulv_rec.rule_information_category := 'LAASTX';
6310 l_rulv_rec.std_template_yn := 'N';
6311 l_rulv_rec.warn_yn := 'N';
6312 l_create_rule_group := TRUE;
6313
6314 END IF;
6315
6316 IF (p_sales_tax_override_flag IS NOT NULL) THEN
6317
6318 l_rulv_rec.rule_information3 := p_sales_tax_override_flag;
6319 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6320 l_rulv_rec.dnz_chr_id := p_chr_id;
6321 l_rulv_rec.rule_information_category := 'LAASTX';
6322 l_rulv_rec.std_template_yn := 'N';
6323 l_rulv_rec.warn_yn := 'N';
6324 l_create_rule_group := TRUE;
6325
6326 END IF;
6327
6328 IF (p_sales_tax_override_rate IS NOT NULL) THEN
6329
6330 l_rulv_rec.rule_information4 := p_sales_tax_override_rate;
6331 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6332 l_rulv_rec.dnz_chr_id := p_chr_id;
6333 l_rulv_rec.rule_information_category := 'LAASTX';
6334 l_rulv_rec.std_template_yn := 'N';
6335 l_rulv_rec.warn_yn := 'N';
6336 l_create_rule_group := TRUE;
6337
6338 END IF;
6339
6340 IF (p_st_upd_lines_from_contract IS NOT NULL) THEN
6341
6342 l_rulv_rec.rule_information5 := p_st_upd_lines_from_contract;
6343 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6344 l_rulv_rec.dnz_chr_id := p_chr_id;
6345 l_rulv_rec.rule_information_category := 'LAASTX';
6346 l_rulv_rec.std_template_yn := 'N';
6347 l_rulv_rec.warn_yn := 'N';
6348 l_create_rule_group := TRUE;
6349
6350 END IF;
6351
6352 IF (p_st_transfer_of_title IS NOT NULL) THEN
6353
6354 l_rulv_rec.rule_information6 := p_st_transfer_of_title;
6355 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6356 l_rulv_rec.dnz_chr_id := p_chr_id;
6357 l_rulv_rec.rule_information_category := 'LAASTX';
6358 l_rulv_rec.std_template_yn := 'N';
6359 l_rulv_rec.warn_yn := 'N';
6360 l_create_rule_group := TRUE;
6361
6362 END IF;
6363
6364 IF (p_st_sale_and_lease_back IS NOT NULL) THEN
6365
6366 l_rulv_rec.rule_information7 := p_st_sale_and_lease_back;
6367 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6368 l_rulv_rec.dnz_chr_id := p_chr_id;
6369 l_rulv_rec.rule_information_category := 'LAASTX';
6370 l_rulv_rec.std_template_yn := 'N';
6371 l_rulv_rec.warn_yn := 'N';
6372 l_create_rule_group := TRUE;
6373
6374 END IF;
6375
6376 IF (p_st_purchase_of_lease IS NOT NULL) THEN
6377
6378 l_rulv_rec.rule_information8 := p_st_purchase_of_lease;
6379 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6380 l_rulv_rec.dnz_chr_id := p_chr_id;
6381 l_rulv_rec.rule_information_category := 'LAASTX';
6382 l_rulv_rec.std_template_yn := 'N';
6383 l_rulv_rec.warn_yn := 'N';
6384 l_create_rule_group := TRUE;
6385
6386 END IF;
6387
6388 IF (p_st_equipment_usage IS NOT NULL) THEN
6389
6390 l_rulv_rec.rule_information9 := p_st_equipment_usage ;
6391 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6392 l_rulv_rec.dnz_chr_id := p_chr_id;
6393 l_rulv_rec.rule_information_category := 'LAASTX';
6394 l_rulv_rec.std_template_yn := 'N';
6395 l_rulv_rec.warn_yn := 'N';
6396 l_create_rule_group := TRUE;
6397
6398 END IF;
6399
6400 IF (p_st_equipment_age IS NOT NULL) THEN
6401
6402 l_rulv_rec.rule_information10 := p_st_equipment_age;
6403 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6404 l_rulv_rec.dnz_chr_id := p_chr_id;
6405 l_rulv_rec.rule_information_category := 'LAASTX';
6406 l_rulv_rec.std_template_yn := 'N';
6407 l_rulv_rec.warn_yn := 'N';
6408 l_create_rule_group := TRUE;
6409
6410 END IF;
6411
6412 IF (p_st_asset_upfront_tax IS NOT NULL) THEN
6413
6414 l_rulv_rec.rule_information11 := p_st_asset_upfront_tax;
6415 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6416 l_rulv_rec.dnz_chr_id := p_chr_id;
6417 l_rulv_rec.rule_information_category := 'LAASTX';
6418 l_rulv_rec.std_template_yn := 'N';
6419 l_rulv_rec.warn_yn := 'N';
6420 l_create_rule_group := TRUE;
6421
6422 END IF;
6423
6424 IF (l_create_rule_group) THEN
6425 IF NOT(l_sales_tax_rgp_found) THEN -- 5179119
6426 create_rule_group_and_rule(
6427 x_return_status => x_return_status,
6428 x_msg_count => x_msg_count,
6429 x_msg_data => x_msg_data,
6430 p_rgp_id => l_rgp_id,
6431 p_rgpv_rec => l_rgpv_rec,
6432 p_rulv_rec => l_rulv_rec,
6433 x_rgpv_rec => x_rgpv_rec,
6434 x_rulv_rec => x_rulv_rec
6435 );
6436 ELSE
6437 l_rgp_id := l_sales_tax_rgp_id;
6438 l_rulv_rec.rgp_id := l_sales_tax_rgp_id;
6439 IF NOT(l_sales_tax_rule_found) THEN
6440 OKL_RULE_PUB.create_rule(
6441 p_api_version => 1.0,
6442 p_init_msg_list => OKL_API.G_FALSE,
6443 x_return_status => x_return_status,
6444 x_msg_count => x_msg_count,
6445 x_msg_data => x_msg_data,
6446 p_rulv_rec => l_rulv_rec,
6447 x_rulv_rec => x_rulv_rec
6448 );
6449 ELSE
6450 l_rulv_rec.id := l_sales_tax_rule_id;
6451 l_rulv_rec.created_by := OKC_API.G_MISS_NUM;
6452 l_rulv_rec.creation_date := OKC_API.G_MISS_DATE;
6453 OKL_RULE_PUB.update_rule(
6454 p_api_version => 1.0,
6455 p_init_msg_list => OKL_API.G_FALSE,
6456 x_return_status => x_return_status,
6457 x_msg_count => x_msg_count,
6458 x_msg_data => x_msg_data,
6459 p_rulv_rec => l_rulv_rec,
6460 x_rulv_rec => x_rulv_rec
6461 );
6462 END IF;
6463 END IF;
6464 END IF;
6465
6466 l_progress := '1.1';
6467 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6468 raise line_rule_failed;
6469 END IF;
6470
6471 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6472 l_rgp_id := x_rgpv_rec.id;
6473 END IF;
6474
6475 l_rulv_rec := NULL;
6476 IF (p_vat_tax_exempt IS NOT NULL) THEN
6477
6478 l_rulv_rec.rule_information1 := p_vat_tax_exempt;
6479 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6480 l_rulv_rec.dnz_chr_id := p_chr_id;
6481 l_rulv_rec.rule_information_category := 'LAAVTX';
6482 l_rulv_rec.std_template_yn := 'N';
6483 l_rulv_rec.warn_yn := 'N';
6484
6485 END IF;
6486
6487 IF (p_vat_tax_exempt_cert_number IS NOT NULL) THEN
6488
6489 l_rulv_rec.rule_information2 := p_vat_tax_exempt_cert_number;
6490 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6491 l_rulv_rec.dnz_chr_id := p_chr_id;
6492 l_rulv_rec.rule_information_category := 'LAAVTX';
6493 l_rulv_rec.std_template_yn := 'N';
6494 l_rulv_rec.warn_yn := 'N';
6495
6496 END IF;
6497
6498 IF (p_vat_tax_override_flag IS NOT NULL) THEN
6499
6500 l_rulv_rec.rule_information3 := p_vat_tax_override_flag;
6501 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6502 l_rulv_rec.dnz_chr_id := p_chr_id;
6503 l_rulv_rec.rule_information_category := 'LAAVTX';
6504 l_rulv_rec.std_template_yn := 'N';
6505 l_rulv_rec.warn_yn := 'N';
6506
6507 END IF;
6508
6509 IF (p_vat_tax_override_rate IS NOT NULL) THEN
6510
6511 l_rulv_rec.rule_information4 := p_vat_tax_override_rate;
6512 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6513 l_rulv_rec.dnz_chr_id := p_chr_id;
6514 l_rulv_rec.rule_information_category := 'LAAVTX';
6515 l_rulv_rec.std_template_yn := 'N';
6516 l_rulv_rec.warn_yn := 'N';
6517
6518 END IF;
6519
6520 create_rule_group_and_rule(
6521 x_return_status => x_return_status,
6522 x_msg_count => x_msg_count,
6523 x_msg_data => x_msg_data,
6524 p_rgp_id => l_rgp_id,
6525 p_rgpv_rec => l_rgpv_rec,
6526 p_rulv_rec => l_rulv_rec,
6527 x_rgpv_rec => x_rgpv_rec,
6528 x_rulv_rec => x_rulv_rec
6529 );
6530
6531 l_progress := '1.2';
6532 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6533 raise line_rule_failed;
6534 END IF;
6535
6536 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6537 l_rgp_id := x_rgpv_rec.id;
6538 END IF;
6539
6540 l_rulv_rec := NULL;
6541
6542 -- Property Tax
6543 IF (p_prop_tax_applicable IS NOT NULL) THEN
6544 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6545 l_rulv_rec.dnz_chr_id := p_chr_id;
6546 l_rulv_rec.rule_information1 := p_prop_tax_applicable;
6547 l_rulv_rec.rule_information_category := 'LAPRTX';
6548 l_rulv_rec.std_template_yn := 'N';
6549 l_rulv_rec.warn_yn := 'N';
6550 END IF;
6551
6552 IF (p_prop_tax_lease_rep IS NOT NULL) THEN
6553 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6554 l_rulv_rec.dnz_chr_id := p_chr_id;
6555 l_rulv_rec.rule_information2 := p_prop_tax_lease_rep;
6556 l_rulv_rec.rule_information_category := 'LAPRTX';
6557 l_rulv_rec.std_template_yn := 'N';
6558 l_rulv_rec.warn_yn := 'N';
6559 END IF;
6560
6561 -- Added by rravikir (Fix for Bug 3947959)
6562 IF (p_prop_tax_bill_method IS NOT NULL) THEN
6563 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6564 l_rulv_rec.dnz_chr_id := p_chr_id;
6565 l_rulv_rec.rule_information3 := p_prop_tax_bill_method;
6566 l_rulv_rec.rule_information_category := 'LAPRTX';
6567 l_rulv_rec.std_template_yn := 'N';
6568 l_rulv_rec.warn_yn := 'N';
6569 END IF;
6570 -- End
6571
6572 create_rule_group_and_rule(
6573 x_return_status => x_return_status,
6574 x_msg_count => x_msg_count,
6575 x_msg_data => x_msg_data,
6576 p_rgp_id => l_rgp_id,
6577 p_rgpv_rec => l_rgpv_rec,
6578 p_rulv_rec => l_rulv_rec,
6579 x_rgpv_rec => x_rgpv_rec,
6580 x_rulv_rec => x_rulv_rec
6581 );
6582
6583 l_progress := '1.2';
6584 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6585 raise line_rule_failed;
6586 END IF;
6587
6588 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6589 l_rgp_id := x_rgpv_rec.id;
6590 END IF;
6591
6592 l_rulv_rec := NULL;
6593
6594 -- Added by rravikir (Fix for Bug 3947959) (Creation of 'LAASTK' rule)
6595 IF (p_prop_tax_as_contract_yn IS NOT NULL) THEN
6596 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6597 l_rulv_rec.dnz_chr_id := p_chr_id;
6598 l_rulv_rec.rule_information1 := p_prop_tax_as_contract_yn;
6599 l_rulv_rec.rule_information_category := 'LAASTK';
6600 l_rulv_rec.std_template_yn := 'N';
6601 l_rulv_rec.warn_yn := 'N';
6602 END IF;
6603
6604 create_rule_group_and_rule(
6605 x_return_status => x_return_status,
6606 x_msg_count => x_msg_count,
6607 x_msg_data => x_msg_data,
6608 p_rgp_id => l_rgp_id,
6609 p_rgpv_rec => l_rgpv_rec,
6610 p_rulv_rec => l_rulv_rec,
6611 x_rgpv_rec => x_rgpv_rec,
6612 x_rulv_rec => x_rulv_rec
6613 );
6614
6615 l_progress := '1.2';
6616 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6617 raise line_rule_failed;
6618 END IF;
6619
6620 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6621 l_rgp_id := x_rgpv_rec.id;
6622 END IF;
6623
6624 l_rulv_rec := NULL;
6625 -- End
6626
6627 IF (p_french_tax_code IS NOT NULL
6628 OR
6629 p_french_tax_name IS NOT NULL) THEN
6630
6631 OPEN french_tax_csr (p_french_tax_code,
6632 p_french_tax_name);
6633 FETCH french_tax_csr INTO l_french_tax_code;
6634 IF french_tax_csr%NOTFOUND THEN
6635 okl_api.set_message(
6636 G_APP_NAME,
6637 G_INVALID_VALUE,
6638 'CONTRACT_NUM',
6639 p_contract_number||'/'||p_line_number,
6640 'COL_NAME',
6641 'FRENCH_TAX_CODE, NAME',
6642 'COL_VALUE',
6643 p_french_tax_code||', '||p_french_tax_name
6644 );
6645
6646 raise line_rule_failed;
6647 END IF;
6648
6649 CLOSE french_tax_csr;
6650
6651 END IF;
6652
6653 IF (l_french_tax_code IS NOT NULL) THEN
6654 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6655 l_rulv_rec.dnz_chr_id := p_chr_id;
6656 l_rulv_rec.rule_information1 := l_french_tax_code;
6657 l_rulv_rec.rule_information_category := 'LATAXP';
6658 l_rulv_rec.std_template_yn := 'N';
6659 l_rulv_rec.warn_yn := 'N';
6660 END IF;
6661
6662 create_rule_group_and_rule(
6663 x_return_status => x_return_status,
6664 x_msg_count => x_msg_count,
6665 x_msg_data => x_msg_data,
6666 p_rgp_id => l_rgp_id,
6667 p_rgpv_rec => l_rgpv_rec,
6668 p_rulv_rec => l_rulv_rec,
6669 x_rgpv_rec => x_rgpv_rec,
6670 x_rulv_rec => x_rulv_rec
6671 );
6672
6673 l_progress := '1.2';
6674 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6675 raise line_rule_failed;
6676 END IF;
6677
6678 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6679 l_rgp_id := x_rgpv_rec.id;
6680 END IF;
6681 -- Added by rravikir (Fix for Bug 3947959)
6682 END IF;
6683 -- End
6684
6685 debug_message('***** > After estimated prop tax');
6686
6687 -- Rule Group LAAFLG
6688 l_rgpv_rec := NULL;
6689 l_rgp_id := NULL;
6690 l_rgpv_rec.rgd_code := 'LAAFLG';
6691 l_rgpv_rec.chr_id := NULL;
6692 l_rgpv_rec.dnz_chr_id := p_chr_id;
6693 l_rgpv_rec.cle_id := p_cle_id;
6694 l_rgpv_rec.rgp_type := 'KRG';
6695
6696 l_rulv_rec := NULL;
6697 IF (p_lien_type IS NOT NULL) THEN
6698 l_rulv_rec.rule_information1 := p_lien_type;
6699 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6700 l_rulv_rec.dnz_chr_id := p_chr_id;
6701 l_rulv_rec.rule_information_category := 'LAFLLN';
6702 l_rulv_rec.std_template_yn := 'N';
6703 l_rulv_rec.warn_yn := 'N';
6704 END IF;
6705
6706 IF (p_lien_filing_number IS NOT NULL) THEN
6707 l_rulv_rec.rule_information2 := p_lien_filing_number;
6708 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6709 l_rulv_rec.dnz_chr_id := p_chr_id;
6710 l_rulv_rec.rule_information_category := 'LAFLLN';
6711 l_rulv_rec.std_template_yn := 'N';
6712 l_rulv_rec.warn_yn := 'N';
6713 END IF;
6714
6715 IF (p_lien_filing_date IS NOT NULL) THEN
6716 l_rulv_rec.rule_information3 := TO_CHAR(p_lien_filing_date);
6717 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6718 l_rulv_rec.dnz_chr_id := p_chr_id;
6719 l_rulv_rec.rule_information_category := 'LAFLLN';
6720 l_rulv_rec.std_template_yn := 'N';
6721 l_rulv_rec.warn_yn := 'N';
6722 END IF;
6723
6724 IF (p_lien_filing_status IS NOT NULL) THEN
6725 l_rulv_rec.rule_information4 := p_lien_filing_status;
6726 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6727 l_rulv_rec.dnz_chr_id := p_chr_id;
6728 l_rulv_rec.rule_information_category := 'LAFLLN';
6729 l_rulv_rec.std_template_yn := 'N';
6730 l_rulv_rec.warn_yn := 'N';
6731 END IF;
6732
6733 x_lienholder_id := NULL;
6734 IF (p_lienholder_id IS NOT NULL
6735 OR
6736 p_lienholder_number IS NOT NULL) THEN
6737
6738 get_party_id(
6739 x_return_status => x_return_status,
6740 x_msg_count => x_msg_count,
6741 x_msg_data => x_msg_data,
6742 p_contract_number => p_contract_number,
6743 p_line_number => p_line_number,
6744 p_party_id => p_lienholder_id,
6745 p_party_number => p_lienholder_number,
6746 x_party_id => x_lienholder_id
6747 );
6748 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6749 raise line_rule_failed;
6750 END IF;
6751 END IF;
6752
6753 IF (x_lienholder_id IS NOT NULL) THEN
6754 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
6755 l_rulv_rec.object1_id1 := TO_CHAR(x_lienholder_id);
6756 l_rulv_rec.object1_id2 := '#';
6757 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6758 l_rulv_rec.dnz_chr_id := p_chr_id;
6759 l_rulv_rec.rule_information_category := 'LAFLLN';
6760 l_rulv_rec.std_template_yn := 'N';
6761 l_rulv_rec.warn_yn := 'N';
6762 END IF;
6763
6764 IF (p_filing_jurisdiction IS NOT NULL) THEN
6765 l_rulv_rec.rule_information5 := p_filing_jurisdiction;
6766 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6767 l_rulv_rec.dnz_chr_id := p_chr_id;
6768 l_rulv_rec.rule_information_category := 'LAFLLN';
6769 l_rulv_rec.std_template_yn := 'N';
6770 l_rulv_rec.warn_yn := 'N';
6771 END IF;
6772
6773 IF (p_filing_sub_jurisdiction IS NOT NULL) THEN
6774 l_rulv_rec.rule_information6 := p_filing_sub_jurisdiction;
6775 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6776 l_rulv_rec.dnz_chr_id := p_chr_id;
6777 l_rulv_rec.rule_information_category := 'LAFLLN';
6778 l_rulv_rec.std_template_yn := 'N';
6779 l_rulv_rec.warn_yn := 'N';
6780 END IF;
6781
6782 IF (p_lien_expiration_date IS NOT NULL) THEN
6783 l_rulv_rec.rule_information7 := TO_CHAR(p_lien_expiration_date);
6784 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6785 l_rulv_rec.dnz_chr_id := p_chr_id;
6786 l_rulv_rec.rule_information_category := 'LAFLLN';
6787 l_rulv_rec.std_template_yn := 'N';
6788 l_rulv_rec.warn_yn := 'N';
6789
6790 END IF;
6791
6792 IF (p_lien_continuation_number IS NOT NULL) THEN
6793 l_rulv_rec.rule_information8 := p_lien_continuation_number;
6794 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6795 l_rulv_rec.dnz_chr_id := p_chr_id;
6796 l_rulv_rec.rule_information_category := 'LAFLLN';
6797 l_rulv_rec.std_template_yn := 'N';
6798 l_rulv_rec.warn_yn := 'N';
6799 END IF;
6800
6801 IF (p_lien_continuation_date IS NOT NULL) THEN
6802 l_rulv_rec.rule_information9 := TO_CHAR(p_lien_continuation_date);
6803 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6804 l_rulv_rec.dnz_chr_id := p_chr_id;
6805 l_rulv_rec.rule_information_category := 'LAFLLN';
6806 l_rulv_rec.std_template_yn := 'N';
6807 l_rulv_rec.warn_yn := 'N';
6808 END IF;
6809
6810 create_rule_group_and_rule(
6811 x_return_status => x_return_status,
6812 x_msg_count => x_msg_count,
6813 x_msg_data => x_msg_data,
6814 p_rgp_id => l_rgp_id,
6815 p_rgpv_rec => l_rgpv_rec,
6816 p_rulv_rec => l_rulv_rec,
6817 x_rgpv_rec => x_rgpv_rec,
6818 x_rulv_rec => x_rulv_rec
6819 );
6820
6821 l_progress := '1.3';
6822 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6823 raise line_rule_failed;
6824 END IF;
6825
6826 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6827 l_rgp_id := x_rgpv_rec.id;
6828 END IF;
6829
6830 l_rulv_rec := NULL;
6831 IF (p_title_type IS NOT NULL) THEN
6832
6833 l_rulv_rec.rule_information1 := p_title_type;
6834 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6835 l_rulv_rec.dnz_chr_id := p_chr_id;
6836 l_rulv_rec.rule_information_category := 'LAFLTL';
6837 l_rulv_rec.std_template_yn := 'N';
6838 l_rulv_rec.warn_yn := 'N';
6839 END IF;
6840
6841 IF (p_title_issuer_id IS NOT NULL
6842 OR
6843 p_title_issuer_number IS NOT NULL) THEN
6844 get_party_id(
6845 x_return_status => x_return_status,
6846 x_msg_count => x_msg_count,
6847 x_msg_data => x_msg_data,
6848 p_contract_number => p_contract_number,
6849 p_line_number => p_line_number,
6850 p_party_id => p_title_issuer_id,
6851 p_party_number => p_title_issuer_number,
6852 x_party_id => x_title_issuer_id
6853 );
6854 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6855 RAISE line_rule_failed;
6856 END IF;
6857 END IF;
6858
6859 IF (x_title_issuer_id IS NOT NULL) THEN
6860 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6861 l_rulv_rec.dnz_chr_id := p_chr_id;
6862 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
6863 l_rulv_rec.object1_id1 := TO_CHAR(x_title_issuer_id);
6864 l_rulv_rec.object1_id2 := '#';
6865 l_rulv_rec.rule_information_category := 'LAFLTL';
6866 l_rulv_rec.std_template_yn := 'N';
6867 l_rulv_rec.warn_yn := 'N';
6868 END IF;
6869
6870 IF (p_title_date IS NOT NULL) THEN
6871 l_rulv_rec.rule_information2 := TO_CHAR(p_title_date);
6872 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6873 l_rulv_rec.dnz_chr_id := p_chr_id;
6874 l_rulv_rec.rule_information_category := 'LAFLTL';
6875 l_rulv_rec.std_template_yn := 'N';
6876 l_rulv_rec.warn_yn := 'N';
6877 END IF;
6878
6879 IF (p_title_number IS NOT NULL) THEN
6880 l_rulv_rec.rule_information3 := p_title_number;
6881 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6882 l_rulv_rec.dnz_chr_id := p_chr_id;
6883 l_rulv_rec.rule_information_category := 'LAFLTL';
6884 l_rulv_rec.std_template_yn := 'N';
6885 l_rulv_rec.warn_yn := 'N';
6886 END IF;
6887
6888 IF (p_registration_number IS NOT NULL) THEN
6889 l_rulv_rec.rule_information4 := p_registration_number;
6890 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6891 l_rulv_rec.dnz_chr_id := p_chr_id;
6892 l_rulv_rec.rule_information_category := 'LAFLTL';
6893 l_rulv_rec.std_template_yn := 'N';
6894 l_rulv_rec.warn_yn := 'N';
6895 END IF;
6896
6897 IF (p_asset_registration_loc_name IS NOT NULL) THEN
6898 l_rulv_rec.rule_information5 := p_asset_registration_loc_name;
6899 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6900 l_rulv_rec.dnz_chr_id := p_chr_id;
6901 l_rulv_rec.rule_information_category := 'LAFLTL';
6902 l_rulv_rec.std_template_yn := 'N';
6903 l_rulv_rec.warn_yn := 'N';
6904 END IF;
6905
6906 -- Title_Custodian ???
6907
6908 IF (p_payee_site_name IS NOT NULL) THEN
6909 l_rulv_rec.rule_information6 := p_payee_site_name;
6910 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6911 l_rulv_rec.dnz_chr_id := p_chr_id;
6912 l_rulv_rec.rule_information_category := 'LAFLTL';
6913 l_rulv_rec.std_template_yn := 'N';
6914 l_rulv_rec.warn_yn := 'N';
6915 END IF;
6916
6917 create_rule_group_and_rule(
6918 x_return_status => x_return_status,
6919 x_msg_count => x_msg_count,
6920 x_msg_data => x_msg_data,
6921 p_rgp_id => l_rgp_id,
6922 p_rgpv_rec => l_rgpv_rec,
6923 p_rulv_rec => l_rulv_rec,
6924 x_rgpv_rec => x_rgpv_rec,
6925 x_rulv_rec => x_rulv_rec
6926 );
6927
6928 l_progress := '1.4';
6929 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6930 raise line_rule_failed;
6931 END IF;
6932
6933 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6934 l_rgp_id := x_rgpv_rec.id;
6935 END IF;
6936
6937 END IF; -- line type
6938
6939 /* taken care in process_party_role, 07/15/2002
6940 IF (p_line_type = 'SERVICE'
6941 OR
6942 p_line_type = 'FEE') THEN
6943
6944 l_rgpv_rec := NULL;
6945 l_rgp_id := NULL;
6946 l_rgpv_rec.rgd_code := 'LAPSTH';
6947 l_rgpv_rec.chr_id := NULL;
6948 l_rgpv_rec.dnz_chr_id := p_chr_id;
6949 l_rgpv_rec.cle_id := p_cle_id;
6950 l_rgpv_rec.rgp_type := 'KRG';
6951
6952 l_rulv_rec := NULL;
6953
6954 IF (p_passthrough_percent IS NOT NULL) THEN
6955 l_rulv_rec.rule_information1 := p_passthrough_percent;
6956 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6957 l_rulv_rec.dnz_chr_id := p_chr_id;
6958 l_rulv_rec.rule_information_category := 'LAPTPR';
6959 l_rulv_rec.std_template_yn := 'N';
6960 l_rulv_rec.warn_yn := 'N';
6961 END IF;
6962
6963 create_rule_group_and_rule(
6964 x_return_status => x_return_status,
6965 x_msg_count => x_msg_count,
6966 x_msg_data => x_msg_data,
6967 p_rgp_id => l_rgp_id,
6968 p_rgpv_rec => l_rgpv_rec,
6969 p_rulv_rec => l_rulv_rec,
6970 x_rgpv_rec => x_rgpv_rec,
6971 x_rulv_rec => x_rulv_rec
6972 );
6973
6974 l_progress := '1.5';
6975 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6976 raise line_rule_failed;
6977 END IF;
6978
6979 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6980 l_rgp_id := x_rgpv_rec.id;
6981 END IF;
6982
6983 l_rulv_rec := NULL;
6984 IF (p_passthrough_basis_code IS NOT NULL) THEN
6985 l_rulv_rec.rule_information1 := p_passthrough_basis_code;
6986 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6987 l_rulv_rec.dnz_chr_id := p_chr_id;
6988 l_rulv_rec.rule_information_category := 'LAPTBC';
6989 l_rulv_rec.std_template_yn := 'N';
6990 l_rulv_rec.warn_yn := 'N';
6991 END IF;
6992
6993 create_rule_group_and_rule(
6994 x_return_status => x_return_status,
6995 x_msg_count => x_msg_count,
6996 x_msg_data => x_msg_data,
6997 p_rgp_id => l_rgp_id,
6998 p_rgpv_rec => l_rgpv_rec,
6999 p_rulv_rec => l_rulv_rec,
7000 x_rgpv_rec => x_rgpv_rec,
7001 x_rulv_rec => x_rulv_rec
7002 );
7003
7004 l_progress := '1.6';
7005 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7006 raise line_rule_failed;
7007 END IF;
7008
7009 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7010 l_rgp_id := x_rgpv_rec.id;
7011 END IF;
7012
7013 */
7014
7015 /* Do not use it
7016 IF (p_payment_term IS NOT NULL
7017 OR
7018 p_payment_term_id IS NOT NULL) THEN
7019
7020 l_payment_term_id := get_payment_term(
7021 x_return_status => x_return_status,
7022 p_contract_number => p_contract_number,
7023 p_line_number => p_line_number,
7024 p_payment_term => p_payment_term,
7025 p_payment_term_id => p_payment_term_id
7026 );
7027
7028 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7029 raise line_rule_failed;
7030 END IF;
7031
7032 l_rulv_rec := NULL;
7033 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7034 l_rulv_rec.dnz_chr_id := p_chr_id;
7035 l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
7036 l_rulv_rec.object1_id1 := TO_CHAR(l_payment_term_id);
7037 l_rulv_rec.object1_id2 := '#';
7038 l_rulv_rec.rule_information_category := 'PTR';
7039 l_rulv_rec.std_template_yn := 'N';
7040 l_rulv_rec.warn_yn := 'N';
7041
7042 create_rule_group_and_rule(
7043 x_return_status => x_return_status,
7044 x_msg_count => x_msg_count,
7045 x_msg_data => x_msg_data,
7046 p_rgp_id => l_rgp_id,
7047 p_rgpv_rec => l_rgpv_rec,
7048 p_rulv_rec => l_rulv_rec,
7049 x_rgpv_rec => x_rgpv_rec,
7050 x_rulv_rec => x_rulv_rec
7051 );
7052
7053 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7054 raise line_rule_failed;
7055 END IF;
7056
7057 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7058 l_rgp_id := x_rgpv_rec.id;
7059 END IF;
7060 END IF;
7061
7062 IF (p_vendor_paysite_id IS NOT NULL
7063 OR
7064 p_vendor_paysite_name IS NOT NULL) THEN
7065
7066 l_vendor_paysite_id := get_vendor_paysite(
7067 x_return_status => x_return_status,
7068 p_contract_number => p_contract_number,
7069 p_line_number => p_line_number,
7070 p_vendor_paysite_name => p_vendor_paysite_name,
7071 p_vendor_paysite_id => p_vendor_paysite_id
7072 );
7073
7074 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7075 raise line_rule_failed;
7076 END IF;
7077
7078 l_rulv_rec := NULL;
7079 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7080 l_rulv_rec.dnz_chr_id := p_chr_id;
7081 l_rulv_rec.jtot_object1_code := 'OKX_PAYTO';
7082 l_rulv_rec.object1_id1 := TO_CHAR(l_vendor_paysite_id);
7083 l_rulv_rec.object1_id2 := '#';
7084 l_rulv_rec.rule_information_category := 'PTO';
7085 l_rulv_rec.std_template_yn := 'N';
7086 l_rulv_rec.warn_yn := 'N';
7087
7088 create_rule_group_and_rule(
7089 x_return_status => x_return_status,
7090 x_msg_count => x_msg_count,
7091 x_msg_data => x_msg_data,
7092 p_rgp_id => l_rgp_id,
7093 p_rgpv_rec => l_rgpv_rec,
7094 p_rulv_rec => l_rulv_rec,
7095 x_rgpv_rec => x_rgpv_rec,
7096 x_rulv_rec => x_rulv_rec
7097 );
7098
7099 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7100 raise line_rule_failed;
7101 END IF;
7102
7103 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7104 l_rgp_id := x_rgpv_rec.id;
7105 END IF;
7106 END IF;
7107 END IF; -- line type
7108 */
7109
7110 IF (p_line_type = 'SERVICE'
7111 AND
7112 p_fee_code IS NOT NULL) THEN
7113
7114 check_stream_type_code(
7115 x_return_status => x_return_status,
7116 x_msg_count => x_msg_count,
7117 x_msg_data => x_msg_data,
7118 p_stream_type_code => p_fee_code,
7119 p_stream_purpose => p_stream_purpose,
7120 x_id1 => x_stream_id,
7121 x_name => l_service_name
7122 );
7123 l_progress := '1.61';
7124 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7125 okl_api.set_message(
7126 G_APP_NAME,
7127 G_INVALID_VALUE,
7128 'CONTRACT_NUM',
7129 p_contract_number||'/'||p_line_number,
7130 'COL_NAME',
7131 'FEE_CODE, STREAM_PURPOSE_CODE',
7132 'COL_VALUE',
7133 p_fee_code||', '||p_stream_purpose
7134 );
7135
7136 raise line_rule_failed;
7137 END IF;
7138
7139 --
7140 -- UDS 10/27
7141 -- Check whether the stream is present in template for this contract
7142 --
7143 l_present_yn := '?';
7144 l_present_yn := OKL_STREAMS_UTIL.strm_tmpt_contains_strm_type
7145 (p_khr_id => p_chr_id,
7146 p_sty_id => x_stream_id
7147 );
7148
7149 IF (l_present_yn <> 'Y') THEN
7150 okl_api.set_message(
7151 G_APP_NAME,
7152 G_NO_STRM_TMPL,
7153 'CONTRACT_NUM',
7154 p_contract_number||'/'||p_line_number,
7155 'COL_NAME',
7156 'FEE_CODE, STREAM_PURPOSE_CODE',
7157 'COL_VALUE',
7158 p_fee_code||', '||p_stream_purpose
7159 );
7160
7161 raise line_rule_failed;
7162
7163 END IF;
7164
7165 l_rulv_rec := NULL;
7166 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7167 l_rulv_rec.dnz_chr_id := p_chr_id;
7168 l_rulv_rec.jtot_object1_code := 'OKL_STRMTYP';
7169 l_rulv_rec.object1_id1 := TO_CHAR(x_stream_id);
7170 l_rulv_rec.object1_id2 := '#';
7171 l_rulv_rec.rule_information_category := 'LASTRM';
7172 l_rulv_rec.std_template_yn := 'N';
7173 l_rulv_rec.warn_yn := 'N';
7174
7175 create_rule_group_and_rule(
7176 x_return_status => x_return_status,
7177 x_msg_count => x_msg_count,
7178 x_msg_data => x_msg_data,
7179 p_rgp_id => l_rgp_id,
7180 p_rgpv_rec => l_rgpv_rec,
7181 p_rulv_rec => l_rulv_rec,
7182 x_rgpv_rec => x_rgpv_rec,
7183 x_rulv_rec => x_rulv_rec
7184 );
7185
7186 l_progress := '1.7';
7187 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7188 raise line_rule_failed;
7189 END IF;
7190
7191 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7192 l_rgp_id := x_rgpv_rec.id;
7193 END IF;
7194
7195 END IF;
7196
7197 IF (p_line_type = 'USAGE') THEN
7198
7199 -- NPR is not supported on 11.5.9
7200 IF (p_usage_type_code = 'NPR') THEN
7201 okl_api.set_message(
7202 G_APP_NAME,
7203 G_UNSUPPORTED_VALUE,
7204 'CONTRACT_NUM',
7205 p_contract_number||'/'||p_line_number,
7206 'USAGE_TYPE',
7207 p_usage_type_code
7208 );
7209 RAISE line_rule_failed;
7210 END IF;
7211
7212 l_ok := '?';
7213 OPEN usage_type_csr (p_usage_type_code);
7214 FETCH usage_type_csr INTO l_ok;
7215 CLOSE usage_type_csr;
7216
7217 IF (l_ok <> 'Y') THEN
7218 okl_api.set_message(
7219 G_APP_NAME,
7220 G_INVALID_VALUE,
7221 'CONTRACT_NUM',
7222 p_contract_number,
7223 'COL_NAME',
7224 'USAGE_TYPE',
7225 'COL_VALUE',
7226 p_usage_type_code
7227 );
7228 RAISE line_rule_failed;
7229 END IF;
7230
7231 IF (p_usage_type_code IN ('VRT', 'QTY')
7232 AND
7233 (p_default_qty_usage IS NULL
7234 OR
7235 p_base_reading IS NULL)) THEN
7236 okl_api.set_message(
7237 G_APP_NAME,
7238 G_QA_USAGE_CHECK,
7239 'LINE_NUM',
7240 p_line_number,
7241 'USAGE_TYPE',
7242 p_usage_type_code
7243 );
7244 RAISE line_rule_failed;
7245 END IF;
7246
7247 IF (p_usage_type_code = 'FRT'
7248 AND
7249 p_fixed_usage_quantity IS NULL) THEN
7250 okl_api.set_message(
7251 G_APP_NAME,
7252 G_QA_FIXED_USAGE,
7253 'LINE_NUM',
7254 p_line_number,
7255 'USAGE_TYPE',
7256 p_usage_type_code
7257 );
7258 RAISE line_rule_failed;
7259 END IF;
7260
7261 l_rgpv_rec := NULL;
7262 l_rgp_id := NULL;
7263 l_rgpv_rec.rgd_code := 'LAUSBB';
7264 l_rgpv_rec.chr_id := NULL;
7265 l_rgpv_rec.dnz_chr_id := p_chr_id;
7266 l_rgpv_rec.cle_id := p_cle_id;
7267 l_rgpv_rec.rgp_type := 'KRG';
7268
7269 l_rulv_rec := NULL;
7270
7271 IF (p_usage_item_name IS NOT NULL
7272 OR
7273 p_usage_item_id IS NOT NULL) THEN
7274
7275 get_usage_item_id(
7276 x_return_status => x_return_status,
7277 p_usage_item_name => p_usage_item_name,
7278 p_usage_item_id => p_usage_item_id,
7279 p_org_id => p_inv_org_id,
7280 x_usage_item_id => x_usage_item_id,
7281 x_usage_id2 => x_usage_id2
7282 );
7283 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7284 okl_api.set_message(
7285 G_APP_NAME,
7286 G_INVALID_VALUE,
7287 'CONTRACT_NUM',
7288 p_contract_number,
7289 'COL_NAME',
7290 'USAGE_ITEM_NAME, ID',
7291 'COL_VALUE',
7292 p_usage_item_name||', '||p_usage_item_id
7293 );
7294 RAISE line_rule_failed;
7295 END IF;
7296
7297 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7298 l_rulv_rec.dnz_chr_id := p_chr_id;
7299 l_rulv_rec.jtot_object1_code := 'OKX_USAGE';
7300 l_rulv_rec.object1_id1 := TO_CHAR(x_usage_item_id);
7301 l_rulv_rec.object1_id2 := TO_CHAR(x_usage_id2);
7302 l_rulv_rec.rule_information_category := 'LAUSBB';
7303 l_rulv_rec.std_template_yn := 'N';
7304 l_rulv_rec.warn_yn := 'N';
7305 END IF; -- usage_item
7306
7307 IF (p_price_list_name IS NOT NULL
7308 OR
7309 p_price_list_id IS NOT NULL) THEN
7310
7311 get_price_list_id(
7312 x_return_status => x_return_status,
7313 p_price_list_name => p_price_list_name,
7314 p_price_list_id => p_price_list_id,
7315 x_price_list_id => x_price_list_id
7316 );
7317
7318 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7319 okl_api.set_message(
7320 G_APP_NAME,
7321 G_INVALID_VALUE,
7322 'CONTRACT_NUM',
7323 p_contract_number,
7324 'COL_NAME',
7325 'PRICE_LIST_NAME, ID',
7326 'COL_VALUE',
7327 p_price_list_name||', '||p_price_list_id
7328 );
7329 RAISE line_rule_failed;
7330 END IF;
7331 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7332 l_rulv_rec.dnz_chr_id := p_chr_id;
7333 l_rulv_rec.jtot_object2_code := 'OKX_PRICE';
7334 l_rulv_rec.object2_id1 := TO_CHAR(x_price_list_id);
7335 l_rulv_rec.object2_id2 := '#';
7336 l_rulv_rec.rule_information_category := 'LAUSBB';
7337 l_rulv_rec.std_template_yn := 'N';
7338 l_rulv_rec.warn_yn := 'N';
7339 END IF;
7340
7341 IF (p_minimum_qty_usage IS NOT NULL) THEN
7342
7343 l_rulv_rec.rule_information1 := TO_CHAR(p_minimum_qty_usage);
7344 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7345 l_rulv_rec.dnz_chr_id := p_chr_id;
7346 l_rulv_rec.rule_information_category := 'LAUSBB';
7347 l_rulv_rec.std_template_yn := 'N';
7348 l_rulv_rec.warn_yn := 'N';
7349 END IF;
7350
7351 IF (p_default_qty_usage IS NOT NULL) THEN
7352
7353 l_rulv_rec.rule_information2 := TO_CHAR(p_default_qty_usage);
7354 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7355 l_rulv_rec.dnz_chr_id := p_chr_id;
7356 l_rulv_rec.rule_information_category := 'LAUSBB';
7357 l_rulv_rec.std_template_yn := 'N';
7358 l_rulv_rec.warn_yn := 'N';
7359 END IF;
7360
7361 IF (p_amcv_flag IS NOT NULL) THEN
7362
7363 l_rulv_rec.rule_information3 := p_amcv_flag;
7364 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7365 l_rulv_rec.dnz_chr_id := p_chr_id;
7366 l_rulv_rec.rule_information_category := 'LAUSBB';
7367 l_rulv_rec.std_template_yn := 'N';
7368 l_rulv_rec.warn_yn := 'N';
7369 END IF;
7370
7371 IF (p_level_flag IS NOT NULL) THEN
7372
7373 l_rulv_rec.rule_information4 := p_level_flag;
7374 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7375 l_rulv_rec.dnz_chr_id := p_chr_id;
7376 l_rulv_rec.rule_information_category := 'LAUSBB';
7377 l_rulv_rec.std_template_yn := 'N';
7378 l_rulv_rec.warn_yn := 'N';
7379 END IF;
7380
7381 IF (p_base_reading IS NOT NULL) THEN
7382
7383 l_rulv_rec.rule_information5 := TO_CHAR(p_base_reading);
7384 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7385 l_rulv_rec.dnz_chr_id := p_chr_id;
7386 l_rulv_rec.rule_information_category := 'LAUSBB';
7387 l_rulv_rec.std_template_yn := 'N';
7388 l_rulv_rec.warn_yn := 'N';
7389 END IF;
7390
7391 IF (p_base_reading_uom_code IS NOT NULL) THEN
7392
7393 get_base_uom_id(
7394 x_return_status => x_return_status,
7395 p_base_uom_code => p_base_reading_uom_code,
7396 x_base_uom_id => x_base_uom_id
7397 );
7398
7399 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7400 okl_api.set_message(
7401 G_APP_NAME,
7402 G_INVALID_VALUE,
7403 'CONTRACT_NUM',
7404 p_contract_number,
7405 'COL_NAME',
7406 'BASE_READING_UOM_CODE',
7407 'COL_VALUE',
7408 p_base_reading_uom_code
7409 );
7410 RAISE line_rule_failed;
7411 END IF;
7412
7413 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7414 l_rulv_rec.dnz_chr_id := p_chr_id;
7415 l_rulv_rec.jtot_object3_code := 'OKX_TUOM';
7416 l_rulv_rec.object3_id1 := x_base_uom_id;
7417 l_rulv_rec.object3_id2 := '#';
7418 l_rulv_rec.rule_information_category := 'LAUSBB';
7419 l_rulv_rec.std_template_yn := 'N';
7420 l_rulv_rec.warn_yn := 'N';
7421 END IF;
7422
7423 IF (p_usage_type_code IS NOT NULL) THEN
7424
7425 l_rulv_rec.rule_information6 := p_usage_type_code;
7426 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7427 l_rulv_rec.dnz_chr_id := p_chr_id;
7428 l_rulv_rec.rule_information_category := 'LAUSBB';
7429 l_rulv_rec.std_template_yn := 'N';
7430 l_rulv_rec.warn_yn := 'N';
7431 END IF;
7432
7433 IF (p_fixed_usage_quantity IS NOT NULL) THEN
7434
7435 l_rulv_rec.rule_information7 := p_fixed_usage_quantity;
7436 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7437 l_rulv_rec.dnz_chr_id := p_chr_id;
7438 l_rulv_rec.rule_information_category := 'LAUSBB';
7439 l_rulv_rec.std_template_yn := 'N';
7440 l_rulv_rec.warn_yn := 'N';
7441 END IF;
7442
7443 IF (p_usage_period IS NOT NULL) THEN
7444
7445 validate_usage_freq(
7446 x_return_status => x_return_status,
7447 x_msg_count => x_msg_count,
7448 x_msg_data => x_msg_data,
7449 p_freq => p_usage_period,
7450 p_contract_number => p_contract_number,
7451 p_line_number => p_line_number
7452 );
7453
7454 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7455 raise line_rule_failed;
7456 END IF;
7457
7458 l_rulv_rec.rule_information8 := p_usage_period;
7459 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7460 l_rulv_rec.dnz_chr_id := p_chr_id;
7461 l_rulv_rec.rule_information_category := 'LAUSBB';
7462 l_rulv_rec.std_template_yn := 'N';
7463 l_rulv_rec.warn_yn := 'N';
7464 END IF;
7465
7466 IF (p_usage_no_of_period IS NOT NULL) THEN
7467
7468 l_rulv_rec.rule_information9 := p_usage_no_of_period;
7469 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7470 l_rulv_rec.dnz_chr_id := p_chr_id;
7471 l_rulv_rec.rule_information_category := 'LAUSBB';
7472 l_rulv_rec.std_template_yn := 'N';
7473 l_rulv_rec.warn_yn := 'N';
7474 END IF;
7475
7476 create_rule_group_and_rule(
7477 x_return_status => x_return_status,
7478 x_msg_count => x_msg_count,
7479 x_msg_data => x_msg_data,
7480 p_rgp_id => l_rgp_id,
7481 p_rgpv_rec => l_rgpv_rec,
7482 p_rulv_rec => l_rulv_rec,
7483 x_rgpv_rec => x_rgpv_rec,
7484 x_rulv_rec => x_rulv_rec
7485 );
7486
7487 l_progress := '1.8';
7488 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7489 raise line_rule_failed;
7490 END IF;
7491
7492 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7493 l_rgp_id := x_rgpv_rec.id;
7494 END IF;
7495
7496 END IF; -- line type USAGE
7497
7498 IF (p_line_type IN ('SERVICE', 'FEE')) THEN
7499 -- Add new rules, RECURRING EXP
7500
7501 IF (p_fee_no_of_period IS NOT NULL
7502 AND
7503 p_fee_frequency IS NOT NULL
7504 AND
7505 p_fee_amount_per_period IS NOT NULL) THEN
7506
7507 okl_contract_top_line_pub.validate_fee_expense_rule(
7508 p_api_version => 1.0,
7509 p_init_msg_list => OKL_API.G_FALSE,
7510 x_return_status => x_return_status,
7511 x_msg_count => x_msg_count,
7512 x_msg_data => x_msg_data,
7513 p_chr_id => p_chr_id,
7514 p_line_id => p_cle_id,
7515 p_no_of_period => p_fee_no_of_period,
7516 p_frequency => p_fee_frequency,
7517 p_amount_per_period => p_fee_amount_per_period
7518 );
7519
7520 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7521 RAISE line_rule_failed;
7522 END IF;
7523
7524 END IF;
7525
7526 l_rulv_rec := NULL;
7527
7528 -- Rule Group LAFEXP
7529 l_rgpv_rec := NULL;
7530 l_rgp_id := NULL;
7531 l_rgpv_rec.rgd_code := 'LAFEXP';
7532 l_rgpv_rec.chr_id := NULL;
7533 l_rgpv_rec.dnz_chr_id := p_chr_id;
7534 l_rgpv_rec.cle_id := p_cle_id;
7535 l_rgpv_rec.rgp_type := 'KRG';
7536
7537 IF (p_fee_no_of_period IS NOT NULL) THEN
7538
7539 l_rulv_rec.rule_information1 := p_fee_no_of_period;
7540 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7541 l_rulv_rec.dnz_chr_id := p_chr_id;
7542 l_rulv_rec.rule_information_category := 'LAFEXP';
7543 l_rulv_rec.std_template_yn := 'N';
7544 l_rulv_rec.warn_yn := 'N';
7545 END IF;
7546 /*
7547 IF (p_fee_frequency IS NOT NULL) THEN
7548
7549 OPEN freq_csr (p_fee_frequency);
7550 FETCH freq_csr INTO l_freq_id;
7551 CLOSE freq_csr;
7552
7553 l_rulv_rec.jtot_object1_code := 'OKL_TUOM';
7554 l_rulv_rec.object1_id1 := l_freq_id;
7555 l_rulv_rec.object1_id2 := '#';
7556 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7557 l_rulv_rec.dnz_chr_id := p_chr_id;
7558 l_rulv_rec.rule_information_category := 'LAFEXP';
7559 l_rulv_rec.std_template_yn := 'N';
7560 l_rulv_rec.warn_yn := 'N';
7561 END IF;
7562 */
7563
7564 IF (p_fee_amount_per_period IS NOT NULL) THEN
7565
7566 l_rulv_rec.rule_information2 := p_fee_amount_per_period;
7567 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7568 l_rulv_rec.dnz_chr_id := p_chr_id;
7569 l_rulv_rec.rule_information_category := 'LAFEXP';
7570 l_rulv_rec.std_template_yn := 'N';
7571 l_rulv_rec.warn_yn := 'N';
7572 END IF;
7573
7574 create_rule_group_and_rule(
7575 x_return_status => x_return_status,
7576 x_msg_count => x_msg_count,
7577 x_msg_data => x_msg_data,
7578 p_rgp_id => l_rgp_id,
7579 p_rgpv_rec => l_rgpv_rec,
7580 p_rulv_rec => l_rulv_rec,
7581 x_rgpv_rec => x_rgpv_rec,
7582 x_rulv_rec => x_rulv_rec
7583 );
7584 l_progress := '1.2';
7585 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7586 raise line_rule_failed;
7587 END IF;
7588
7589 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7590 l_rgp_id := x_rgpv_rec.id;
7591 END IF;
7592
7593 IF (p_fee_frequency IS NOT NULL) THEN
7594
7595 OPEN freq_csr (p_fee_frequency);
7596 FETCH freq_csr INTO l_freq_id;
7597 CLOSE freq_csr;
7598
7599 l_rulv_rec := NULL;
7600
7601 l_rulv_rec.jtot_object1_code := 'OKL_TUOM';
7602 l_rulv_rec.object1_id1 := l_freq_id;
7603 l_rulv_rec.object1_id2 := '#';
7604 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7605 l_rulv_rec.dnz_chr_id := p_chr_id;
7606 l_rulv_rec.rule_information_category := 'LAFREQ';
7607 l_rulv_rec.std_template_yn := 'N';
7608 l_rulv_rec.warn_yn := 'N';
7609
7610 create_rule_group_and_rule(
7611 x_return_status => x_return_status,
7612 x_msg_count => x_msg_count,
7613 x_msg_data => x_msg_data,
7614 p_rgp_id => l_rgp_id,
7615 p_rgpv_rec => l_rgpv_rec,
7616 p_rulv_rec => l_rulv_rec,
7617 x_rgpv_rec => x_rgpv_rec,
7618 x_rulv_rec => x_rulv_rec
7619 );
7620 l_progress := '1.2';
7621 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7622 raise line_rule_failed;
7623 END IF;
7624
7625 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7626 l_rgp_id := x_rgpv_rec.id;
7627 END IF;
7628 END IF;
7629
7630 END IF;
7631
7632 /*
7633 IF (p_line_type = 'ASSET') THEN
7634 -- Rule Group LAHDTX
7635
7636 l_rgpv_rec := NULL;
7637 l_rgp_id := NULL;
7638 l_rgpv_rec.rgd_code := 'LAHDTX';
7639 l_rgpv_rec.chr_id := NULL;
7640 l_rgpv_rec.dnz_chr_id := p_chr_id;
7641 l_rgpv_rec.cle_id := p_cle_id;
7642 l_rgpv_rec.rgp_type := 'KRG';
7643
7644 l_rulv_rec := NULL;
7645
7646 IF (p_prop_tax_applicable IS NOT NULL) THEN
7647 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7648 l_rulv_rec.dnz_chr_id := p_chr_id;
7649 l_rulv_rec.rule_information1 := p_prop_tax_applicable;
7650 l_rulv_rec.rule_information_category := 'LAPRTX';
7651 l_rulv_rec.std_template_yn := 'N';
7652 l_rulv_rec.warn_yn := 'N';
7653 END IF;
7654
7655 IF (p_prop_tax_lease_rep IS NOT NULL) THEN
7656 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7657 l_rulv_rec.dnz_chr_id := p_chr_id;
7658 l_rulv_rec.rule_information2 := p_prop_tax_lease_rep;
7659 l_rulv_rec.rule_information_category := 'LAPRTX';
7660 l_rulv_rec.std_template_yn := 'N';
7661 l_rulv_rec.warn_yn := 'N';
7662 END IF;
7663
7664 create_rule_group_and_rule(
7665 x_return_status => x_return_status,
7666 x_msg_count => x_msg_count,
7667 x_msg_data => x_msg_data,
7668 p_rgp_id => l_rgp_id,
7669 p_rgpv_rec => l_rgpv_rec,
7670 p_rulv_rec => l_rulv_rec,
7671 x_rgpv_rec => x_rgpv_rec,
7672 x_rulv_rec => x_rulv_rec
7673 );
7674
7675 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7676 raise line_rule_failed;
7677 END IF;
7678
7679 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7680 l_rgp_id := x_rgpv_rec.id;
7681 END IF;
7682
7683 l_rulv_rec := NULL;
7684
7685 END IF;
7686 */
7687
7688 RETURN;
7689
7690 EXCEPTION
7691
7692 WHEN line_rule_failed THEN
7693 x_return_status := OKL_API.G_RET_STS_ERROR;
7694 debug_message('Line rule failed : '||l_progress);
7695
7696 WHEN OTHERS THEN
7697 okl_api.set_message(
7698 G_APP_NAME,
7699 G_UNEXPECTED_ERROR,
7700 'OKL_SQLCODE',
7701 SQLCODE,
7702 'OKL_SQLERRM',
7703 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
7704 );
7705
7706 x_return_status := OKL_API.G_RET_STS_ERROR;
7707 debug_message('line other : '||l_progress);
7708
7709 END create_line_rules;
7710
7711 ------------------------------------------------------------------------------
7712 -- FUNCTION get_lien_holder
7713 -- It returns lien_holder_id from name and
7714 -- stacks Error, if any, and returns ERROR status to calling process.
7715 -- Calls:
7716 -- Called By:
7717 ------------------------------------------------------------------------------
7718 FUNCTION get_lien_holder(
7719 x_return_status OUT NOCOPY VARCHAR2,
7720 p_lien_holder_name IN okl_header_interface.lien_holder_name%TYPE,
7721 p_lien_holder_id IN okl_header_interface.lien_holder_id%TYPE
7722 )
7723 RETURN VARCHAR2 IS
7724 CURSOR lien_csr (p_id NUMBER,
7725 p_name VARCHAR2) IS
7726 SELECT id1
7727 FROM okx_parties_v
7728 WHERE ((name = p_name
7729 AND
7730 p_name IS NOT NULL)
7731 OR
7732 (id1 = p_id
7733 AND
7734 p_id IS NOT NULL
7735 )
7736 );
7737
7738 l_id NUMBER;
7739 BEGIN
7740 x_return_status := OKL_API.G_RET_STS_SUCCESS;
7741
7742 OPEN lien_csr (p_lien_holder_id,
7743 p_lien_holder_name);
7744 FETCH lien_csr INTO l_id;
7745 IF lien_csr%NOTFOUND THEN
7746 x_return_status := OKL_API.G_RET_STS_ERROR;
7747 RETURN NULL;
7748 END IF;
7749
7750 CLOSE lien_csr;
7751 RETURN TO_CHAR(l_id);
7752
7753 END get_lien_holder;
7754
7755 ------------------------------------------------------------------------------
7756 -- FUNCTION get_late_policy_id
7757 -- It returns late_policy_id for corresponding policy_code
7758 -- stacks Error, if any, and returns ERROR status to calling process.
7759 -- Calls:
7760 -- Called By:
7761 ------------------------------------------------------------------------------
7762 FUNCTION get_late_policy_id(
7763 x_return_status OUT NOCOPY VARCHAR2,
7764 p_late_policy_code IN okl_header_interface.late_charge_product_code%TYPE,
7765 p_org_id IN NUMBER,
7766 p_late_policy_type IN VARCHAR2
7767 )
7768 RETURN VARCHAR2 IS
7769 CURSOR policy_csr (p_policy_code VARCHAR2,
7770 p_org_id NUMBER,
7771 p_policy_type VARCHAR2) IS
7772 SELECT id
7773 FROM okl_late_policies_v
7774 WHERE name = p_policy_code
7775 AND org_id = p_org_id
7776 AND ( late_policy_type_code = 'LCT'
7777 OR
7778 late_policy_type_code = p_policy_type );
7779
7780 l_id NUMBER;
7781 BEGIN
7782 x_return_status := OKL_API.G_RET_STS_SUCCESS;
7783
7784 OPEN policy_csr (p_late_policy_code,
7785 p_org_id,
7786 p_late_policy_type
7787 );
7788 FETCH policy_csr INTO l_id;
7789 IF policy_csr%NOTFOUND THEN
7790 x_return_status := OKL_API.G_RET_STS_ERROR;
7791 RETURN NULL;
7792 END IF;
7793
7794 CLOSE policy_csr;
7795 RETURN TO_CHAR(l_id);
7796
7797 END get_late_policy_id;
7798
7799 ------------------------------------------------------------------------------
7800 -- PROCEDURE get_cash_appl_rule_id
7801 -- It validates and get cash application rule ID from rule name
7802 -- Calls:
7803 -- Called By:
7804 -- create_header_rule
7805 ------------------------------------------------------------------------------
7806 PROCEDURE get_cash_appl_rule_id (
7807 x_return_status OUT NOCOPY VARCHAR2,
7808 x_msg_count OUT NOCOPY NUMBER,
7809 x_msg_data OUT NOCOPY VARCHAR2,
7810 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
7811 p_org_id IN OKC_K_HEADERS_V.AUTHORING_ORG_ID%TYPE,
7812 p_cash_appl_rule_name IN OKL_HEADER_INTERFACE.CASH_APPL_RULE_NAME%TYPE,
7813 x_cash_appl_rule_id OUT NOCOPY OKL_BPD_ACTIVE_CSH_RLS_V.ID1%TYPE
7814 ) IS
7815
7816 cursor cash_csr (p_rule_name VARCHAR2,
7817 p_org_id NUMBER) IS
7818 SELECT id1
7819 FROM okl_bpd_active_csh_rls_v
7820 WHERE name = p_rule_name
7821 AND org_id = p_org_id
7822 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(START_DATE),TRUNC(SYSDATE)) AND
7823 NVL(TRUNC(END_DATE),TRUNC(SYSDATE));
7824 cash_failed EXCEPTION;
7825 l_proc_name VARCHAR2(35) := 'GET_CASH_APPL_RULE_ID';
7826
7827 BEGIN
7828
7829 x_return_status := OKL_API.G_RET_STS_SUCCESS;
7830 debug_message(l_proc_name);
7831
7832 OPEN cash_csr (p_cash_appl_rule_name,
7833 p_org_id);
7834 FETCH cash_csr INTO x_cash_appl_rule_id;
7835 IF cash_csr%NOTFOUND THEN
7836 RAISE cash_failed;
7837 END IF;
7838 CLOSE cash_csr;
7839
7840 EXCEPTION
7841 WHEN cash_failed THEN
7842
7843 IF (cash_csr%ISOPEN) THEN
7844 CLOSE cash_csr;
7845 END IF;
7846
7847 okl_api.set_message(
7848 G_APP_NAME,
7849 G_INVALID_VALUE,
7850 'CONTRACT_NUM',
7851 p_contract_number,
7852 'COL_NAME',
7853 'CASH_APPL_RULE_NAME',
7854 'COL_VALUE',
7855 p_cash_appl_rule_name
7856 );
7857 x_return_status := OKL_API.G_RET_STS_ERROR;
7858
7859 WHEN OTHERS THEN
7860
7861 okl_api.set_message(
7862 G_APP_NAME,
7863 G_UNEXPECTED_ERROR,
7864 'OKL_SQLCODE',
7865 SQLCODE,
7866 'OKL_SQLERRM',
7867 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
7868 );
7869
7870 x_return_status := OKL_API.G_RET_STS_ERROR;
7871 END get_cash_appl_rule_id;
7872
7873 function get_formula_id(p_name IN VARCHAR2,
7874 x_return_status OUT NOCOPY VARCHAR2) RETURN NUMBER IS
7875 l_formula_id number := 0;
7876 begin
7877 x_return_status := OKC_API.G_RET_STS_SUCCESS;
7878 select id
7879 INTO l_formula_id
7880 FROM OKL_FORMULAE_B
7881 WHERE NAME = p_name;
7882
7883 return(l_formula_id);
7884 EXCEPTION WHEN OTHERS THEN
7885 x_return_status := OKC_API.G_RET_STS_ERROR;
7886 return(l_formula_id); -- 5024651
7887 end;
7888
7889 ------------------------------------------------------------------------------
7890 -- PROCEDURE create_header_rules
7891 -- It creates rules for header record and
7892 -- stacks Error, if any, and returns ERROR status to calling process.
7893 -- Calls:
7894 -- get_customer_account_id
7895 -- get_bill_to_address_id
7896 -- get_bank_account_id
7897 -- get_invoice_format_id
7898 -- get_payment_method_id
7899 -- Called By:
7900 -- load_input_record
7901 ------------------------------------------------------------------------------
7902 PROCEDURE create_header_rules(
7903 x_return_status OUT NOCOPY VARCHAR2,
7904 x_msg_count OUT NOCOPY NUMBER,
7905 x_msg_data OUT NOCOPY VARCHAR2,
7906 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE,
7907 p_template_id IN OKC_K_HEADERS_V.ID%TYPE,
7908 p_header_rec IN intf_h_rec_type
7909 ) IS
7910
7911 header_rule_failed EXCEPTION;
7912 l_proc_name VARCHAR2(35) := 'CREATE_HEADER_RULES';
7913
7914 x_customer_account_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
7915 x_bill_to_address_id OKX_CUST_SITE_USES_V.ID1%TYPE;
7916 x_bank_account_id OKX_RCPT_METHOD_ACCOUNTS_V.ID1%TYPE;
7917 x_invoice_format_id OKL_INVOICE_FORMATS_V.ID%TYPE;
7918 x_payment_method_id OKX_RECEIPT_METHODS_V.ID1%TYPE;
7919 x_invoice_format_name okl_invoice_formats_v.name%TYPE;
7920 x_index_id okl_indices.id%TYPE;
7921
7922 l_rgd_code OKC_RULE_GROUPS_V.RGD_CODE%TYPE;
7923 l_rgp_type OKC_RULE_GROUPS_V.RGP_TYPE%TYPE;
7924
7925 l_chr_id OKC_RULE_GROUPS_V.CHR_ID%TYPE;
7926 l_dnz_chr_id OKC_RULE_GROUPS_V.DNZ_CHR_ID%TYPE;
7927 l_cle_id OKC_RULE_GROUPS_V.CLE_ID%TYPE;
7928 l_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
7929 l_jtot_object1_code OKC_RULES_V.JTOT_OBJECT1_CODE%TYPE;
7930 l_object1_id1 OKC_RULES_V.OBJECT1_ID1%TYPE;
7931 l_rule_info1 OKC_RULES_V.RULE_INFORMATION1%TYPE;
7932 l_rule_info2 OKC_RULES_V.RULE_INFORMATION2%TYPE;
7933 l_rule_info_catg OKC_RULES_V.RULE_INFORMATION_CATEGORY%TYPE;
7934 --l_rgp_id NUMBER;
7935
7936 -- Rule Rec
7937 x_rgpv_rec rgpv_rec_type;
7938 l_rgpv_rec rgpv_rec_type;
7939
7940 l_rulv_rec rulv_rec_type;
7941 x_rulv_rec rulv_rec_type;
7942
7943 l_rule_count NUMBER := 0;
7944 l_rulv_tbl rulv_tbl_type;
7945
7946 CURSOR temp_role_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
7947 --Fixed # Bug 5484903
7948 SELECT object1_id1
7949 FROM okc_k_party_roles_b
7950 WHERE dnz_chr_id = p_chr_id
7951 AND chr_id = dnz_chr_id
7952 AND jtot_object1_code = 'OKX_PARTY'
7953 AND rle_code = 'LESSEE';
7954
7955 l_customer_id NUMBER;
7956
7957 l_rebook_limit_date VARCHAR2(100);
7958 l_security_deposit_hold_flag VARCHAR2(450); -- same as rule segment datatype
7959 l_security_deposit_net_flag VARCHAR2(450);
7960 l_security_deposit_date VARCHAR2(450);
7961 l_renewal_notice_days VARCHAR2(450);
7962 l_renewal_option VARCHAR2(450);
7963 l_renewal_amount VARCHAR2(450);
7964 l_late_interest_held_date VARCHAR2(450);
7965 l_late_interest_exempt_flag VARCHAR2(450);
7966 l_late_int_product_code VARCHAR2(450);
7967 l_late_int_product_id VARCHAR2(450);
7968 l_late_charge_held_until_date VARCHAR2(450);
7969 l_late_charge_product_code VARCHAR2(450);
7970 l_late_charge_product_id VARCHAR2(450);
7971 l_late_charge_exempt_flag VARCHAR2(450);
7972 l_variable_rate VARCHAR2(450);
7973 l_convert_type VARCHAR2(450);
7974 l_conversion_method VARCHAR2(450);
7975 l_date_of_conversion VARCHAR2(450);
7976 l_convert_by_date VARCHAR2(450);
7977 l_variable_method VARCHAR2(450);
7978 l_index_name VARCHAR2(450);
7979 l_index_id VARCHAR2(450);
7980 l_base_rate VARCHAR2(450);
7981 l_adder VARCHAR2(450);
7982 l_minimum_rate VARCHAR2(450);
7983 l_maximum_rate VARCHAR2(450);
7984 l_tolerance VARCHAR2(450);
7985 l_adjustment_frequency VARCHAR2(450);
7986 l_days_in_year VARCHAR2(450);
7987 l_days_in_month VARCHAR2(450);
7988 l_interest_method VARCHAR2(450);
7989 l_interest_start_date VARCHAR2(450);
7990 l_method_of_calculation VARCHAR2(450);
7991 l_formula_name VARCHAR2(450);
7992 l_factoring_date VARCHAR2(450);
7993 l_factoring_percentage VARCHAR2(450);
7994 l_factoring_discount_rate VARCHAR2(450);
7995 l_evergreen_eligible_flag VARCHAR2(450);
7996 l_bill_to_address_id VARCHAR2(450);
7997 l_bill_to_address VARCHAR2(450);
7998 l_reason_for_invoice_review VARCHAR2(450);
7999 l_invoice_review_until_date VARCHAR2(450);
8000 l_review_invoice_flag VARCHAR2(450);
8001 l_print_lead_days VARCHAR2(450);--hariven bug 5359935
8002 l_capitalize_flag VARCHAR2(450);
8003 l_non_notification_flag VARCHAR2(450);
8004 l_rvi_rate VARCHAR2(450);
8005 l_rvi_auto_calculate_flag VARCHAR2(450);
8006 l_tax_withholding_flag VARCHAR2(450);
8007 l_tax_calc_formula_name VARCHAR2(450);
8008 l_tax_owner VARCHAR2(450);
8009 l_private_activity_bond_flag VARCHAR2(450);
8010 l_floor_price_formula VARCHAR2(450);
8011 l_remkt_sale_price_formula VARCHAR2(450);
8012 l_repurchase_quote_option VARCHAR2(450);
8013 l_repurchase_quote_formula VARCHAR2(450);
8014 l_sale_price_option VARCHAR2(450);
8015 l_sale_price_amount VARCHAR2(450);
8016 l_sale_price_formula VARCHAR2(450);
8017 l_sale_price_prorate VARCHAR2(450);
8018 l_discount_rate_option VARCHAR2(450);
8019 l_discount_rate_amount VARCHAR2(450);
8020 l_discount_rate_formula VARCHAR2(450);
8021 l_discount_rate_prorate VARCHAR2(450);
8022 l_quote_fee_option VARCHAR2(450);
8023 l_quote_fee_amount VARCHAR2(450);
8024 l_quote_fee_formula VARCHAR2(450);
8025 l_quote_fee_prorate VARCHAR2(450);
8026 l_ert_purchase_opt VARCHAR2(450);
8027 l_ert_purchase_opt_type VARCHAR2(450);
8028 l_ert_purchase_opt_amount VARCHAR2(450);
8029 l_ert_purchase_opt_formula VARCHAR2(450);
8030 l_ert_purchase_opt_prorate VARCHAR2(450);
8031 l_ert_purchase_opt_max_opt VARCHAR2(450);
8032 l_ert_purchase_opt_max_amt VARCHAR2(450);
8033 l_ert_purchase_opt_max_formula VARCHAR2(450);
8034 l_ert_purchase_opt_min_opt VARCHAR2(450);
8035 l_ert_purchase_opt_min_amt VARCHAR2(450);
8036 l_ert_purchase_opt_min_formula VARCHAR2(450);
8037 l_eot_purchase_opt VARCHAR2(450);
8038 l_eot_purchase_opt_type VARCHAR2(450);
8039 l_eot_purchase_opt_amount VARCHAR2(450);
8040 l_eot_purchase_opt_formula VARCHAR2(450);
8041 l_eot_purchase_opt_prorate VARCHAR2(450);
8042 l_eot_purchase_opt_max_opt VARCHAR2(450);
8043 l_eot_purchase_opt_max_amt VARCHAR2(450);
8044 l_eot_purchase_opt_max_formula VARCHAR2(450);
8045 l_eot_purchase_opt_min_opt VARCHAR2(450);
8046 l_eot_purchase_opt_min_amt VARCHAR2(450);
8047 l_eot_purchase_opt_min_formula VARCHAR2(450);
8048 l_tqp_erl_term_alwd_flag VARCHAR2(450);
8049 l_tqp_prt_term_alwd_flag VARCHAR2(450);
8050 l_quote_effective_days VARCHAR2(450);
8051 l_quote_eff_max_days VARCHAR2(450);
8052 l_eot_tolerance_days VARCHAR2(450);
8053 l_prt_termination_approval_req VARCHAR2(450);
8054 l_prt_termination_allowed_flag VARCHAR2(450);
8055 l_gain_loss_approval_req VARCHAR2(450);
8056 l_gain_loss_net_quote_opt VARCHAR2(450);
8057 l_gain_loss_net_quote_amt VARCHAR2(450);
8058 l_gain_loss_net_quote_formula VARCHAR2(450);
8059 l_gain_loss_tolrn_allwd VARCHAR2(450);
8060 l_quote_approver_contract_role VARCHAR2(450);
8061 l_quote_rcpt_contract_role VARCHAR2(450);
8062 l_quote_crtsy_cp_cntrc_role VARCHAR2(450);
8063 l_ert_quote_calc_term_option VARCHAR2(450);
8064 l_ert_quote_calc_term_formula VARCHAR2(450);
8065 l_ert_contract_oblig_opt VARCHAR2(450);
8066 l_ert_contract_oblig_amount VARCHAR2(450);
8067 l_ert_contract_oblig_formula VARCHAR2(450);
8068 l_ert_contract_oblig_prorate VARCHAR2(450);
8069 l_ert_disc_rate_opt VARCHAR2(450);
8070 l_ert_disc_rate_amount VARCHAR2(450);
8071 l_ert_disc_rate_formula VARCHAR2(450);
8072 l_ert_disc_rate_prorate VARCHAR2(450);
8073 l_ert_quote_fee_opt VARCHAR2(450);
8074 l_ert_quote_fee_amount VARCHAR2(450);
8075 l_ert_quote_fee_formula VARCHAR2(450);
8076 l_ert_quote_fee_prorate VARCHAR2(450);
8077 l_ert_return_fee_option VARCHAR2(450);
8078 l_ert_return_fee_amount VARCHAR2(450);
8079 l_ert_return_fee_formula VARCHAR2(450);
8080 l_ert_return_fee_prorate VARCHAR2(450);
8081 l_ert_roll_inctv_option VARCHAR2(450);
8082 l_ert_roll_inctv_amount VARCHAR2(450);
8083 l_ert_roll_inctv_formula VARCHAR2(450);
8084 l_ert_roll_inctv_prorate VARCHAR2(450);
8085 l_ert_secu_dep_dispo_option VARCHAR2(450);
8086 l_ert_secu_dep_dispo_amount VARCHAR2(450);
8087 l_ert_secu_dep_dispo_formula VARCHAR2(450);
8088 l_ert_secu_dep_dispo_prorate VARCHAR2(450);
8089 l_ert_term_penalty_option VARCHAR2(450);
8090 l_ert_term_penalty_amount VARCHAR2(450);
8091 l_ert_term_penalty_formula VARCHAR2(450);
8092 l_ert_term_penalty_prorate VARCHAR2(450);
8093 l_ert_term_penalty_cap_option VARCHAR2(450);
8094 l_ert_term_penalty_cap_amount VARCHAR2(450);
8095 l_ert_term_penalty_cap_formula VARCHAR2(450);
8096 l_ert_est_prop_tax_option VARCHAR2(450);
8097 l_ert_est_prop_tax_amount VARCHAR2(450);
8098 l_ert_est_prop_tax_formula VARCHAR2(450);
8099 l_ert_est_prop_tax_prorate VARCHAR2(450);
8100 l_ert_contr_fees_option VARCHAR2(450);
8101 l_ert_outstnd_bal_option VARCHAR2(450);
8102 l_ert_serv_mant_option VARCHAR2(450);
8103 l_eot_quote_calc_term_option VARCHAR2(450);
8104 l_eot_quote_calc_term_formula VARCHAR2(450);
8105 l_eot_contract_oblig_opt VARCHAR2(450);
8106 l_eot_contract_oblig_amount VARCHAR2(450);
8107 l_eot_contract_oblig_formula VARCHAR2(450);
8108 l_eot_contract_oblig_prorate VARCHAR2(450);
8109 l_eot_disc_rate_opt VARCHAR2(450);
8110 l_eot_disc_rate_amount VARCHAR2(450);
8111 l_eot_disc_rate_formula VARCHAR2(450);
8112 l_eot_disc_rate_prorate VARCHAR2(450);
8113 l_eot_quote_fee_opt VARCHAR2(450);
8114 l_eot_quote_fee_amount VARCHAR2(450);
8115 l_eot_quote_fee_formula VARCHAR2(450);
8116 l_eot_quote_fee_prorate VARCHAR2(450);
8117 l_eot_return_fee_option VARCHAR2(450);
8118 l_eot_return_fee_amount VARCHAR2(450);
8119 l_eot_return_fee_formula VARCHAR2(450);
8120 l_eot_return_fee_prorate VARCHAR2(450);
8121 l_eot_roll_inctv_option VARCHAR2(450);
8122 l_eot_roll_inctv_amount VARCHAR2(450);
8123 l_eot_roll_inctv_formula VARCHAR2(450);
8124 l_eot_roll_inctv_prorate VARCHAR2(450);
8125 l_eot_secu_dep_dispo_option VARCHAR2(450);
8126 l_eot_secu_dep_dispo_amount VARCHAR2(450);
8127 l_eot_secu_dep_dispo_formula VARCHAR2(450);
8128 l_eot_secu_dep_dispo_prorate VARCHAR2(450);
8129 l_eot_term_penalty_option VARCHAR2(450);
8130 l_eot_term_penalty_amount VARCHAR2(450);
8131 l_eot_term_penalty_formula VARCHAR2(450);
8132 l_eot_term_penalty_prorate VARCHAR2(450);
8133 l_eot_term_penalty_cap_option VARCHAR2(450);
8134 l_eot_term_penalty_cap_amount VARCHAR2(450);
8135 l_eot_term_penalty_cap_formula VARCHAR2(450);
8136 l_eot_est_prop_tax_option VARCHAR2(450);
8137 l_eot_est_prop_tax_amount VARCHAR2(450);
8138 l_eot_est_prop_tax_formula VARCHAR2(450);
8139 l_eot_est_prop_tax_prorate VARCHAR2(450);
8140 l_eot_contr_fees_option VARCHAR2(450);
8141 l_eot_outstnd_bal_option VARCHAR2(450);
8142 l_eot_serv_mant_option VARCHAR2(450);
8143 l_evergreen_passthru_fees VARCHAR2(450);
8144 l_evergreen_passthru_percent VARCHAR2(450);
8145 l_lien_type VARCHAR2(450);
8146 l_filing_number VARCHAR2(450);
8147 l_filing_date VARCHAR2(450);
8148 l_filing_status VARCHAR2(450);
8149 l_lien_holder_name VARCHAR2(450);
8150 l_lien_holder_id VARCHAR2(450);
8151 l_jurisdiction VARCHAR2(450);
8152 l_sub_jurisdiction VARCHAR2(450);
8153 l_lien_expiration_date VARCHAR2(450);
8154 l_lien_continuation_number VARCHAR2(450);
8155 l_lien_continuation_date VARCHAR2(450);
8156 l_title_type VARCHAR2(450);
8157 l_title_issuer_name VARCHAR2(450);
8158 l_title_issuer_id VARCHAR2(450);
8159 x_title_issuer_id NUMBER;
8160 l_title_date VARCHAR2(450);
8161 l_title_number VARCHAR2(450);
8162 l_registration_number VARCHAR2(450);
8163 l_location VARCHAR2(450);
8164 l_title_custodian_name VARCHAR2(450);
8165 l_title_custodian_id VARCHAR2(450);
8166 x_title_custodian_id NUMBER;
8167 l_payee_site VARCHAR2(450);
8168 l_registration_location VARCHAR2(450);
8169 l_reg_expiration_date VARCHAR2(450);
8170 l_prtfl_approval_req VARCHAR2(450);
8171 l_prtfl_assgn_group VARCHAR2(450);
8172 l_prtfl_budget_amt_opt VARCHAR2(450);
8173 l_prtfl_budget_fixed_amt VARCHAR2(450);
8174 l_prtfl_budget_amt_formula VARCHAR2(450);
8175 l_prtfl_days_from_con_expr VARCHAR2(450);
8176 l_prtfl_strategy VARCHAR2(450);
8177 l_prop_tax_applicable VARCHAR2(450);
8178 l_prop_tax_lease_rep VARCHAR2(450);
8179 l_mex_tax_sub_basic_wthld VARCHAR2(450);
8180 l_mex_tax_calc_formula VARCHAR2(450);
8181 l_aus_tax_stamp_duty VARCHAR2(450);
8182
8183 -- Added by rravikir (Fix for Bug 3947959)
8184 l_prop_tax_bill_method VARCHAR2(35);
8185 -- End
8186
8187 -- AKP new rules added 4067094
8188
8189 l_gain_loss_tolrnc_allwd_amt NUMBER;
8190 l_gain_loss_tolrnc_allwd_frml VARCHAR2(150);
8191 l_gain_loss_tolrnc_basis VARCHAR2(30);
8192 l_gain_loss_apprv_proc_frml VARCHAR2(150);
8193 l_ert_absorbed_fee_frml VARCHAR2(150);
8194 l_ert_expense_fee_frml VARCHAR2(150);
8195 l_ert_financed_fee_frml VARCHAR2(150);
8196 l_ert_general_fee_frml VARCHAR2(150);
8197 l_ert_income_fee_frml VARCHAR2(150);
8198 l_ert_misc_fee_frml VARCHAR2(150);
8199 l_ert_passthru_fee_frml VARCHAR2(150);
8200 l_ert_rollover_fee_frml VARCHAR2(150);
8201 l_eot_absorbed_fee_frml VARCHAR2(150);
8202 l_eot_expense_fee_frml VARCHAR2(150);
8203 l_eot_financed_fee_frml VARCHAR2(150);
8204 l_eot_general_fee_frml VARCHAR2(150);
8205 l_eot_income_fee_frml VARCHAR2(150);
8206 l_eot_misc_fee_frml VARCHAR2(150);
8207 l_eot_passthru_fee_frml VARCHAR2(150);
8208 l_eot_rollover_fee_frml VARCHAR2(150);
8209
8210 -- AKP new rules added 4067094
8211
8212 l_st_upd_lines_from_contract VARCHAR2(450);
8213 l_st_interest_disclosed VARCHAR2(450);
8214 l_st_transfer_of_title VARCHAR2(450);
8215 l_st_sale_and_lease_back VARCHAR2(450);
8216 l_st_purchase_of_lease VARCHAR2(450);
8217 l_st_equipment_usage VARCHAR2(450);
8218 l_st_equipment_age VARCHAR2(450);
8219 l_st_asset_upfront_tax VARCHAR2(450);
8220 l_st_bill_stream_type_code VARCHAR2(450);
8221 l_st_bill_stream_purpose_code VARCHAR2(450);
8222 l_st_fin_stream_type_code VARCHAR2(450);
8223 l_st_fin_stream_purpose_code VARCHAR2(450);
8224 l_st_cap_stream_type_code VARCHAR2(450);
8225 l_st_cap_stream_purpose_code VARCHAR2(450);
8226 l_st_bill_stream_id NUMBER;
8227 l_st_fin_stream_id NUMBER;
8228 l_st_cap_stream_id NUMBER;
8229
8230 l_st_tax_schedule_applies_flag VARCHAR2(450); -- R12 ebTax change
8231
8232 l_id1 OKL_STRMTYP_SOURCE_V.id1%TYPE;
8233 l_st_stream_name OKL_STRMTYP_SOURCE_V.name%TYPE;
8234 l_send_bill_sale VARCHAR2(150);
8235 l_manual_quotes_only VARCHAR2(150);
8236 l_first_termination_date VARCHAR2(150);
8237 l_quote_rcpt_addl_rcpt_role VARCHAR2(30);
8238 l_quote_rcpt_alloc_ptg NUMBER;
8239 l_quote_apprvr_adv_notice_role VARCHAR2(30);
8240 l_quote_approver_delay_days NUMBER;
8241 l_ert_serv_mant_frml VARCHAR2(150);
8242 l_eot_serv_mant_frml VARCHAR2(150);
8243
8244
8245
8246 x_cash_appl_rule_id OKL_BPD_ACTIVE_CSH_RLS_V.ID1%TYPE;
8247
8248 l_rate_counter NUMBER := 1;
8249 l_tmpl_rate_rec krpv_rec_type;
8250 l_k_rate_tbl krpv_tbl_type;
8251 l_no_data BOOLEAN := TRUE;
8252 x_krpv_rec krpv_rec_type;
8253 l_formula_id NUMBER;
8254
8255 l_progress VARCHAR2(5) := '1.0';
8256
8257 -- Bug 4655611
8258 SUBTYPE fee_types_rec_type IS OKL_MAINTAIN_FEE_PVT.fee_types_rec_type;
8259 l_fee_types_rec fee_types_rec_type;
8260 x_fee_types_rec fee_types_rec_type;
8261
8262 l_contract_number okc_k_headers_b.contract_number%TYPE;
8263 l_contract_start_date okc_k_headers_b.start_date%TYPE;
8264 l_rvi_stream_type_id okl_strmtyp_source_v.id1%TYPE;
8265
8266 CURSOR contract_csr (p_contract_id NUMBER) is
8267 SELECT contract_number, start_date
8268 FROM okl_k_headers_full_v
8269 WHERE id = p_contract_id;
8270
8271 CURSOR rvi_stream_csr (p_sty_id number, p_contract_start_date date) IS
8272 SELECT 'Y'
8273 FROM okl_stream_types_uv STL
8274 WHERE STL.id = p_sty_id
8275 AND STL.start_date <= p_contract_start_date
8276 AND (STL.end_date >= p_contract_start_date OR STL.end_date IS NULL);
8277
8278 l_yn VARCHAR2(1) := 'N';
8279 l_rvi_stream_code OKL_HEADER_INTERFACE.RVI_STREAM_CODE%TYPE;
8280 l_rvi_stream_purpose_code OKL_HEADER_INTERFACE.RVI_STREAM_PURPOSE_CODE%TYPE;
8281 l_rvi_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
8282
8283 -- Bug 4655611
8284
8285 l_eot_auto_proc_purchase_opt VARCHAR2(1);
8286
8287 --R12B eBTax
8288 CURSOR c_tax_schedule_yn IS
8289 SELECT tax_schedule_yn
8290 FROM okl_system_params;
8291
8292 l_tax_schedule_yn VARCHAR2(1);
8293
8294 BEGIN
8295
8296 x_return_status := OKL_API.G_RET_STS_SUCCESS;
8297
8298 --
8299 -- Always Create Re-leased asset rule
8300 -- with value = 'N'
8301 --
8302 /* Created at line creation
8303 l_rgpv_rec := NULL;
8304 l_rgp_id := NULL;
8305
8306 l_rgpv_rec.rgd_code := 'LARLES';
8307 l_rgpv_rec.chr_id := p_chr_id;
8308 l_rgpv_rec.dnz_chr_id := p_chr_id;
8309 l_rgpv_rec.cle_id := NULL;
8310 l_rgpv_rec.rgp_type := 'KRG';
8311
8312 l_rulv_rec := NULL;
8313
8314 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8315 l_rulv_rec.dnz_chr_id := p_chr_id;
8316 l_rulv_rec.rule_information_category := 'LARLES';
8317 l_rulv_rec.rule_information1 := 'N';
8318 l_rulv_rec.std_template_yn := 'N';
8319 l_rulv_rec.warn_yn := 'N';
8320
8321 create_rule_group_and_rule(
8322 x_return_status => x_return_status,
8323 x_msg_count => x_msg_count,
8324 x_msg_data => x_msg_data,
8325 p_rgp_id => l_rgp_id,
8326 p_rgpv_rec => l_rgpv_rec,
8327 p_rulv_rec => l_rulv_rec,
8328 x_rgpv_rec => x_rgpv_rec,
8329 x_rulv_rec => x_rulv_rec
8330 );
8331
8332 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8333 raise header_rule_failed;
8334 END IF;
8335
8336 debug_message('------>Rule: LARLES/LARLES processed');
8337 */
8338
8339 /* Rule Migration
8340 IF (p_header_rec.customer_account_id IS NOT NULL
8341 OR
8342 p_header_rec.customer_account_number IS NOT NULL ) THEN
8343
8344 get_customer_account_id(
8345 x_return_status => x_return_status,
8346 x_msg_count => x_msg_count,
8347 x_msg_data => x_msg_data,
8348 p_contract_number => p_header_rec.contract_number,
8349 p_customer_id => g_customer_id,
8350 p_customer_account_id => p_header_rec.customer_account_id,
8351 p_customer_account_number => p_header_rec.customer_account_number,
8352 x_customer_account_id => x_customer_account_id
8353 );
8354 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8355 x_return_status := OKL_API.G_RET_STS_ERROR;
8356 raise header_rule_failed;
8357 END IF;
8358
8359 g_customer_account_id := x_customer_account_id; -- Used to get Bill to address at Terms Interface
8360 l_progress := '1.1';
8361 ELSE
8362 IF (p_header_rec.template_number IS NOT NULL) THEN
8363
8364 l_rule_count := 0;
8365 get_contract_rules(
8366 x_return_status => x_return_status,
8367 x_msg_count => x_msg_count,
8368 x_msg_data => x_msg_data,
8369 p_chr_id => p_template_id,
8370 p_cle_id => NULL,
8371 p_rgd_code => 'LACAN',
8372 p_rule_code => 'CAN',
8373 x_rulv_tbl => l_rulv_tbl,
8374 x_rule_count => l_rule_count
8375 );
8376
8377 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8378 RAISE header_rule_failed;
8379 END IF;
8380
8381 IF (l_rule_count > 0) THEN
8382 x_customer_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
8383 g_customer_account_id := x_customer_account_id; -- Used to get Bill to address at Terms Interface
8384
8385 get_customer_account_id(
8386 x_return_status => x_return_status,
8387 x_msg_count => x_msg_count,
8388 x_msg_data => x_msg_data,
8389 p_contract_number => p_header_rec.contract_number,
8390 p_customer_id => g_customer_id,
8391 p_customer_account_id => x_customer_account_id,
8392 p_customer_account_number => NULL,
8393 x_customer_account_id => x_customer_account_id
8394 );
8395 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8396 x_return_status := OKL_API.G_RET_STS_ERROR;
8397 raise header_rule_failed;
8398 END IF;
8399
8400 END IF;
8401
8402 END IF;
8403
8404 END IF;
8405
8406 IF (x_customer_account_id IS NOT NULL) THEN
8407
8408 l_rgpv_rec := NULL;
8409 l_rgp_id := NULL;
8410
8411 l_rgpv_rec.rgd_code := 'LACAN';
8412 l_rgpv_rec.chr_id := p_chr_id;
8413 l_rgpv_rec.dnz_chr_id := p_chr_id;
8414 l_rgpv_rec.cle_id := NULL;
8415 l_rgpv_rec.rgp_type := 'KRG';
8416
8417 l_rulv_rec := NULL;
8418
8419 l_rulv_rec.object1_id1 := TO_CHAR(x_customer_account_id);
8420 l_rulv_rec.object1_id2 := '#';
8421 l_rulv_rec.jtot_object1_code := 'OKX_CUSTACCT';
8422 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8423 l_rulv_rec.dnz_chr_id := p_chr_id;
8424 l_rulv_rec.rule_information_category := 'CAN';
8425 l_rulv_rec.std_template_yn := 'N';
8426 l_rulv_rec.warn_yn := 'N';
8427
8428 create_rule_group_and_rule(
8429 x_return_status => x_return_status,
8430 x_msg_count => x_msg_count,
8431 x_msg_data => x_msg_data,
8432 p_rgp_id => l_rgp_id,
8433 p_rgpv_rec => l_rgpv_rec,
8434 p_rulv_rec => l_rulv_rec,
8435 x_rgpv_rec => x_rgpv_rec,
8436 x_rulv_rec => x_rulv_rec
8437 );
8438
8439 l_progress := '1.3';
8440
8441 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8442 raise header_rule_failed;
8443 END IF;
8444
8445 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8446 l_rgp_id := x_rgpv_rec.id;
8447 END IF;
8448
8449 END IF; -- x_customer_account_id
8450
8451 debug_message('------>Rule: LACAN/CAN processed');
8452 */
8453
8454 IF (p_header_rec.rebook_limit_date IS NULL) THEN
8455 IF (p_header_rec.template_number IS NOT NULL) THEN
8456
8457 get_contract_rules(
8458 x_return_status => x_return_status,
8459 x_msg_count => x_msg_count,
8460 x_msg_data => x_msg_data,
8461 p_chr_id => p_template_id,
8462 p_cle_id => NULL,
8463 p_rgd_code => 'LAREBL',
8464 p_rule_code => 'LAREBL',
8465 x_rulv_tbl => l_rulv_tbl,
8466 x_rule_count => l_rule_count
8467 );
8468
8469 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8470 RAISE header_rule_failed;
8471 END IF;
8472
8473 IF (l_rule_count > 0) THEN
8474 l_rebook_limit_date := l_rulv_tbl(1).rule_information1;
8475 END IF;
8476 END IF;
8477 ELSE
8478 l_rebook_limit_date := get_canonical_date(p_header_rec.rebook_limit_date);
8479 END IF;
8480
8481 IF (l_rebook_limit_date IS NOT NULL) THEN
8482
8483 l_rgpv_rec := NULL;
8484 l_rgp_id := NULL;
8485 l_rgpv_rec.rgd_code := 'LAREBL';
8486 l_rgpv_rec.chr_id := p_chr_id;
8487 l_rgpv_rec.dnz_chr_id := p_chr_id;
8488 l_rgpv_rec.cle_id := NULL;
8489 l_rgpv_rec.rgp_type := 'KRG';
8490
8491 l_rulv_rec := NULL;
8492
8493 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8494 l_rulv_rec.dnz_chr_id := p_chr_id;
8495 l_rulv_rec.rule_information1 := l_rebook_limit_date;
8496 l_rulv_rec.rule_information_category := 'LAREBL';
8497 l_rulv_rec.std_template_yn := 'N';
8498 l_rulv_rec.warn_yn := 'N';
8499
8500
8501 create_rule_group_and_rule(
8502 x_return_status => x_return_status,
8503 x_msg_count => x_msg_count,
8504 x_msg_data => x_msg_data,
8505 p_rgp_id => l_rgp_id,
8506 p_rgpv_rec => l_rgpv_rec,
8507 p_rulv_rec => l_rulv_rec,
8508 x_rgpv_rec => x_rgpv_rec,
8509 x_rulv_rec => x_rulv_rec
8510 );
8511
8512 l_progress := '1.5';
8513
8514 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8515 raise header_rule_failed;
8516 END IF;
8517
8518 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8519 l_rgp_id := x_rgpv_rec.id;
8520 END IF;
8521
8522 END IF; -- rebook limit
8523
8524 debug_message('------>Rule: LAREBL/LAREBL processed');
8525
8526 /* Not used currently - 05/20/2002
8527
8528 --Rule Group LATROP
8529
8530 l_rgpv_rec := NULL;
8531 l_rgp_id := NULL;
8532 l_rgpv_rec.rgd_code := 'LATROP';
8533 l_rgpv_rec.chr_id := p_chr_id;
8534 l_rgpv_rec.dnz_chr_id := p_chr_id;
8535 l_rgpv_rec.cle_id := NULL;
8536 l_rgpv_rec.rgp_type := 'KRG';
8537
8538 l_rulv_rec := NULL;
8539 IF (p_header_rec.end_of_term_option IS NOT NULL) THEN
8540
8541 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8542 l_rulv_rec.dnz_chr_id := p_chr_id;
8543 l_rulv_rec.rule_information1 := p_header_rec.end_of_term_option;
8544 l_rulv_rec.rule_information_category := 'LAEOTR';
8545 l_rulv_rec.std_template_yn := 'N';
8546 l_rulv_rec.warn_yn := 'N';
8547
8548 END IF;
8549
8550 IF (p_header_rec.end_of_term_amount IS NOT NULL) THEN
8551 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8552 l_rulv_rec.dnz_chr_id := p_chr_id;
8553 l_rulv_rec.rule_information2 := TO_CHAR(p_header_rec.end_of_term_amount);
8554 l_rulv_rec.rule_information_category := 'LAEOTR';
8555 l_rulv_rec.std_template_yn := 'N';
8556 l_rulv_rec.warn_yn := 'N';
8557
8558 END IF;
8559
8560 create_rule_group_and_rule(
8561 x_return_status => x_return_status,
8562 x_msg_count => x_msg_count,
8563 x_msg_data => x_msg_data,
8564 p_rgp_id => l_rgp_id,
8565 p_rgpv_rec => l_rgpv_rec,
8566 p_rulv_rec => l_rulv_rec,
8567 x_rgpv_rec => x_rgpv_rec,
8568 x_rulv_rec => x_rulv_rec
8569 );
8570
8571 l_progress := '1.7';
8572
8573 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8574 raise header_rule_failed;
8575 END IF;
8576
8577 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8578 l_rgp_id := x_rgpv_rec.id;
8579 END IF;
8580
8581 l_rulv_rec := NULL;
8582
8583 IF (p_header_rec.mid_term_option IS NOT NULL) THEN
8584 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8585 l_rulv_rec.dnz_chr_id := p_chr_id;
8586 l_rulv_rec.rule_information1 := p_header_rec.mid_term_option;
8587 l_rulv_rec.rule_information_category := 'LAMITR';
8588 l_rulv_rec.std_template_yn := 'N';
8589 l_rulv_rec.warn_yn := 'N';
8590 END IF;
8591
8592 IF (p_header_rec.mid_term_amount IS NOT NULL) THEN
8593 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8594 l_rulv_rec.dnz_chr_id := p_chr_id;
8595 l_rulv_rec.rule_information2 := TO_CHAR(p_header_rec.mid_term_amount);
8596 l_rulv_rec.rule_information_category := 'LAMITR';
8597 l_rulv_rec.std_template_yn := 'N';
8598 l_rulv_rec.warn_yn := 'N';
8599 END IF;
8600
8601 create_rule_group_and_rule(
8602 x_return_status => x_return_status,
8603 x_msg_count => x_msg_count,
8604 x_msg_data => x_msg_data,
8605 p_rgp_id => l_rgp_id,
8606 p_rgpv_rec => l_rgpv_rec,
8607 p_rulv_rec => l_rulv_rec,
8608 x_rgpv_rec => x_rgpv_rec,
8609 x_rulv_rec => x_rulv_rec
8610 );
8611
8612 l_progress := '1.8';
8613
8614 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8615 raise header_rule_failed;
8616 END IF;
8617
8618 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8619 l_rgp_id := x_rgpv_rec.id;
8620 END IF;
8621
8622 --Not used currently - 05/20/2002
8623 */
8624
8625 -- RUle Group LASDEP
8626 l_rgpv_rec := NULL;
8627 l_rgp_id := NULL;
8628 l_rgpv_rec.rgd_code := 'LASDEP';
8629 l_rgpv_rec.chr_id := p_chr_id;
8630 l_rgpv_rec.dnz_chr_id := p_chr_id;
8631 l_rgpv_rec.cle_id := NULL;
8632 l_rgpv_rec.rgp_type := 'KRG';
8633
8634 l_rulv_rec := NULL;
8635 --l_rulv_tbl := NULL;
8636
8637 l_security_deposit_hold_flag := p_header_rec.security_deposit_hold_flag;
8638 l_security_deposit_net_flag := p_header_rec.security_deposit_net_flag;
8639 l_security_deposit_date := get_canonical_date(p_header_rec.security_deposit_date);
8640
8641 IF (l_security_deposit_hold_flag IS NULL
8642 OR
8643 l_security_deposit_net_flag IS NULL
8644 OR
8645 l_security_deposit_date IS NULL
8646 AND
8647 p_header_rec.template_number IS NOT NULL) THEN
8648
8649 get_contract_rules(
8650 x_return_status => x_return_status,
8651 x_msg_count => x_msg_count,
8652 x_msg_data => x_msg_data,
8653 p_chr_id => p_template_id,
8654 p_cle_id => NULL,
8655 p_rgd_code => 'LASDEP',
8656 p_rule_code => 'LASDEP',
8657 x_rulv_tbl => l_rulv_tbl,
8658 x_rule_count => l_rule_count
8659 );
8660
8661 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8662 RAISE header_rule_failed;
8663 END IF;
8664
8665 IF (l_rule_count > 0) THEN
8666 l_security_deposit_hold_flag := NVL(l_security_deposit_hold_flag,l_rulv_tbl(1).rule_information2);
8667 l_security_deposit_net_flag := NVL(l_security_deposit_net_flag,l_rulv_tbl(1).rule_information4);
8668 l_security_deposit_date := NVL(l_security_deposit_date,l_rulv_tbl(1).rule_information5);
8669 END IF;
8670 END IF;
8671
8672 IF (l_security_deposit_hold_flag IS NOT NULL ) THEN
8673 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8674 l_rulv_rec.dnz_chr_id := p_chr_id;
8675 l_rulv_rec.rule_information2 := l_security_deposit_hold_flag;
8676 l_rulv_rec.rule_information_category := 'LASDEP';
8677 l_rulv_rec.std_template_yn := 'N';
8678 l_rulv_rec.warn_yn := 'N';
8679 END IF;
8680
8681 IF (l_security_deposit_net_flag IS NOT NULL) THEN
8682 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8683 l_rulv_rec.dnz_chr_id := p_chr_id;
8684 l_rulv_rec.rule_information4 := l_security_deposit_net_flag;
8685 l_rulv_rec.rule_information_category := 'LASDEP';
8686 l_rulv_rec.std_template_yn := 'N';
8687 l_rulv_rec.warn_yn := 'N';
8688 END IF;
8689
8690 IF (l_security_deposit_date IS NOT NULL) THEN
8691 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8692 l_rulv_rec.dnz_chr_id := p_chr_id;
8693 l_rulv_rec.rule_information5 := l_security_deposit_date;
8694 l_rulv_rec.rule_information_category := 'LASDEP';
8695 l_rulv_rec.std_template_yn := 'N';
8696 l_rulv_rec.warn_yn := 'N';
8697 END IF;
8698
8699 create_rule_group_and_rule(
8700 x_return_status => x_return_status,
8701 x_msg_count => x_msg_count,
8702 x_msg_data => x_msg_data,
8703 p_rgp_id => l_rgp_id,
8704 p_rgpv_rec => l_rgpv_rec,
8705 p_rulv_rec => l_rulv_rec,
8706 x_rgpv_rec => x_rgpv_rec,
8707 x_rulv_rec => x_rulv_rec
8708 );
8709
8710 l_progress := '1.9';
8711
8712 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8713 raise header_rule_failed;
8714 END IF;
8715
8716 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8717 l_rgp_id := x_rgpv_rec.id;
8718 END IF;
8719
8720 debug_message('------>Rule: LASDEP/LASDEP processed');
8721
8722 -- Rule Group LARNOP
8723 l_rgpv_rec := NULL;
8724 l_rgp_id := NULL;
8725 l_rgpv_rec.rgd_code := 'LARNOP';
8726 l_rgpv_rec.chr_id := p_chr_id;
8727 l_rgpv_rec.dnz_chr_id := p_chr_id;
8728 l_rgpv_rec.cle_id := NULL;
8729 l_rgpv_rec.rgp_type := 'KRG';
8730
8731 l_rulv_rec := NULL;
8732
8733 l_renewal_notice_days := p_header_rec.renewal_notice_days;
8734 IF (l_renewal_notice_days IS NULL
8735 AND
8736 p_header_rec.template_number IS NOT NULL) THEN
8737
8738 get_contract_rules(
8739 x_return_status => x_return_status,
8740 x_msg_count => x_msg_count,
8741 x_msg_data => x_msg_data,
8742 p_chr_id => p_template_id,
8743 p_cle_id => NULL,
8744 p_rgd_code => 'LARNOP',
8745 p_rule_code => 'LAREND',
8746 x_rulv_tbl => l_rulv_tbl,
8747 x_rule_count => l_rule_count
8748 );
8749
8750 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8751 RAISE header_rule_failed;
8752 END IF;
8753
8754 IF (l_rule_count > 0) THEN
8755 l_renewal_notice_days := l_rulv_tbl(1).rule_information1;
8756 END IF;
8757 END IF;
8758
8759 IF (l_renewal_notice_days IS NOT NULL) THEN
8760 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8761 l_rulv_rec.dnz_chr_id := p_chr_id;
8762 l_rulv_rec.rule_information1 := l_renewal_notice_days;
8763 l_rulv_rec.rule_information_category := 'LAREND';
8764 l_rulv_rec.std_template_yn := 'N';
8765 l_rulv_rec.warn_yn := 'N';
8766 END IF;
8767
8768 create_rule_group_and_rule(
8769 x_return_status => x_return_status,
8770 x_msg_count => x_msg_count,
8771 x_msg_data => x_msg_data,
8772 p_rgp_id => l_rgp_id,
8773 p_rgpv_rec => l_rgpv_rec,
8774 p_rulv_rec => l_rulv_rec,
8775 x_rgpv_rec => x_rgpv_rec,
8776 x_rulv_rec => x_rulv_rec
8777 );
8778
8779 l_progress := '1.10';
8780
8781 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8782 raise header_rule_failed;
8783 END IF;
8784
8785 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8786 l_rgp_id := x_rgpv_rec.id;
8787 END IF;
8788
8789 debug_message('------>Rule: LARNOP/LAREND processed');
8790 l_rulv_rec := NULL;
8791
8792 l_renewal_option := p_header_rec.renewal_option;
8793 l_renewal_amount := TO_CHAR(p_header_rec.renewal_amount);
8794
8795 IF (l_renewal_option IS NULL
8796 OR
8797 l_renewal_amount IS NULL
8798 AND
8799 p_header_rec.template_number IS NOT NULL) THEN
8800
8801 get_contract_rules(
8802 x_return_status => x_return_status,
8803 x_msg_count => x_msg_count,
8804 x_msg_data => x_msg_data,
8805 p_chr_id => p_template_id,
8806 p_cle_id => NULL,
8807 p_rgd_code => 'LARNOP',
8808 p_rule_code => 'LARNEW',
8809 x_rulv_tbl => l_rulv_tbl,
8810 x_rule_count => l_rule_count
8811 );
8812
8813 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8814 RAISE header_rule_failed;
8815 END IF;
8816
8817 IF (l_rule_count > 0) THEN
8818 l_renewal_option := NVL(l_renewal_option,l_rulv_tbl(1).rule_information1);
8819 l_renewal_amount := NVL(l_renewal_amount,l_rulv_tbl(1).rule_information2);
8820 END IF;
8821 END IF;
8822
8823 IF (l_renewal_option IS NOT NULL) THEN
8824 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8825 l_rulv_rec.dnz_chr_id := p_chr_id;
8826 l_rulv_rec.rule_information1 := l_renewal_option;
8827 l_rulv_rec.rule_information_category := 'LARNEW';
8828 l_rulv_rec.std_template_yn := 'N';
8829 l_rulv_rec.warn_yn := 'N';
8830 END IF;
8831
8832 IF (l_renewal_amount IS NOT NULL) THEN
8833 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8834 l_rulv_rec.dnz_chr_id := p_chr_id;
8835 l_rulv_rec.rule_information2 := l_renewal_amount;
8836 l_rulv_rec.rule_information_category := 'LARNEW';
8837 l_rulv_rec.std_template_yn := 'N';
8838 l_rulv_rec.warn_yn := 'N';
8839 END IF;
8840
8841 create_rule_group_and_rule(
8842 x_return_status => x_return_status,
8843 x_msg_count => x_msg_count,
8844 x_msg_data => x_msg_data,
8845 p_rgp_id => l_rgp_id,
8846 p_rgpv_rec => l_rgpv_rec,
8847 p_rulv_rec => l_rulv_rec,
8848 x_rgpv_rec => x_rgpv_rec,
8849 x_rulv_rec => x_rulv_rec
8850 );
8851
8852 l_progress := '1.11';
8853
8854 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8855 raise header_rule_failed;
8856 END IF;
8857
8858 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8859 l_rgp_id := x_rgpv_rec.id;
8860 END IF;
8861
8862 debug_message('------>Rule: LARNOP/LARNEW processed');
8863 -- Rule Group LALIGR
8864
8865 l_rgpv_rec := NULL;
8866 l_rgp_id := NULL;
8867 l_rgpv_rec.rgd_code := 'LALIGR';
8868 l_rgpv_rec.chr_id := p_chr_id;
8869 l_rgpv_rec.dnz_chr_id := p_chr_id;
8870 l_rgpv_rec.cle_id := NULL;
8871 l_rgpv_rec.rgp_type := 'KRG';
8872
8873 l_rulv_rec := NULL;
8874
8875 l_late_interest_held_date := get_canonical_date(p_header_rec.late_interest_held_until_date);
8876
8877 IF (l_late_interest_held_date IS NULL
8878 AND
8879 p_header_rec.template_number IS NOT NULL) THEN
8880 get_contract_rules(
8881 x_return_status => x_return_status,
8882 x_msg_count => x_msg_count,
8883 x_msg_data => x_msg_data,
8884 p_chr_id => p_template_id,
8885 p_cle_id => NULL,
8886 p_rgd_code => 'LALIGR',
8887 p_rule_code => 'LAHUDT',
8888 x_rulv_tbl => l_rulv_tbl,
8889 x_rule_count => l_rule_count
8890 );
8891
8892 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8893 RAISE header_rule_failed;
8894 END IF;
8895
8896 IF (l_rule_count > 0) THEN
8897 l_late_interest_held_date := l_rulv_tbl(1).rule_information1;
8898 END IF;
8899 END IF;
8900
8901 IF (l_late_interest_held_date IS NOT NULL) THEN
8902 l_rulv_rec := NULL;
8903 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8904 l_rulv_rec.dnz_chr_id := p_chr_id;
8905 l_rulv_rec.rule_information1 := l_late_interest_held_date;
8906 l_rulv_rec.rule_information_category := 'LAHUDT';
8907 l_rulv_rec.std_template_yn := 'N';
8908 l_rulv_rec.warn_yn := 'N';
8909 END IF;
8910
8911 create_rule_group_and_rule(
8912 x_return_status => x_return_status,
8913 x_msg_count => x_msg_count,
8914 x_msg_data => x_msg_data,
8915 p_rgp_id => l_rgp_id,
8916 p_rgpv_rec => l_rgpv_rec,
8917 p_rulv_rec => l_rulv_rec,
8918 x_rgpv_rec => x_rgpv_rec,
8919 x_rulv_rec => x_rulv_rec
8920 );
8921
8922 l_progress := '1.11';
8923
8924 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8925 raise header_rule_failed;
8926 END IF;
8927
8928 -- IF (l_rgp_id IS NULL) THEN
8929 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- rviriyal bug #6310553
8930 l_rgp_id := x_rgpv_rec.id;
8931 END IF;
8932
8933 debug_message('------>Rule: LALIGR/LAHUDT processed');
8934 l_rulv_rec := NULL; -- dedey added for bug 4637513
8935
8936 l_late_interest_exempt_flag := p_header_rec.late_interest_exempt_flag;
8937
8938 IF (l_late_interest_exempt_flag IS NULL
8939 AND
8940 p_header_rec.template_number IS NOT NULL) THEN
8941 get_contract_rules(
8942 x_return_status => x_return_status,
8943 x_msg_count => x_msg_count,
8944 x_msg_data => x_msg_data,
8945 p_chr_id => p_template_id,
8946 p_cle_id => NULL,
8947 p_rgd_code => 'LALIGR',
8948 p_rule_code => 'LALIEX',
8949 x_rulv_tbl => l_rulv_tbl,
8950 x_rule_count => l_rule_count
8951 );
8952
8953 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8954 RAISE header_rule_failed;
8955 END IF;
8956
8957 IF (l_rule_count > 0) THEN
8958 l_late_interest_exempt_flag := l_rulv_tbl(1).rule_information1;
8959 END IF;
8960 END IF;
8961
8962 IF (l_late_interest_exempt_flag IS NOT NULL) THEN
8963 l_rulv_rec := NULL;
8964 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8965 l_rulv_rec.dnz_chr_id := p_chr_id;
8966 l_rulv_rec.rule_information1 := l_late_interest_exempt_flag;
8967 l_rulv_rec.rule_information_category := 'LALIEX';
8968 l_rulv_rec.std_template_yn := 'N';
8969 l_rulv_rec.warn_yn := 'N';
8970 END IF;
8971
8972 create_rule_group_and_rule(
8973 x_return_status => x_return_status,
8974 x_msg_count => x_msg_count,
8975 x_msg_data => x_msg_data,
8976 p_rgp_id => l_rgp_id,
8977 p_rgpv_rec => l_rgpv_rec,
8978 p_rulv_rec => l_rulv_rec,
8979 x_rgpv_rec => x_rgpv_rec,
8980 x_rulv_rec => x_rulv_rec
8981 );
8982
8983 l_progress := '1.11';
8984
8985 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8986 raise header_rule_failed;
8987 END IF;
8988
8989 --IF (l_rgp_id IS NULL) THEN
8990 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- rviriyal bug #6310553
8991 l_rgp_id := x_rgpv_rec.id;
8992 END IF;
8993
8994 debug_message('------>Rule: LALIGR/LALIEX processed');
8995 l_rulv_rec := NULL; -- dedey added for bug 4637513
8996
8997 l_late_int_product_code := p_header_rec.late_interest_product_code;
8998 l_late_int_product_id := NULL;
8999
9000 IF (l_late_int_product_code IS NULL
9001 AND
9002 p_header_rec.template_number IS NOT NULL) THEN
9003 get_contract_rules(
9004 x_return_status => x_return_status,
9005 x_msg_count => x_msg_count,
9006 x_msg_data => x_msg_data,
9007 p_chr_id => p_template_id,
9008 p_cle_id => NULL,
9009 p_rgd_code => 'LALIGR',
9010 p_rule_code => 'LALCIN',
9011 x_rulv_tbl => l_rulv_tbl,
9012 x_rule_count => l_rule_count
9013 );
9014
9015 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9016 RAISE header_rule_failed;
9017 END IF;
9018
9019 IF (l_rule_count > 0) THEN
9020 l_late_int_product_id := l_rulv_tbl(1).rule_information1;
9021 END IF;
9022 END IF;
9023
9024 IF (l_late_int_product_code IS NOT NULL) THEN
9025 l_late_int_product_id := get_late_policy_id(
9026 x_return_status => x_return_status,
9027 p_late_policy_code => l_late_int_product_code,
9028 p_org_id => p_header_rec.authoring_org_id,
9029 p_late_policy_type => 'INT'
9030 );
9031
9032 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9033 okl_api.set_message(
9034 G_APP_NAME,
9035 G_INVALID_VALUE,
9036 'CONTRACT_NUM',
9037 p_header_rec.contract_number_old,
9038 'COL_NAME',
9039 'LATE_INTEREST_PRODUCT_CODE',
9040 'COL_VALUE',
9041 l_late_int_product_code
9042 );
9043 raise header_rule_failed;
9044 END IF;
9045
9046 END IF;
9047
9048 IF (l_late_int_product_id IS NOT NULL) THEN
9049 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9050 l_rulv_rec.dnz_chr_id := p_chr_id;
9051 l_rulv_rec.rule_information1 := l_late_int_product_id;
9052 l_rulv_rec.rule_information_category := 'LALCIN';
9053 l_rulv_rec.std_template_yn := 'N';
9054 l_rulv_rec.warn_yn := 'N';
9055 END IF;
9056
9057 create_rule_group_and_rule(
9058 x_return_status => x_return_status,
9059 x_msg_count => x_msg_count,
9060 x_msg_data => x_msg_data,
9061 p_rgp_id => l_rgp_id,
9062 p_rgpv_rec => l_rgpv_rec,
9063 p_rulv_rec => l_rulv_rec,
9064 x_rgpv_rec => x_rgpv_rec,
9065 x_rulv_rec => x_rulv_rec
9066 );
9067 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9068 raise header_rule_failed;
9069 END IF;
9070
9071 --IF (l_rgp_id IS NULL) THEN
9072 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- rviriyal bug #6310553
9073 l_rgp_id := x_rgpv_rec.id;
9074 END IF;
9075
9076 debug_message('------>Rule: LALIGR/LALCIN processed');
9077
9078 -- Rule Group LALCGR
9079 l_rgpv_rec := NULL;
9080 l_rgp_id := NULL;
9081 l_rgpv_rec.rgd_code := 'LALCGR';
9082 l_rgpv_rec.chr_id := p_chr_id;
9083 l_rgpv_rec.dnz_chr_id := p_chr_id;
9084 l_rgpv_rec.cle_id := NULL;
9085 l_rgpv_rec.rgp_type := 'KRG';
9086
9087 l_rulv_rec := NULL;
9088
9089 l_late_charge_held_until_date := get_canonical_date(p_header_rec.late_charge_held_until_date);
9090
9091 IF (l_late_charge_held_until_date IS NULL
9092 AND
9093 p_header_rec.template_number IS NOT NULL) THEN
9094 get_contract_rules(
9095 x_return_status => x_return_status,
9096 x_msg_count => x_msg_count,
9097 x_msg_data => x_msg_data,
9098 p_chr_id => p_template_id,
9099 p_cle_id => NULL,
9100 p_rgd_code => 'LALCGR',
9101 p_rule_code => 'LAHUDT',
9102 x_rulv_tbl => l_rulv_tbl,
9103 x_rule_count => l_rule_count
9104 );
9105
9106 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9107 RAISE header_rule_failed;
9108 END IF;
9109
9110 IF (l_rule_count > 0) THEN
9111 l_late_charge_held_until_date := l_rulv_tbl(1).rule_information1;
9112 END IF;
9113 END IF;
9114
9115 IF (l_late_charge_held_until_date IS NOT NULL) THEN
9116 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9117 l_rulv_rec.dnz_chr_id := p_chr_id;
9118 l_rulv_rec.rule_information1 := l_late_charge_held_until_date;
9119 l_rulv_rec.rule_information_category := 'LAHUDT';
9120 l_rulv_rec.std_template_yn := 'N';
9121 l_rulv_rec.warn_yn := 'N';
9122 END IF;
9123
9124 create_rule_group_and_rule(
9125 x_return_status => x_return_status,
9126 x_msg_count => x_msg_count,
9127 x_msg_data => x_msg_data,
9128 p_rgp_id => l_rgp_id,
9129 p_rgpv_rec => l_rgpv_rec,
9130 p_rulv_rec => l_rulv_rec,
9131 x_rgpv_rec => x_rgpv_rec,
9132 x_rulv_rec => x_rulv_rec
9133 );
9134
9135 l_progress := '1.12';
9136
9137 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9138 raise header_rule_failed;
9139 END IF;
9140
9141 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- Bug 5085099
9142 l_rgp_id := x_rgpv_rec.id;
9143 END IF;
9144
9145 debug_message('------>Rule: LALCGR/LAHUDT processed');
9146 l_rulv_rec := NULL;
9147 l_late_charge_product_code := p_header_rec.late_charge_product_code;
9148 l_late_charge_product_id := NULL;
9149
9150 IF (l_late_charge_product_code IS NULL
9151 AND
9152 p_header_rec.template_number IS NOT NULL) THEN
9153 get_contract_rules(
9154 x_return_status => x_return_status,
9155 x_msg_count => x_msg_count,
9156 x_msg_data => x_msg_data,
9157 p_chr_id => p_template_id,
9158 p_cle_id => NULL,
9159 p_rgd_code => 'LALCGR',
9160 p_rule_code => 'LALCPR',
9161 x_rulv_tbl => l_rulv_tbl,
9162 x_rule_count => l_rule_count
9163 );
9164
9165 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9166 RAISE header_rule_failed;
9167 END IF;
9168
9169 IF (l_rule_count > 0) THEN
9170 l_late_charge_product_id := l_rulv_tbl(1).rule_information1;
9171 END IF;
9172 END IF;
9173
9174 IF (l_late_charge_product_code IS NOT NULL) THEN
9175 l_late_charge_product_id := get_late_policy_id(
9176 x_return_status => x_return_status,
9177 p_late_policy_code => l_late_charge_product_code,
9178 p_org_id => p_header_rec.authoring_org_id,
9179 p_late_policy_type => 'CHG'
9180 );
9181 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9182 okl_api.set_message(
9183 G_APP_NAME,
9184 G_INVALID_VALUE,
9185 'CONTRACT_NUM',
9186 p_header_rec.contract_number_old,
9187 'COL_NAME',
9188 'LATE_CHARGE_PRODUCT_CODE',
9189 'COL_VALUE',
9190 l_late_charge_product_code
9191 );
9192 raise header_rule_failed;
9193 END IF;
9194
9195 END IF;
9196
9197 IF (l_late_charge_product_id IS NOT NULL) THEN
9198 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9199 l_rulv_rec.dnz_chr_id := p_chr_id;
9200 l_rulv_rec.rule_information1 := l_late_charge_product_id;
9201 l_rulv_rec.rule_information_category := 'LALCPR';
9202 l_rulv_rec.std_template_yn := 'N';
9203 l_rulv_rec.warn_yn := 'N';
9204 END IF;
9205
9206 create_rule_group_and_rule(
9207 x_return_status => x_return_status,
9208 x_msg_count => x_msg_count,
9209 x_msg_data => x_msg_data,
9210 p_rgp_id => l_rgp_id,
9211 p_rgpv_rec => l_rgpv_rec,
9212 p_rulv_rec => l_rulv_rec,
9213 x_rgpv_rec => x_rgpv_rec,
9214 x_rulv_rec => x_rulv_rec
9215 );
9216
9217 l_progress := '1.13';
9218
9219 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9220 raise header_rule_failed;
9221 END IF;
9222
9223 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- Bug 5085099
9224 l_rgp_id := x_rgpv_rec.id;
9225 END IF;
9226
9227 debug_message('------>Rule: LALCGR/LALCPR processed');
9228
9229 l_rulv_rec := NULL;
9230
9231 l_late_charge_exempt_flag := p_header_rec.late_charge_exempt_flag;
9232
9233 IF (l_late_charge_exempt_flag IS NULL
9234 AND
9235 p_header_rec.template_number IS NOT NULL) THEN
9236 get_contract_rules(
9237 x_return_status => x_return_status,
9238 x_msg_count => x_msg_count,
9239 x_msg_data => x_msg_data,
9240 p_chr_id => p_template_id,
9241 p_cle_id => NULL,
9242 p_rgd_code => 'LALCGR',
9243 p_rule_code => 'LALCEX',
9244 x_rulv_tbl => l_rulv_tbl,
9245 x_rule_count => l_rule_count
9246 );
9247
9248 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9249 RAISE header_rule_failed;
9250 END IF;
9251
9252 IF (l_rule_count > 0) THEN
9253 l_late_charge_exempt_flag := l_rulv_tbl(1).rule_information1;
9254 END IF;
9255 END IF;
9256
9257 IF (l_late_charge_exempt_flag IS NOT NULL) THEN
9258 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9259 l_rulv_rec.dnz_chr_id := p_chr_id;
9260 l_rulv_rec.rule_information1 := l_late_charge_exempt_flag;
9261 l_rulv_rec.rule_information_category := 'LALCEX';
9262 l_rulv_rec.std_template_yn := 'N';
9263 l_rulv_rec.warn_yn := 'N';
9264 END IF;
9265
9266 create_rule_group_and_rule(
9267 x_return_status => x_return_status,
9268 x_msg_count => x_msg_count,
9269 x_msg_data => x_msg_data,
9270 p_rgp_id => l_rgp_id,
9271 p_rgpv_rec => l_rgpv_rec,
9272 p_rulv_rec => l_rulv_rec,
9273 x_rgpv_rec => x_rgpv_rec,
9274 x_rulv_rec => x_rulv_rec
9275 );
9276
9277 l_progress := '1.14';
9278
9279 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9280 raise header_rule_failed;
9281 END IF;
9282
9283 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9284 l_rgp_id := x_rgpv_rec.id;
9285 END IF;
9286
9287 debug_message('------>Rule: LALCGR/LALCEX processed');
9288
9289 /* -- AKP: Commented as new variable rate processing occurs OKL.H onwards
9290 --Rule Group LAIIND
9291 l_rgpv_rec := NULL;
9292 l_rgp_id := NULL;
9293 l_rgpv_rec.rgd_code := 'LAIIND';
9294 l_rgpv_rec.chr_id := p_chr_id;
9295 l_rgpv_rec.dnz_chr_id := p_chr_id;
9296 l_rgpv_rec.cle_id := NULL;
9297 l_rgpv_rec.rgp_type := 'KRG';
9298
9299 l_variable_rate := p_header_rec.variable_rate;
9300
9301 IF (l_variable_rate IS NULL
9302 AND
9303 p_header_rec.template_number IS NOT NULL) THEN
9304 get_contract_rules(
9305 x_return_status => x_return_status,
9306 x_msg_count => x_msg_count,
9307 x_msg_data => x_msg_data,
9308 p_chr_id => p_template_id,
9309 p_cle_id => NULL,
9310 p_rgd_code => 'LAIIND',
9311 p_rule_code => 'LAINTP',
9312 x_rulv_tbl => l_rulv_tbl,
9313 x_rule_count => l_rule_count
9314 );
9315
9316 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9317 RAISE header_rule_failed;
9318 END IF;
9319
9320 IF (l_rule_count > 0) THEN
9321 l_variable_rate := l_rulv_tbl(1).rule_information1;
9322 END IF;
9323 END IF;
9324
9325 IF (l_variable_rate IS NOT NULL) THEN
9326
9327 l_rulv_rec := NULL;
9328 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9329 l_rulv_rec.dnz_chr_id := p_chr_id;
9330 l_rulv_rec.rule_information1 := l_variable_rate;
9331 l_rulv_rec.rule_information_category := 'LAINTP';
9332 l_rulv_rec.std_template_yn := 'N';
9333 l_rulv_rec.warn_yn := 'N';
9334
9335 create_rule_group_and_rule(
9336 x_return_status => x_return_status,
9337 x_msg_count => x_msg_count,
9338 x_msg_data => x_msg_data,
9339 p_rgp_id => l_rgp_id,
9340 p_rgpv_rec => l_rgpv_rec,
9341 p_rulv_rec => l_rulv_rec,
9342 x_rgpv_rec => x_rgpv_rec,
9343 x_rulv_rec => x_rulv_rec
9344 );
9345
9346 l_progress := '1.141';
9347 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9348 raise header_rule_failed;
9349 END IF;
9350
9351 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9352 l_rgp_id := x_rgpv_rec.id; --store rgp_id
9353 END IF;
9354
9355 END IF; -- variable_rate
9356
9357 debug_message('------>Rule: LAIIND/LAINTP processed');
9358 l_rulv_rec := NULL;
9359
9360 l_convert_type := p_header_rec.convert_type;
9361 l_conversion_method := p_header_rec.conversion_method;
9362 l_date_of_conversion := get_canonicaL_date(p_header_rec.date_of_conversion);
9363 l_convert_by_date := get_canonicaL_date(p_header_rec.convert_by_date);
9364
9365 IF (l_convert_type IS NULL
9366 OR
9367 l_conversion_method IS NULL
9368 OR
9369 l_date_of_conversion IS NULL
9370 OR
9371 l_convert_by_date IS NULL
9372 AND
9373 p_header_rec.template_number IS NOT NULL) THEN
9374 get_contract_rules(
9375 x_return_status => x_return_status,
9376 x_msg_count => x_msg_count,
9377 x_msg_data => x_msg_data,
9378 p_chr_id => p_template_id,
9379 p_cle_id => NULL,
9380 p_rgd_code => 'LAIIND',
9381 p_rule_code => 'LAICON',
9382 x_rulv_tbl => l_rulv_tbl,
9383 x_rule_count => l_rule_count
9384 );
9385
9386 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9387 RAISE header_rule_failed;
9388 END IF;
9389
9390 IF (l_rule_count > 0) THEN
9391 l_convert_type := NVL(l_convert_type,l_rulv_tbl(1).rule_information1);
9392 l_conversion_method := NVL(l_conversion_method,l_rulv_tbl(1).rule_information2);
9393 l_date_of_conversion := NVL(l_date_of_conversion,l_rulv_tbl(1).rule_information3);
9394 l_convert_by_date := NVL(l_convert_by_date,l_rulv_tbl(1).rule_information4);
9395 END IF;
9396 END IF;
9397
9398 IF (l_convert_type IS NOT NULL) THEN
9399 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9400 l_rulv_rec.dnz_chr_id := p_chr_id;
9401 l_rulv_rec.rule_information1 := l_convert_type;
9402 l_rulv_rec.rule_information_category := 'LAICON';
9403 l_rulv_rec.std_template_yn := 'N';
9404 l_rulv_rec.warn_yn := 'N';
9405 END IF;
9406
9407 IF (l_conversion_method IS NOT NULL) THEN
9408 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9409 l_rulv_rec.dnz_chr_id := p_chr_id;
9410 l_rulv_rec.rule_information2 := l_conversion_method;
9411 l_rulv_rec.rule_information_category := 'LAICON';
9412 l_rulv_rec.std_template_yn := 'N';
9413 l_rulv_rec.warn_yn := 'N';
9414 END IF;
9415
9416 IF (l_date_of_conversion IS NOT NULL) THEN
9417 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9418 l_rulv_rec.dnz_chr_id := p_chr_id;
9419 l_rulv_rec.rule_information3 := l_date_of_conversion;
9420 l_rulv_rec.rule_information_category := 'LAICON';
9421 l_rulv_rec.std_template_yn := 'N';
9422 l_rulv_rec.warn_yn := 'N';
9423 END IF;
9424
9425 IF (l_convert_by_date IS NOT NULL) THEN
9426 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9427 l_rulv_rec.dnz_chr_id := p_chr_id;
9428 l_rulv_rec.rule_information4 := l_convert_by_date;
9429 l_rulv_rec.rule_information_category := 'LAICON';
9430 l_rulv_rec.std_template_yn := 'N';
9431 l_rulv_rec.warn_yn := 'N';
9432 END IF;
9433
9434 create_rule_group_and_rule(
9435 x_return_status => x_return_status,
9436 x_msg_count => x_msg_count,
9437 x_msg_data => x_msg_data,
9438 p_rgp_id => l_rgp_id,
9439 p_rgpv_rec => l_rgpv_rec,
9440 p_rulv_rec => l_rulv_rec,
9441 x_rgpv_rec => x_rgpv_rec,
9442 x_rulv_rec => x_rulv_rec
9443 );
9444
9445 l_progress := '1.15';
9446
9447 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9448 raise header_rule_failed;
9449 END IF;
9450
9451 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9452 l_rgp_id := x_rgpv_rec.id;
9453 END IF;
9454
9455 debug_message('------>Rule: LAIIND/LAICON processed');
9456 l_rulv_rec := NULL;
9457
9458 l_variable_method := p_header_rec.variable_method;
9459 l_index_name := p_header_rec.index_name;
9460 l_index_id := NULL;
9461 l_base_rate := p_header_rec.base_rate;
9462 l_adder := p_header_rec.adder;
9463 l_minimum_rate := p_header_rec.minimum_rate;
9464 l_maximum_rate := p_header_rec.maximum_rate;
9465 l_tolerance := p_header_rec.tolerance;
9466 l_adjustment_frequency := p_header_rec.adjustment_frequency;
9467
9468 IF (l_variable_method IS NULL
9469 OR
9470 l_index_name IS NULL
9471 OR
9472 l_base_rate IS NULL
9473 OR
9474 l_adder IS NULL
9475 OR
9476 l_minimum_rate IS NULL
9477 OR
9478 l_maximum_rate IS NULL
9479 OR
9480 l_tolerance IS NULL
9481 OR
9482 l_adjustment_frequency IS NULL
9483 AND
9484 p_header_rec.template_number IS NOT NULL) THEN
9485 get_contract_rules(
9486 x_return_status => x_return_status,
9487 x_msg_count => x_msg_count,
9488 x_msg_data => x_msg_data,
9489 p_chr_id => p_template_id,
9490 p_cle_id => NULL,
9491 p_rgd_code => 'LAIIND',
9492 p_rule_code => 'LAIVAR',
9493 x_rulv_tbl => l_rulv_tbl,
9494 x_rule_count => l_rule_count
9495 );
9496
9497 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9498 RAISE header_rule_failed;
9499 END IF;
9500
9501 IF (l_rule_count > 0) THEN
9502 l_variable_method := NVL(l_variable_method,l_rulv_tbl(1).rule_information1);
9503 l_index_id := NVL(l_index_id,l_rulv_tbl(1).rule_information2);
9504 l_base_rate := NVL(l_base_rate,l_rulv_tbl(1).rule_information3);
9505 l_adder := NVL(l_adder,l_rulv_tbl(1).rule_information4);
9506 l_minimum_rate := NVL(l_minimum_rate,l_rulv_tbl(1).rule_information5);
9507 l_maximum_rate := NVL(l_maximum_rate,l_rulv_tbl(1).rule_information6);
9508 l_tolerance := NVL(l_tolerance,l_rulv_tbl(1).rule_information7);
9509 l_adjustment_frequency := NVL(l_adjustment_frequency,l_rulv_tbl(1).rule_information8);
9510 END IF;
9511 END IF;
9512
9513 IF (l_variable_method IS NOT NULL) THEN
9514 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9515 l_rulv_rec.dnz_chr_id := p_chr_id;
9516 l_rulv_rec.rule_information1 := l_variable_method;
9517 l_rulv_rec.rule_information_category := 'LAIVAR';
9518 l_rulv_rec.std_template_yn := 'N';
9519 l_rulv_rec.warn_yn := 'N';
9520 END IF;
9521
9522 IF (l_index_name IS NOT NULL) THEN
9523
9524 get_index_id(
9525 x_return_status => x_return_status,
9526 p_index_name => l_index_name,
9527 x_index_id => x_index_id
9528 );
9529 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9530 okl_api.set_message(
9531 G_APP_NAME,
9532 G_INVALID_VALUE,
9533 'CONTRACT_NUM',
9534 p_header_rec.contract_number_old,
9535 'COL_NAME',
9536 'INDEX_NAME',
9537 'COL_VALUE',
9538 p_header_rec.index_name
9539 );
9540 raise header_rule_failed;
9541 END IF;
9542 l_index_id := x_index_id;
9543 END IF;
9544
9545 IF (l_index_id IS NOT NULL) THEN
9546 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9547 l_rulv_rec.dnz_chr_id := p_chr_id;
9548 l_rulv_rec.rule_information2 := TO_CHAR(x_index_id);
9549 l_rulv_rec.rule_information_category := 'LAIVAR';
9550 l_rulv_rec.std_template_yn := 'N';
9551 l_rulv_rec.warn_yn := 'N';
9552 END IF;
9553
9554 IF (l_base_rate IS NOT NULL) THEN
9555 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9556 l_rulv_rec.dnz_chr_id := p_chr_id;
9557 l_rulv_rec.rule_information3 := l_base_rate;
9558 l_rulv_rec.rule_information_category := 'LAIVAR';
9559 l_rulv_rec.std_template_yn := 'N';
9560 l_rulv_rec.warn_yn := 'N';
9561 END IF;
9562
9563 IF (l_adder IS NOT NULL) THEN
9564 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9565 l_rulv_rec.dnz_chr_id := p_chr_id;
9566 l_rulv_rec.rule_information4 := l_adder;
9567 l_rulv_rec.rule_information_category := 'LAIVAR';
9568 l_rulv_rec.std_template_yn := 'N';
9569 l_rulv_rec.warn_yn := 'N';
9570 END IF;
9571
9572 IF (l_minimum_rate IS NOT NULL) THEN
9573 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9574 l_rulv_rec.dnz_chr_id := p_chr_id;
9575 l_rulv_rec.rule_information5 := l_minimum_rate;
9576 l_rulv_rec.rule_information_category := 'LAIVAR';
9577 l_rulv_rec.std_template_yn := 'N';
9578 l_rulv_rec.warn_yn := 'N';
9579 END IF;
9580
9581 IF (l_maximum_rate IS NOT NULL) THEN
9582 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9583 l_rulv_rec.dnz_chr_id := p_chr_id;
9584 l_rulv_rec.rule_information6 := l_maximum_rate;
9585 l_rulv_rec.rule_information_category := 'LAIVAR';
9586 l_rulv_rec.std_template_yn := 'N';
9587 l_rulv_rec.warn_yn := 'N';
9588 END IF;
9589
9590 IF (l_tolerance IS NOT NULL) THEN
9591 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9592 l_rulv_rec.dnz_chr_id := p_chr_id;
9593 l_rulv_rec.rule_information7 := l_tolerance;
9594 l_rulv_rec.rule_information_category := 'LAIVAR';
9595 l_rulv_rec.std_template_yn := 'N';
9596 l_rulv_rec.warn_yn := 'N';
9597 END IF;
9598
9599 IF (l_adjustment_frequency IS NOT NULL) THEN
9600 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9601 l_rulv_rec.dnz_chr_id := p_chr_id;
9602 l_rulv_rec.rule_information8 := l_adjustment_frequency;
9603 l_rulv_rec.rule_information_category := 'LAIVAR';
9604 l_rulv_rec.std_template_yn := 'N';
9605 l_rulv_rec.warn_yn := 'N';
9606 END IF;
9607 create_rule_group_and_rule(
9608 x_return_status => x_return_status,
9609 x_msg_count => x_msg_count,
9610 x_msg_data => x_msg_data,
9611 p_rgp_id => l_rgp_id,
9612 p_rgpv_rec => l_rgpv_rec,
9613 p_rulv_rec => l_rulv_rec,
9614 x_rgpv_rec => x_rgpv_rec,
9615 x_rulv_rec => x_rulv_rec
9616 );
9617
9618 l_progress := '1.16';
9619 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9620 x_return_status := OKL_API.G_RET_STS_ERROR;
9621 raise header_rule_failed;
9622 END IF;
9623
9624 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9625 l_rgp_id := x_rgpv_rec.id;
9626 END IF;
9627
9628 debug_message('------>Rule: LAIIND/LAIVAR processed');
9629
9630 l_days_in_year := p_header_rec.days_in_year;
9631 l_days_in_month := p_header_rec.days_in_month;
9632 l_interest_method := p_header_rec.interest_method;
9633 l_interest_start_date := get_canonicaL_date(p_header_rec.interest_start_date);
9634 l_method_of_calculation := p_header_rec.method_of_calculation;
9635
9636 l_rulv_rec := NULL;
9637
9638 IF (l_days_in_year IS NULL
9639 OR
9640 l_days_in_month IS NULL
9641 OR
9642 l_interest_method IS NULL
9643 OR
9644 l_interest_start_date IS NULL
9645 OR
9646 l_method_of_calculation IS NULL
9647 AND
9648 p_header_rec.template_number IS NOT NULL) THEN
9649 get_contract_rules(
9650 x_return_status => x_return_status,
9651 x_msg_count => x_msg_count,
9652 x_msg_data => x_msg_data,
9653 p_chr_id => p_template_id,
9654 p_cle_id => NULL,
9655 p_rgd_code => 'LAIIND',
9656 p_rule_code => 'LAICLC',
9657 x_rulv_tbl => l_rulv_tbl,
9658 x_rule_count => l_rule_count
9659 );
9660
9661 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9662 RAISE header_rule_failed;
9663 END IF;
9664
9665 IF (l_rule_count > 0) THEN
9666 l_days_in_year := NVL(l_days_in_year,l_rulv_tbl(1).rule_information1);
9667 l_days_in_month := NVL(l_days_in_month,l_rulv_tbl(1).rule_information2);
9668 l_interest_method := NVL(l_interest_method,l_rulv_tbl(1).rule_information3);
9669 l_interest_start_date := NVL(l_interest_start_date,l_rulv_tbl(1).rule_information4);
9670 l_method_of_calculation := NVL(l_method_of_calculation,l_rulv_tbl(1).rule_information5);
9671 END IF;
9672 END IF;
9673 IF (l_days_in_year IS NOT NULL) THEN
9674 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9675 l_rulv_rec.dnz_chr_id := p_chr_id;
9676 l_rulv_rec.rule_information1 := l_days_in_year;
9677 l_rulv_rec.rule_information_category := 'LAICLC';
9678 l_rulv_rec.std_template_yn := 'N';
9679 l_rulv_rec.warn_yn := 'N';
9680 END IF;
9681
9682 IF (l_days_in_month IS NOT NULL) THEN
9683 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9684 l_rulv_rec.dnz_chr_id := p_chr_id;
9685 l_rulv_rec.rule_information2 := l_days_in_month;
9686 l_rulv_rec.rule_information_category := 'LAICLC';
9687 l_rulv_rec.std_template_yn := 'N';
9688 l_rulv_rec.warn_yn := 'N';
9689 END IF;
9690
9691 IF (l_interest_method IS NOT NULL) THEN
9692 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9693 l_rulv_rec.dnz_chr_id := p_chr_id;
9694 l_rulv_rec.rule_information3 := l_interest_method;
9695 l_rulv_rec.rule_information_category := 'LAICLC';
9696 l_rulv_rec.std_template_yn := 'N';
9697 l_rulv_rec.warn_yn := 'N';
9698 END IF;
9699
9700 IF (l_interest_start_date IS NOT NULL) THEN
9701 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9702 l_rulv_rec.dnz_chr_id := p_chr_id;
9703 l_rulv_rec.rule_information4 := l_interest_start_date;
9704 l_rulv_rec.rule_information_category := 'LAICLC';
9705 l_rulv_rec.std_template_yn := 'N';
9706 l_rulv_rec.warn_yn := 'N';
9707 END IF;
9708
9709 IF (l_method_of_calculation IS NOT NULL) THEN
9710 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9711 l_rulv_rec.dnz_chr_id := p_chr_id;
9712 l_rulv_rec.rule_information5 := l_method_of_calculation;
9713 l_rulv_rec.rule_information_category := 'LAICLC';
9714 l_rulv_rec.std_template_yn := 'N';
9715 l_rulv_rec.warn_yn := 'N';
9716 END IF;
9717
9718 create_rule_group_and_rule(
9719 x_return_status => x_return_status,
9720 x_msg_count => x_msg_count,
9721 x_msg_data => x_msg_data,
9722 p_rgp_id => l_rgp_id,
9723 p_rgpv_rec => l_rgpv_rec,
9724 p_rulv_rec => l_rulv_rec,
9725 x_rgpv_rec => x_rgpv_rec,
9726 x_rulv_rec => x_rulv_rec
9727 );
9728
9729 l_progress := '1.17';
9730 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9731 x_return_status := OKL_API.G_RET_STS_ERROR;
9732 raise header_rule_failed;
9733 END IF;
9734
9735 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9736 l_rgp_id := x_rgpv_rec.id;
9737 END IF;
9738
9739 debug_message('------>Rule: LAIIND/LAICLC processed');
9740 l_rulv_rec := NULL;
9741
9742 l_formula_name := p_header_rec.formula_name;
9743
9744 IF (l_formula_name IS NULL
9745 AND
9746 p_header_rec.template_number IS NOT NULL) THEN
9747 get_contract_rules(
9748 x_return_status => x_return_status,
9749 x_msg_count => x_msg_count,
9750 x_msg_data => x_msg_data,
9751 p_chr_id => p_template_id,
9752 p_cle_id => NULL,
9753 p_rgd_code => 'LAIIND',
9754 p_rule_code => 'LAFORM',
9755 x_rulv_tbl => l_rulv_tbl,
9756 x_rule_count => l_rule_count
9757 );
9758
9759 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9760 RAISE header_rule_failed;
9761 END IF;
9762
9763 IF (l_rule_count > 0) THEN
9764 l_formula_name := l_rulv_tbl(1).rule_information1;
9765 END IF;
9766 END IF;
9767
9768 IF (l_formula_name IS NOT NULL) THEN
9769 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9770 l_rulv_rec.dnz_chr_id := p_chr_id;
9771 l_rulv_rec.rule_information1 := l_formula_name;
9772 l_rulv_rec.rule_information_category := 'LAFORM';
9773 l_rulv_rec.std_template_yn := 'N';
9774 l_rulv_rec.warn_yn := 'N';
9775 END IF;
9776
9777 create_rule_group_and_rule(
9778 x_return_status => x_return_status,
9779 x_msg_count => x_msg_count,
9780 x_msg_data => x_msg_data,
9781 p_rgp_id => l_rgp_id,
9782 p_rgpv_rec => l_rgpv_rec,
9783 p_rulv_rec => l_rulv_rec,
9784 x_rgpv_rec => x_rgpv_rec,
9785 x_rulv_rec => x_rulv_rec
9786 );
9787
9788 l_progress := '1.18';
9789 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9790 x_return_status := OKL_API.G_RET_STS_ERROR;
9791 raise header_rule_failed;
9792 END IF;
9793
9794 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9795 l_rgp_id := x_rgpv_rec.id;
9796 END IF;
9797
9798 debug_message('------>Rule: LAIIND/LAFORM processed');
9799 */ -- AKP: Commented because new vairable rate processing in OKL.H onwards
9800
9801 l_rate_counter := 1;
9802 IF (p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE IS NOT NULL) THEN
9803 l_k_rate_tbl(l_rate_counter).KHR_ID := p_chr_id;
9804 l_k_rate_tbl(l_rate_counter).PARAMETER_TYPE_CODE := 'ACTUAL';
9805 l_k_rate_tbl(l_rate_counter).EFFECTIVE_FROM_DATE := p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE;
9806
9807 l_no_data := TRUE;
9808 IF (p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9809 --get_template_rate(p_chr_id, 'ACTUAL', l_tmpl_rate_rec, l_no_data);
9810 okl_k_rate_params_pvt.get_rate_rec(
9811 p_chr_id => p_chr_id,
9812 p_parameter_type_code => 'ACTUAL',
9813 p_effective_from_date => NULL,
9814 x_krpv_rec => l_tmpl_rate_rec,
9815 x_no_data_found => l_no_data);
9816 END IF;
9817
9818 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE := p_header_rec.INT_RATE_EFFECTIVE_TO_DATE;
9819 IF (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NULL AND NOT(l_no_data) AND
9820 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9821 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE :=
9822 l_tmpl_rate_rec.EFFECTIVE_TO_DATE;
9823 END IF;
9824
9825 debug_message('Var Rate 1.1');
9826 IF (p_header_rec.INDEX_NAME IS NOT NULL) THEN
9827 get_index_id(
9828 x_return_status => x_return_status,
9829 p_index_name => p_header_rec.INDEX_NAME,
9830 x_index_id => l_index_id
9831 );
9832 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9833 okl_api.set_message(
9834 G_APP_NAME,
9835 G_INVALID_VALUE,
9836 'CONTRACT_NUM',
9837 p_header_rec.contract_number_old,
9838 'COL_NAME',
9839 'INDEX_NAME',
9840 'COL_VALUE',
9841 p_header_rec.index_name
9842 );
9843 raise header_rule_failed;
9844 END IF;
9845 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := l_index_id;
9846 ELSE
9847 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := NULL;
9848 IF (p_header_rec.INDEX_NAME IS NULL AND NOT(l_no_data) AND
9849 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9850 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID :=
9851 l_tmpl_rate_rec.INTEREST_INDEX_ID;
9852 END IF;
9853 END IF;
9854
9855 l_k_rate_tbl(l_rate_counter).BASE_RATE := p_header_rec.BASE_RATE;
9856 IF (p_header_rec.BASE_RATE IS NULL AND NOT(l_no_data) AND
9857 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9858 l_k_rate_tbl(l_rate_counter).BASE_RATE :=
9859 l_tmpl_rate_rec.BASE_RATE;
9860 END IF;
9861
9862 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE := p_header_rec.INTEREST_START_DATE;
9863 IF (p_header_rec.INTEREST_START_DATE IS NULL AND NOT(l_no_data) AND
9864 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9865 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE :=
9866 l_tmpl_rate_rec.INTEREST_START_DATE;
9867 END IF;
9868
9869 l_k_rate_tbl(l_rate_counter).ADDER_RATE := p_header_rec.ADDER;
9870 IF (p_header_rec.ADDER IS NULL AND NOT(l_no_data) AND
9871 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9872 l_k_rate_tbl(l_rate_counter).ADDER_RATE :=
9873 l_tmpl_rate_rec.ADDER_RATE;
9874 END IF;
9875
9876 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE := p_header_rec.MINIMUM_RATE;
9877 IF (p_header_rec.MINIMUM_RATE IS NULL AND NOT(l_no_data) AND
9878 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9879 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE :=
9880 l_tmpl_rate_rec.MINIMUM_RATE;
9881 END IF;
9882
9883 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE := p_header_rec.MAXIMUM_RATE;
9884 IF (p_header_rec.MAXIMUM_RATE IS NULL AND NOT(l_no_data) AND
9885 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9886 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE :=
9887 l_tmpl_rate_rec.MAXIMUM_RATE;
9888 END IF;
9889
9890 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE := p_header_rec.INT_RATE_PRINC_BASIS_CODE;
9891 IF (p_header_rec.INT_RATE_PRINC_BASIS_CODE IS NULL) THEN
9892 IF (p_header_rec.INT_RATE_PRINC_BASIS_CODE IS NULL AND NOT(l_no_data) AND
9893 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9894 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE :=
9895 l_tmpl_rate_rec.PRINCIPAL_BASIS_CODE;
9896 ELSE
9897 okl_k_rate_params_pvt.default_k_rate_params(
9898 p_api_version => 1,
9899 p_init_msg_list => OKC_API.G_FALSE,
9900 x_return_status => x_return_status,
9901 x_msg_count => x_msg_count,
9902 x_msg_data => x_msg_data,
9903 p_deal_type => G_DEAL_TYPE,
9904 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9905 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9906 p_column_name => 'PRINCIPAL_BASIS_CODE',
9907 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9908 END IF;
9909 END IF;
9910
9911 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE := p_header_rec.DAYS_IN_MONTH;
9912 IF (p_header_rec.DAYS_IN_MONTH IS NULL) THEN
9913 IF (p_header_rec.DAYS_IN_MONTH IS NULL AND NOT(l_no_data) AND
9914 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9915 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE :=
9916 l_tmpl_rate_rec.DAYS_IN_A_MONTH_CODE;
9917 ELSE
9918 okl_k_rate_params_pvt.default_k_rate_params(
9919 p_api_version => 1,
9920 p_init_msg_list => OKC_API.G_FALSE,
9921 x_return_status => x_return_status,
9922 x_msg_count => x_msg_count,
9923 x_msg_data => x_msg_data,
9924 p_deal_type => G_DEAL_TYPE,
9925 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9926 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9927 p_column_name => 'DAYS_IN_A_MONTH_CODE',
9928 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9929 END IF;
9930 END IF;
9931
9932 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE := p_header_rec.DAYS_IN_YEAR;
9933 IF (p_header_rec.DAYS_IN_YEAR IS NULL) THEN
9934 IF (p_header_rec.DAYS_IN_YEAR IS NULL AND NOT(l_no_data) AND
9935 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9936 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE :=
9937 l_tmpl_rate_rec.DAYS_IN_A_YEAR_CODE;
9938 ELSE
9939 okl_k_rate_params_pvt.default_k_rate_params(
9940 p_api_version => 1,
9941 p_init_msg_list => OKC_API.G_FALSE,
9942 x_return_status => x_return_status,
9943 x_msg_count => x_msg_count,
9944 x_msg_data => x_msg_data,
9945 p_deal_type => G_DEAL_TYPE,
9946 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9947 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9948 p_column_name => 'DAYS_IN_A_YEAR_CODE',
9949 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9950 END IF;
9951 END IF;
9952
9953 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE := p_header_rec.INT_RATE_BASIS_CODE;
9954 IF (p_header_rec.INT_RATE_BASIS_CODE IS NULL) THEN
9955 IF (p_header_rec.INT_RATE_BASIS_CODE IS NULL AND NOT(l_no_data) AND
9956 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9957 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE :=
9958 l_tmpl_rate_rec.INTEREST_BASIS_CODE;
9959 ELSE
9960 okl_k_rate_params_pvt.default_k_rate_params(
9961 p_api_version => 1,
9962 p_init_msg_list => OKC_API.G_FALSE,
9963 x_return_status => x_return_status,
9964 x_msg_count => x_msg_count,
9965 x_msg_data => x_msg_data,
9966 p_deal_type => G_DEAL_TYPE,
9967 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9968 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9969 p_column_name => 'INTEREST_BASIS_CODE',
9970 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9971 END IF;
9972 END IF;
9973
9974 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE := p_header_rec.INT_RATE_DELAY_CODE;
9975 IF (p_header_rec.INT_RATE_DELAY_CODE IS NULL AND NOT(l_no_data) AND
9976 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9977 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE :=
9978 l_tmpl_rate_rec.RATE_DELAY_CODE;
9979 END IF;
9980
9981 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY := p_header_rec.INT_RATE_DELAY_FREQ;
9982 IF (p_header_rec.INT_RATE_DELAY_FREQ IS NULL AND NOT(l_no_data) AND
9983 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9984 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY :=
9985 l_tmpl_rate_rec.RATE_DELAY_FREQUENCY;
9986 END IF;
9987
9988 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE := p_header_rec.INT_RATE_CMPND_FREQ_CODE;
9989 IF (p_header_rec.INT_RATE_CMPND_FREQ_CODE IS NULL AND NOT(l_no_data) AND
9990 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9991 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE :=
9992 l_tmpl_rate_rec.COMPOUNDING_FREQUENCY_CODE;
9993 END IF;
9994
9995 debug_message('Var Rate 1.2');
9996 IF (p_header_rec.FORMULA_NAME IS NOT NULL) THEN
9997 l_formula_id := get_formula_id(p_header_rec.FORMULA_NAME,
9998 x_return_status);
9999 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
10000 --AKP: Todo: set message: Invalid formula name 5024651
10001 okl_api.set_message(
10002 G_APP_NAME,
10003 G_INVALID_VALUE,
10004 'CONTRACT_NUM',
10005 p_header_rec.contract_number_old,
10006 'COL_NAME',
10007 'FORMULA_NAME',
10008 'COL_VALUE',
10009 p_header_rec.FORMULA_NAME
10010 );
10011
10012 RAISE header_rule_failed;
10013 END IF;
10014 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := l_formula_id;
10015 ELSE
10016 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := NULL;
10017 IF (p_header_rec.FORMULA_NAME IS NULL AND NOT(l_no_data) AND
10018 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10019 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID :=
10020 l_tmpl_rate_rec.CALCULATION_FORMULA_ID;
10021 END IF;
10022 END IF;
10023
10024 debug_message('Var Rate 1.3');
10025 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE := p_header_rec.INT_RATE_CATCHUP_BASIS_CODE;
10026 IF (p_header_rec.INT_RATE_CATCHUP_BASIS_CODE IS NULL) THEN
10027 IF (p_header_rec.INT_RATE_CATCHUP_BASIS_CODE IS NULL AND NOT(l_no_data) AND
10028 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10029 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE :=
10030 l_tmpl_rate_rec.CATCHUP_BASIS_CODE;
10031 ELSE
10032 okl_k_rate_params_pvt.default_k_rate_params(
10033 p_api_version => 1,
10034 p_init_msg_list => OKC_API.G_FALSE,
10035 x_return_status => x_return_status,
10036 x_msg_count => x_msg_count,
10037 x_msg_data => x_msg_data,
10038 p_deal_type => G_DEAL_TYPE,
10039 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10040 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10041 p_column_name => 'CATCHUP_BASIS_CODE',
10042 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10043 END IF;
10044 END IF;
10045
10046 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE := p_header_rec.INT_RATE_CATCHUP_START_DATE;
10047 IF (p_header_rec.INT_RATE_CATCHUP_START_DATE IS NULL AND NOT(l_no_data) AND
10048 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10049 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE :=
10050 l_tmpl_rate_rec.CATCHUP_START_DATE;
10051 END IF;
10052
10053 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE := p_header_rec.INT_RATE_CAT_STLMNT_CODE;
10054 IF (p_header_rec.INT_RATE_CAT_STLMNT_CODE IS NULL AND NOT(l_no_data) AND
10055 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10056 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE :=
10057 l_tmpl_rate_rec.CATCHUP_SETTLEMENT_CODE;
10058 END IF;
10059
10060 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE := p_header_rec.INT_RATE_CHANGE_START_DATE;
10061 IF (p_header_rec.INT_RATE_CHANGE_START_DATE IS NULL AND NOT(l_no_data) AND
10062 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10063 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE :=
10064 l_tmpl_rate_rec.RATE_CHANGE_START_DATE;
10065 END IF;
10066
10067 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE := p_header_rec.INT_RATE_CHANGE_FREQ_CODE;
10068 IF (p_header_rec.INT_RATE_CHANGE_FREQ_CODE IS NULL) THEN
10069 IF (p_header_rec.INT_RATE_CHANGE_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10070 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10071 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE :=
10072 l_tmpl_rate_rec.RATE_CHANGE_FREQUENCY_CODE;
10073 /* Removed for Forwar port Bug 8614628
10074 ELSE
10075 okl_k_rate_params_pvt.default_k_rate_params(
10076 p_api_version => 1,
10077 p_init_msg_list => OKC_API.G_FALSE,
10078 x_return_status => x_return_status,
10079 x_msg_count => x_msg_count,
10080 x_msg_data => x_msg_data,
10081 p_deal_type => G_DEAL_TYPE,
10082 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10083 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10084 p_column_name => 'RATE_CHANGE_FREQUENCY_CODE',
10085 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10086 */
10087 END IF;
10088 END IF;
10089
10090 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE := p_header_rec.INT_RATE_CHANGE_VALUE;
10091 IF (p_header_rec.INT_RATE_CHANGE_VALUE IS NULL AND NOT(l_no_data) AND
10092 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10093 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE :=
10094 l_tmpl_rate_rec.RATE_CHANGE_VALUE;
10095 END IF;
10096
10097 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE := p_header_rec.INT_RATE_CAT_FREQ_CODE;
10098 IF (p_header_rec.INT_RATE_CAT_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10099 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10100 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE :=
10101 l_tmpl_rate_rec.CATCHUP_FREQUENCY_CODE;
10102 END IF;
10103
10104 l_k_rate_tbl(l_rate_counter).CONVERSION_OPTION_CODE := p_header_rec.INT_RATE_CON_OPTION_CODE;
10105 IF (p_header_rec.INT_RATE_CON_OPTION_CODE IS NULL AND NOT(l_no_data) AND
10106 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10107 l_k_rate_tbl(l_rate_counter).CONVERSION_OPTION_CODE :=
10108 l_tmpl_rate_rec.CONVERSION_OPTION_CODE;
10109 END IF;
10110
10111 l_k_rate_tbl(l_rate_counter).NEXT_CONVERSION_DATE := p_header_rec.INT_RATE_NEXT_CON_DATE;
10112 IF (p_header_rec.INT_RATE_NEXT_CON_DATE IS NULL AND NOT(l_no_data) AND
10113 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10114 l_k_rate_tbl(l_rate_counter).NEXT_CONVERSION_DATE :=
10115 l_tmpl_rate_rec.NEXT_CONVERSION_DATE;
10116 END IF;
10117
10118 l_k_rate_tbl(l_rate_counter).CONVERSION_TYPE_CODE := p_header_rec.CONVERT_TYPE;
10119 IF (p_header_rec.CONVERT_TYPE IS NULL AND NOT(l_no_data) AND
10120 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10121 l_k_rate_tbl(l_rate_counter).CONVERSION_TYPE_CODE :=
10122 l_tmpl_rate_rec.CONVERSION_TYPE_CODE;
10123 END IF;
10124 l_rate_counter := l_rate_counter + 1;
10125
10126 ELSE
10127 IF (p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE IS NOT NULL OR
10128 p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NOT NULL OR
10129 p_header_rec.INDEX_NAME IS NOT NULL OR
10130 p_header_rec.BASE_RATE IS NOT NULL OR
10131 p_header_rec.INTEREST_START_DATE IS NOT NULL OR
10132 p_header_rec.ADDER IS NOT NULL OR
10133 p_header_rec.MINIMUM_RATE IS NOT NULL OR
10134 p_header_rec.MAXIMUM_RATE IS NOT NULL OR
10135 p_header_rec.INT_RATE_PRINC_BASIS_CODE IS NOT NULL OR
10136 p_header_rec.DAYS_IN_YEAR IS NOT NULL OR
10137 p_header_rec.DAYS_IN_MONTH IS NOT NULL OR
10138 p_header_rec.INT_RATE_BASIS_CODE IS NOT NULL OR
10139 p_header_rec.INT_RATE_DELAY_CODE IS NOT NULL OR
10140 p_header_rec.INT_RATE_DELAY_FREQ IS NOT NULL OR
10141 p_header_rec.INT_RATE_CMPND_FREQ_CODE IS NOT NULL OR
10142 p_header_rec.FORMULA_NAME IS NOT NULL OR
10143 p_header_rec.INT_RATE_CATCHUP_BASIS_CODE IS NOT NULL OR
10144 p_header_rec.INT_RATE_CATCHUP_START_DATE IS NOT NULL OR
10145 p_header_rec.INT_RATE_CAT_STLMNT_CODE IS NOT NULL OR
10146 p_header_rec.INT_RATE_CHANGE_START_DATE IS NOT NULL OR
10147 p_header_rec.INT_RATE_CHANGE_FREQ_CODE IS NOT NULL OR
10148 p_header_rec.INT_RATE_CHANGE_VALUE IS NOT NULL OR
10149 p_header_rec.INT_RATE_CAT_FREQ_CODE IS NOT NULL OR
10150 p_header_rec.INT_RATE_CON_OPTION_CODE IS NOT NULL OR
10151 p_header_rec.INT_RATE_NEXT_CON_DATE IS NOT NULL OR
10152 p_header_rec.CONVERT_TYPE IS NOT NULL
10153 )
10154 THEN
10155 -- Set error. Effective from date is missing
10156 OKC_API.set_message(p_app_name => G_APP_NAME,
10157 p_msg_name => G_REQUIRED_VALUE,
10158 p_token1 => G_COL_NAME_TOKEN,
10159 p_token1_value => 'Effective_From_Date');
10160 x_return_status := OKC_API.G_RET_STS_ERROR;
10161 RAISE header_rule_failed;
10162 END IF;
10163
10164 END IF;
10165
10166 IF (p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE IS NOT NULL) AND
10167 (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NOT NULL OR
10168 p_header_rec.INT_RATE_CON_INDEX_NAME IS NOT NULL OR
10169 p_header_rec.INT_RATE_CON_BASE_RATE IS NOT NULL OR
10170 p_header_rec.INT_RATE_CON_START_DATE IS NOT NULL OR
10171 p_header_rec.INT_RATE_CON_ADDER_RATE IS NOT NULL OR
10172 p_header_rec.INT_RATE_CON_MINIMUM_RATE IS NOT NULL OR
10173 p_header_rec.INT_RATE_CON_MAXIMUM_RATE IS NOT NULL OR
10174 p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NOT NULL OR
10175 p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NOT NULL OR
10176 p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NOT NULL OR
10177 p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NOT NULL OR
10178 p_header_rec.INT_RATE_CON_RATE_DELAY_CODE IS NOT NULL OR
10179 p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ IS NOT NULL OR
10180 p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE IS NOT NULL OR
10181 p_header_rec.INT_RATE_CON_FORMULA_NAME IS NOT NULL OR
10182 p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NOT NULL OR
10183 p_header_rec.INT_RATE_CON_CAT_START_DATE IS NOT NULL OR
10184 p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE IS NOT NULL OR
10185 p_header_rec.INT_RATE_CON_CHG_START_DATE IS NOT NULL OR
10186 p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NOT NULL OR
10187 p_header_rec.INT_RATE_CON_CHG_VALUE IS NOT NULL OR
10188 p_header_rec.INT_RATE_CON_CAT_FREQ_CODE IS NOT NULL ) THEN
10189 l_k_rate_tbl(l_rate_counter).KHR_ID := p_chr_id;
10190 l_k_rate_tbl(l_rate_counter).PARAMETER_TYPE_CODE := 'CONVERSION';
10191 l_k_rate_tbl(l_rate_counter).EFFECTIVE_FROM_DATE := p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE;
10192
10193 l_no_data := TRUE;
10194 IF (p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10195 --get_template_rate(p_chr_id, 'CONVERSION', l_tmpl_rate_rec, l_no_data);
10196 okl_k_rate_params_pvt.get_rate_rec(
10197 p_chr_id => p_chr_id,
10198 p_parameter_type_code => 'CONVERSION',
10199 p_effective_from_date => NULL,
10200 x_krpv_rec => l_tmpl_rate_rec,
10201 x_no_data_found => l_no_data);
10202 END IF;
10203
10204 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE := p_header_rec.INT_RATE_EFFECTIVE_TO_DATE;
10205 IF (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NULL AND NOT(l_no_data) AND
10206 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10207 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE :=
10208 l_tmpl_rate_rec.EFFECTIVE_TO_DATE;
10209 END IF;
10210
10211 IF (p_header_rec.INT_RATE_CON_INDEX_NAME IS NOT NULL) THEN
10212 get_index_id(
10213 x_return_status => x_return_status,
10214 p_index_name => p_header_rec.INT_RATE_CON_INDEX_NAME,
10215 x_index_id => x_index_id
10216 );
10217 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10218 okl_api.set_message(
10219 G_APP_NAME,
10220 G_INVALID_VALUE,
10221 'CONTRACT_NUM',
10222 p_header_rec.contract_number_old,
10223 'COL_NAME',
10224 'INDEX_NAME_CON',
10225 'COL_VALUE',
10226 p_header_rec.int_rate_con_index_name
10227 );
10228 raise header_rule_failed;
10229 END IF;
10230 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := l_index_id;
10231 ELSE
10232 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := NULL;
10233 IF (p_header_rec.INT_RATE_CON_INDEX_NAME IS NULL AND NOT(l_no_data) AND
10234 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10235 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID :=
10236 l_tmpl_rate_rec.INTEREST_INDEX_ID;
10237 END IF;
10238 END IF;
10239
10240 l_k_rate_tbl(l_rate_counter).BASE_RATE := p_header_rec.INT_RATE_CON_BASE_RATE;
10241 IF (p_header_rec.INT_RATE_CON_BASE_RATE IS NULL AND NOT(l_no_data) AND
10242 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10243 l_k_rate_tbl(l_rate_counter).BASE_RATE :=
10244 l_tmpl_rate_rec.BASE_RATE;
10245 END IF;
10246
10247 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE := p_header_rec.INT_RATE_CON_START_DATE;
10248 IF (p_header_rec.INT_RATE_CON_START_DATE IS NULL AND NOT(l_no_data) AND
10249 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10250 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE :=
10251 l_tmpl_rate_rec.INTEREST_START_DATE;
10252 END IF;
10253
10254 l_k_rate_tbl(l_rate_counter).ADDER_RATE := p_header_rec.INT_RATE_CON_ADDER_RATE;
10255 IF (p_header_rec.INT_RATE_CON_ADDER_RATE IS NULL AND NOT(l_no_data) AND
10256 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10257 l_k_rate_tbl(l_rate_counter).ADDER_RATE :=
10258 l_tmpl_rate_rec.ADDER_RATE;
10259 END IF;
10260
10261 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE := p_header_rec.INT_RATE_CON_MAXIMUM_RATE;
10262 IF (p_header_rec.INT_RATE_CON_MAXIMUM_RATE IS NULL AND NOT(l_no_data) AND
10263 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10264 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE :=
10265 l_tmpl_rate_rec.MAXIMUM_RATE;
10266 END IF;
10267
10268 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE := p_header_rec.INT_RATE_CON_MINIMUM_RATE;
10269 IF (p_header_rec.INT_RATE_CON_MINIMUM_RATE IS NULL AND NOT(l_no_data) AND
10270 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10271 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE :=
10272 l_tmpl_rate_rec.MINIMUM_RATE;
10273 END IF;
10274
10275 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE := p_header_rec.INT_RATE_CON_PRC_BAS_CODE;
10276 IF (p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NULL) THEN
10277 IF (p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NULL AND NOT(l_no_data) AND
10278 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10279 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE :=
10280 l_tmpl_rate_rec.PRINCIPAL_BASIS_CODE;
10281 ELSE
10282 okl_k_rate_params_pvt.default_k_rate_params(
10283 p_api_version => 1,
10284 p_init_msg_list => OKC_API.G_FALSE,
10285 x_return_status => x_return_status,
10286 x_msg_count => x_msg_count,
10287 x_msg_data => x_msg_data,
10288 p_deal_type => G_DEAL_TYPE,
10289 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10290 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10291 p_column_name => 'PRINCIPAL_BASIS_CODE',
10292 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10293 END IF;
10294 END IF;
10295
10296 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE := p_header_rec.INT_RATE_CON_DAY_MTH_CODE;
10297 IF (p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NULL) THEN
10298 IF (p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NULL AND NOT(l_no_data) AND
10299 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10300 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE :=
10301 l_tmpl_rate_rec.DAYS_IN_A_MONTH_CODE;
10302 ELSE
10303 okl_k_rate_params_pvt.default_k_rate_params(
10304 p_api_version => 1,
10305 p_init_msg_list => OKC_API.G_FALSE,
10306 x_return_status => x_return_status,
10307 x_msg_count => x_msg_count,
10308 x_msg_data => x_msg_data,
10309 p_deal_type => G_DEAL_TYPE,
10310 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10311 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10312 p_column_name => 'DAYS_IN_A_MONTH_CODE',
10313 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10314 END IF;
10315 END IF;
10316
10317 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE := p_header_rec.INT_RATE_CON_DAY_YER_CODE;
10318 IF (p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NULL) THEN
10319 IF (p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NULL AND NOT(l_no_data) AND
10320 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10321 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE :=
10322 l_tmpl_rate_rec.DAYS_IN_A_YEAR_CODE;
10323 ELSE
10324 okl_k_rate_params_pvt.default_k_rate_params(
10325 p_api_version => 1,
10326 p_init_msg_list => OKC_API.G_FALSE,
10327 x_return_status => x_return_status,
10328 x_msg_count => x_msg_count,
10329 x_msg_data => x_msg_data,
10330 p_deal_type => G_DEAL_TYPE,
10331 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10332 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10333 p_column_name => 'DAYS_IN_A_YEAR_CODE',
10334 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10335 END IF;
10336 END IF;
10337
10338 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE := p_header_rec.INT_RATE_CON_INT_BAS_CODE;
10339 IF (p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NULL) THEN
10340 IF (p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NULL AND NOT(l_no_data) AND
10341 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10342 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE :=
10343 l_tmpl_rate_rec.INTEREST_BASIS_CODE;
10344 ELSE
10345 okl_k_rate_params_pvt.default_k_rate_params(
10346 p_api_version => 1,
10347 p_init_msg_list => OKC_API.G_FALSE,
10348 x_return_status => x_return_status,
10349 x_msg_count => x_msg_count,
10350 x_msg_data => x_msg_data,
10351 p_deal_type => G_DEAL_TYPE,
10352 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10353 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10354 p_column_name => 'INTEREST_BASIS_CODE',
10355 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10356 END IF;
10357 END IF;
10358
10359 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE := p_header_rec.INT_RATE_CON_RATE_DELAY_CODE;
10360 IF (p_header_rec.INT_RATE_CON_RATE_DELAY_CODE IS NULL AND NOT(l_no_data) AND
10361 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10362 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE :=
10363 l_tmpl_rate_rec.RATE_DELAY_CODE;
10364 END IF;
10365
10366 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY := p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ;
10367 IF (p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ IS NULL AND NOT(l_no_data) AND
10368 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10369 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY :=
10370 l_tmpl_rate_rec.RATE_DELAY_FREQUENCY;
10371 END IF;
10372
10373 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE := p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE;
10374 IF (p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10375 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10376 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE :=
10377 l_tmpl_rate_rec.COMPOUNDING_FREQUENCY_CODE;
10378 END IF;
10379
10380 IF (p_header_rec.INT_RATE_CON_FORMULA_NAME IS NOT NULL) THEN
10381 l_formula_id := get_formula_id(p_header_rec.INT_RATE_CON_FORMULA_NAME,
10382 x_return_status);
10383 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
10384 --AKP: Todo: set message: Invalid formula name 5024651
10385 okl_api.set_message(
10386 G_APP_NAME,
10387 G_INVALID_VALUE,
10388 'CONTRACT_NUM',
10389 p_header_rec.contract_number_old,
10390 'COL_NAME',
10391 'FORMULA_NAME',
10392 'COL_VALUE',
10393 p_header_rec.INT_RATE_CON_FORMULA_NAME
10394 );
10395
10396 RAISE header_rule_failed;
10397 END IF;
10398 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := l_formula_id;
10399 ELSE
10400 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := NULL;
10401 IF (p_header_rec.INT_RATE_CON_FORMULA_NAME IS NULL AND NOT(l_no_data) AND
10402 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10403 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID :=
10404 l_tmpl_rate_rec.CALCULATION_FORMULA_ID;
10405 END IF;
10406 END IF;
10407
10408
10409 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE := p_header_rec.INT_RATE_CON_CAT_BAS_CODE;
10410 IF (p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NULL) THEN
10411 IF (p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NULL AND NOT(l_no_data) AND
10412 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10413 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE :=
10414 l_tmpl_rate_rec.CATCHUP_BASIS_CODE;
10415 ELSE
10416 okl_k_rate_params_pvt.default_k_rate_params(
10417 p_api_version => 1,
10418 p_init_msg_list => OKC_API.G_FALSE,
10419 x_return_status => x_return_status,
10420 x_msg_count => x_msg_count,
10421 x_msg_data => x_msg_data,
10422 p_deal_type => G_DEAL_TYPE,
10423 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10424 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10425 p_column_name => 'CATCHUP_BASIS_CODE',
10426 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10427 END IF;
10428 END IF;
10429
10430 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE := p_header_rec.INT_RATE_CON_CAT_START_DATE;
10431 IF (p_header_rec.INT_RATE_CON_CAT_START_DATE IS NULL AND NOT(l_no_data) AND
10432 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10433 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE :=
10434 l_tmpl_rate_rec.CATCHUP_START_DATE;
10435 END IF;
10436
10437 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE := p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE;
10438 IF (p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE IS NULL AND NOT(l_no_data) AND
10439 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10440 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE :=
10441 l_tmpl_rate_rec.CATCHUP_SETTLEMENT_CODE;
10442 END IF;
10443
10444 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE := p_header_rec.INT_RATE_CON_CHG_START_DATE;
10445 IF (p_header_rec.INT_RATE_CON_CHG_START_DATE IS NULL AND NOT(l_no_data) AND
10446 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10447 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE :=
10448 l_tmpl_rate_rec.RATE_CHANGE_START_DATE;
10449 END IF;
10450
10451 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE := p_header_rec.INT_RATE_CON_CHG_FREQ_CODE;
10452 IF (p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NULL) THEN
10453 IF (p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10454 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10455 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE :=
10456 l_tmpl_rate_rec.RATE_CHANGE_FREQUENCY_CODE;
10457 ELSE
10458 okl_k_rate_params_pvt.default_k_rate_params(
10459 p_api_version => 1,
10460 p_init_msg_list => OKC_API.G_FALSE,
10461 x_return_status => x_return_status,
10462 x_msg_count => x_msg_count,
10463 x_msg_data => x_msg_data,
10464 p_deal_type => G_DEAL_TYPE,
10465 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10466 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10467 p_column_name => 'DAYS_IN_A_YEAR_CODE',
10468 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10469 END IF;
10470 END IF;
10471
10472 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE := p_header_rec.INT_RATE_CON_CHG_VALUE;
10473 IF (p_header_rec.INT_RATE_CON_CHG_VALUE IS NULL AND NOT(l_no_data) AND
10474 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10475 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE :=
10476 l_tmpl_rate_rec.RATE_CHANGE_VALUE;
10477 END IF;
10478
10479 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE := p_header_rec.INT_RATE_CON_CAT_FREQ_CODE;
10480 IF (p_header_rec.INT_RATE_CON_CAT_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10481 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10482 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE :=
10483 l_tmpl_rate_rec.CATCHUP_FREQUENCY_CODE;
10484 END IF;
10485 l_rate_counter := l_rate_counter + 1;
10486
10487 ELSE
10488 IF (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NOT NULL OR
10489 p_header_rec.INT_RATE_CON_INDEX_NAME IS NOT NULL OR
10490 p_header_rec.INT_RATE_CON_BASE_RATE IS NOT NULL OR
10491 p_header_rec.INT_RATE_CON_START_DATE IS NOT NULL OR
10492 p_header_rec.INT_RATE_CON_ADDER_RATE IS NOT NULL OR
10493 p_header_rec.INT_RATE_CON_MINIMUM_RATE IS NOT NULL OR
10494 p_header_rec.INT_RATE_CON_MAXIMUM_RATE IS NOT NULL OR
10495 p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NOT NULL OR
10496 p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NOT NULL OR
10497 p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NOT NULL OR
10498 p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NOT NULL OR
10499 p_header_rec.INT_RATE_CON_RATE_DELAY_CODE IS NOT NULL OR
10500 p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ IS NOT NULL OR
10501 p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE IS NOT NULL OR
10502 p_header_rec.INT_RATE_CON_FORMULA_NAME IS NOT NULL OR
10503 p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NOT NULL OR
10504 p_header_rec.INT_RATE_CON_CAT_START_DATE IS NOT NULL OR
10505 p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE IS NOT NULL OR
10506 p_header_rec.INT_RATE_CON_CHG_START_DATE IS NOT NULL OR
10507 p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NOT NULL OR
10508 p_header_rec.INT_RATE_CON_CHG_VALUE IS NOT NULL OR
10509 p_header_rec.INT_RATE_CON_CAT_FREQ_CODE IS NOT NULL )
10510 THEN
10511 -- Set error. Effective from date is missing
10512 OKC_API.set_message(p_app_name => G_APP_NAME,
10513 p_msg_name => G_REQUIRED_VALUE,
10514 p_token1 => G_COL_NAME_TOKEN,
10515 p_token1_value => 'Effective_From_Date_Con');
10516 x_return_status := OKC_API.G_RET_STS_ERROR;
10517 RAISE header_rule_failed;
10518
10519 END IF;
10520
10521 END IF;
10522
10523 debug_message('l_rate_counter=' || l_rate_counter);
10524 IF (l_rate_counter > 1) THEN
10525 OKL_K_RATE_PARAMS_PVT.validate_k_rate_params(
10526 p_api_version => 1 ,
10527 p_init_msg_list => OKC_API.G_FALSE,
10528 x_return_status => x_return_status,
10529 x_msg_count => x_msg_count,
10530 x_msg_data => x_msg_data,
10531 p_product_id => G_PRODUCT_ID,
10532 p_k_rate_tbl => l_k_rate_tbl);
10533 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10534 RAISE header_rule_failed;
10535 ELSE
10536 FOR krpv_rec_cnt IN l_k_rate_tbl.FIRST..l_k_rate_tbl.LAST
10537 LOOP
10538 OKL_K_RATE_PARAMS_PVT.create_k_rate_params(
10539 p_api_version => 1 ,
10540 p_init_msg_list => OKC_API.G_FALSE,
10541 x_return_status => x_return_status,
10542 x_msg_count => x_msg_count,
10543 x_msg_data => x_msg_data,
10544 p_krpv_rec => l_k_rate_tbl(krpv_rec_cnt),
10545 x_krpv_rec => x_krpv_rec,
10546 p_validate_flag => 'N');
10547 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10548 RAISE header_rule_failed;
10549 END IF;
10550 END LOOP;
10551 END IF;
10552 END IF;
10553
10554 debug_message('Rate creation done...');
10555 -- Rule Group LAFCTG
10556 l_rgpv_rec := NULL;
10557 l_rgp_id := NULL;
10558 l_rgpv_rec.rgd_code := 'LAFCTG';
10559 l_rgpv_rec.chr_id := p_chr_id;
10560 l_rgpv_rec.dnz_chr_id := p_chr_id;
10561 l_rgpv_rec.cle_id := NULL;
10562 l_rgpv_rec.rgp_type := 'KRG';
10563
10564 l_rulv_rec := NULL;
10565
10566 l_factoring_date := get_canonicaL_date(p_header_rec.factoring_date);
10567 l_factoring_percentage := p_header_rec.factoring_percentage;
10568 l_factoring_discount_rate := p_header_rec.factoring_discount_rate;
10569
10570 IF (l_factoring_date IS NULL
10571 OR
10572 l_factoring_percentage IS NULL
10573 OR
10574 l_factoring_discount_rate IS NULL
10575 AND
10576 p_header_rec.template_number IS NOT NULL) THEN
10577 get_contract_rules(
10578 x_return_status => x_return_status,
10579 x_msg_count => x_msg_count,
10580 x_msg_data => x_msg_data,
10581 p_chr_id => p_template_id,
10582 p_cle_id => NULL,
10583 p_rgd_code => 'LAFCTG',
10584 p_rule_code => 'LAFCTG',
10585 x_rulv_tbl => l_rulv_tbl,
10586 x_rule_count => l_rule_count
10587 );
10588
10589 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10590 RAISE header_rule_failed;
10591 END IF;
10592
10593 IF (l_rule_count > 0) THEN
10594 l_factoring_date := NVL(l_factoring_date,l_rulv_tbl(1).rule_information1);
10595 l_factoring_percentage := NVL(l_factoring_percentage,l_rulv_tbl(1).rule_information2);
10596 l_factoring_discount_rate := NVL(l_factoring_discount_rate,l_rulv_tbl(1).rule_information3);
10597 END IF;
10598 END IF;
10599
10600 IF (l_factoring_date IS NOT NULL) THEN
10601 l_rulv_rec := NULL;
10602 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10603 l_rulv_rec.dnz_chr_id := p_chr_id;
10604 l_rulv_rec.rule_information1 := l_factoring_date;
10605 l_rulv_rec.rule_information_category := 'LAFCTG';
10606 l_rulv_rec.std_template_yn := 'N';
10607 l_rulv_rec.warn_yn := 'N';
10608 END IF;
10609
10610 IF (l_factoring_percentage IS NOT NULL) THEN
10611 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10612 l_rulv_rec.dnz_chr_id := p_chr_id;
10613 l_rulv_rec.rule_information2 := l_factoring_percentage;
10614 l_rulv_rec.rule_information_category := 'LAFCTG';
10615 l_rulv_rec.std_template_yn := 'N';
10616 l_rulv_rec.warn_yn := 'N';
10617 END IF;
10618
10619 IF (l_factoring_discount_rate IS NOT NULL) THEN
10620 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10621 l_rulv_rec.dnz_chr_id := p_chr_id;
10622 l_rulv_rec.rule_information3 := l_factoring_discount_rate;
10623 l_rulv_rec.rule_information_category := 'LAFCTG';
10624 l_rulv_rec.std_template_yn := 'N';
10625 l_rulv_rec.warn_yn := 'N';
10626 END IF;
10627
10628 create_rule_group_and_rule(
10629 x_return_status => x_return_status,
10630 x_msg_count => x_msg_count,
10631 x_msg_data => x_msg_data,
10632 p_rgp_id => l_rgp_id,
10633 p_rgpv_rec => l_rgpv_rec,
10634 p_rulv_rec => l_rulv_rec,
10635 x_rgpv_rec => x_rgpv_rec,
10636 x_rulv_rec => x_rulv_rec
10637 );
10638
10639 l_progress := '1.19';
10640 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10641 x_return_status := OKL_API.G_RET_STS_ERROR;
10642 raise header_rule_failed;
10643 END IF;
10644
10645 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10646 l_rgp_id := x_rgpv_rec.id;
10647 END IF;
10648
10649 debug_message('------>Rule: LAFCTG/LAFCTG processed');
10650 -- Rule Group LAEVEL
10651 l_rgpv_rec := NULL;
10652 l_rgp_id := NULL;
10653 l_rgpv_rec.rgd_code := 'LAEVEL';
10654 l_rgpv_rec.chr_id := p_chr_id;
10655 l_rgpv_rec.dnz_chr_id := p_chr_id;
10656 l_rgpv_rec.cle_id := NULL;
10657 l_rgpv_rec.rgp_type := 'KRG';
10658
10659 l_rulv_rec := NULL;
10660
10661 l_evergreen_eligible_flag := p_header_rec.evergreen_eligible_flag;
10662
10663 IF (l_evergreen_eligible_flag IS NULL
10664 AND p_header_rec.template_number IS NOT NULL) THEN
10665 get_contract_rules(
10666 x_return_status => x_return_status,
10667 x_msg_count => x_msg_count,
10668 x_msg_data => x_msg_data,
10669 p_chr_id => p_template_id,
10670 p_cle_id => NULL,
10671 p_rgd_code => 'LAEVEL',
10672 p_rule_code => 'LAEVEL',
10673 x_rulv_tbl => l_rulv_tbl,
10674 x_rule_count => l_rule_count
10675 );
10676
10677 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10678 RAISE header_rule_failed;
10679 END IF;
10680
10681 IF (l_rule_count > 0) THEN
10682 l_evergreen_eligible_flag := l_rulv_tbl(1).rule_information1;
10683 END IF;
10684 END IF;
10685
10686 IF (l_evergreen_eligible_flag IS NOT NULL) THEN
10687 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10688 l_rulv_rec.dnz_chr_id := p_chr_id;
10689 l_rulv_rec.rule_information1 := l_evergreen_eligible_flag;
10690 l_rulv_rec.rule_information_category := 'LAEVEL';
10691 l_rulv_rec.std_template_yn := 'N';
10692 l_rulv_rec.warn_yn := 'N';
10693 END IF;
10694
10695 create_rule_group_and_rule(
10696 x_return_status => x_return_status,
10697 x_msg_count => x_msg_count,
10698 x_msg_data => x_msg_data,
10699 p_rgp_id => l_rgp_id,
10700 p_rgpv_rec => l_rgpv_rec,
10701 p_rulv_rec => l_rulv_rec,
10702 x_rgpv_rec => x_rgpv_rec,
10703 x_rulv_rec => x_rulv_rec
10704 );
10705
10706 l_progress := '1.20';
10707 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10708 x_return_status := OKL_API.G_RET_STS_ERROR;
10709 raise header_rule_failed;
10710 END IF;
10711
10712 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10713 l_rgp_id := x_rgpv_rec.id;
10714 END IF;
10715
10716 debug_message('------>Rule: LAEVEL/LAEVEL processed');
10717 l_rulv_rec := NULL;
10718
10719 l_evergreen_passthru_fees := TO_CHAR(p_header_rec.evergreen_passthru_fees);
10720 l_evergreen_passthru_percent := TO_CHAR(p_header_rec.evergreen_passthru_percent);
10721
10722 IF (l_evergreen_passthru_fees IS NULL
10723 OR
10724 l_evergreen_passthru_percent IS NULL
10725 AND
10726 p_header_rec.template_number IS NOT NULL) THEN
10727 get_contract_rules(
10728 x_return_status => x_return_status,
10729 x_msg_count => x_msg_count,
10730 x_msg_data => x_msg_data,
10731 p_chr_id => p_template_id,
10732 p_cle_id => NULL,
10733 p_rgd_code => 'LAEVEL',
10734 p_rule_code => 'LAEVPT',
10735 x_rulv_tbl => l_rulv_tbl,
10736 x_rule_count => l_rule_count
10737 );
10738
10739 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10740 RAISE header_rule_failed;
10741 END IF;
10742
10743 IF (l_rule_count > 0) THEN
10744 l_evergreen_passthru_fees := NVL(l_evergreen_passthru_fees, l_rulv_tbl(1).rule_information1);
10745 l_evergreen_passthru_percent := NVL(l_evergreen_passthru_percent, l_rulv_tbl(1).rule_information2);
10746 END IF;
10747 END IF;
10748
10749 IF (l_evergreen_passthru_fees IS NOT NULL) THEN
10750 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10751 l_rulv_rec.dnz_chr_id := p_chr_id;
10752 l_rulv_rec.rule_information1 := l_evergreen_passthru_fees;
10753 l_rulv_rec.rule_information_category := 'LAEVPT';
10754 l_rulv_rec.std_template_yn := 'N';
10755 l_rulv_rec.warn_yn := 'N';
10756 END IF;
10757
10758 IF (l_evergreen_passthru_percent IS NOT NULL) THEN
10759 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10760 l_rulv_rec.dnz_chr_id := p_chr_id;
10761 l_rulv_rec.rule_information2 := l_evergreen_passthru_percent;
10762 l_rulv_rec.rule_information_category := 'LAEVPT';
10763 l_rulv_rec.std_template_yn := 'N';
10764 l_rulv_rec.warn_yn := 'N';
10765 END IF;
10766
10767 create_rule_group_and_rule(
10768 x_return_status => x_return_status,
10769 x_msg_count => x_msg_count,
10770 x_msg_data => x_msg_data,
10771 p_rgp_id => l_rgp_id,
10772 p_rgpv_rec => l_rgpv_rec,
10773 p_rulv_rec => l_rulv_rec,
10774 x_rgpv_rec => x_rgpv_rec,
10775 x_rulv_rec => x_rulv_rec
10776 );
10777
10778 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10779 x_return_status := OKL_API.G_RET_STS_ERROR;
10780 raise header_rule_failed;
10781 END IF;
10782
10783 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10784 l_rgp_id := x_rgpv_rec.id;
10785 END IF;
10786 debug_message('------>Rule: LAEVEL/LAEVPT processed');
10787 l_rulv_rec := NULL;
10788
10789 l_rgpv_rec := NULL;
10790 l_rgp_id := NULL;
10791 l_rgpv_rec.rgd_code := 'LABILL';
10792 l_rgpv_rec.chr_id := p_chr_id;
10793 l_rgpv_rec.dnz_chr_id := p_chr_id;
10794 l_rgpv_rec.cle_id := NULL;
10795 l_rgpv_rec.rgp_type := 'KRG';
10796
10797 /* Rule Migration
10798
10799 x_bill_to_address_id := NULL;
10800
10801 IF (p_header_rec.bill_to_address_id IS NOT NULL
10802 OR
10803 p_header_rec.bill_to_address IS NOT NULL) THEN
10804
10805 get_bill_to_address_id(
10806 x_return_status => x_return_status,
10807 x_msg_count => x_msg_count,
10808 x_msg_data => x_msg_data,
10809 p_contract_number => p_header_rec.contract_number,
10810 p_auth_org_id => p_header_rec.authoring_org_id,
10811 p_bill_to_address_id => p_header_rec.bill_to_address_id,
10812 p_bill_to_address => p_header_rec.bill_to_address,
10813 p_customer_account_id => x_customer_account_id,
10814 x_bill_to_address_id => x_bill_to_address_id
10815 );
10816
10817 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10818 x_return_status := OKL_API.G_RET_STS_ERROR;
10819 raise header_rule_failed;
10820 END IF;
10821
10822 ELSE
10823 IF (p_header_rec.template_number IS NOT NULL) THEN
10824 get_contract_rules(
10825 x_return_status => x_return_status,
10826 x_msg_count => x_msg_count,
10827 x_msg_data => x_msg_data,
10828 p_chr_id => p_template_id,
10829 p_cle_id => NULL,
10830 p_rgd_code => 'LABILL',
10831 p_rule_code => 'BTO',
10832 x_rulv_tbl => l_rulv_tbl,
10833 x_rule_count => l_rule_count
10834 );
10835
10836 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10837 RAISE header_rule_failed;
10838 END IF;
10839
10840 IF (l_rule_count > 0) THEN
10841 x_bill_to_address_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
10842 END IF;
10843 END IF;
10844 END IF;
10845
10846 IF (x_bill_to_address_id IS NOT NULL) THEN
10847 l_rgpv_rec := NULL;
10848 l_rgp_id := NULL;
10849 l_rgpv_rec.rgd_code := 'LABILL';
10850 l_rgpv_rec.chr_id := p_chr_id;
10851 l_rgpv_rec.dnz_chr_id := p_chr_id;
10852 l_rgpv_rec.cle_id := NULL;
10853 l_rgpv_rec.rgp_type := 'KRG';
10854
10855 l_rulv_rec := NULL;
10856 l_rulv_rec.jtot_object1_code := 'OKX_BILLTO';
10857 l_rulv_rec.object1_id1 := TO_CHAR(x_bill_to_address_id);
10858 l_rulv_rec.object1_id2 := '#';
10859 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10860 l_rulv_rec.dnz_chr_id := p_chr_id;
10861 l_rulv_rec.rule_information_category := 'BTO';
10862 l_rulv_rec.std_template_yn := 'N';
10863 l_rulv_rec.warn_yn := 'N';
10864 END IF;
10865
10866 create_rule_group_and_rule(
10867 x_return_status => x_return_status,
10868 x_msg_count => x_msg_count,
10869 x_msg_data => x_msg_data,
10870 p_rgp_id => l_rgp_id,
10871 p_rgpv_rec => l_rgpv_rec,
10872 p_rulv_rec => l_rulv_rec,
10873 x_rgpv_rec => x_rgpv_rec,
10874 x_rulv_rec => x_rulv_rec
10875 );
10876
10877 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10878 x_return_status := OKL_API.G_RET_STS_ERROR;
10879 raise header_rule_failed;
10880 END IF;
10881
10882 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10883 l_rgp_id := x_rgpv_rec.id;
10884 END IF;
10885
10886 debug_message('------>Rule: LABILL/BTO processed');
10887 */
10888 IF (p_header_rec.customer_id IS NOT NULL
10889 OR
10890 p_header_rec.customer_number IS NOT NULL) THEN
10891 x_return_status := validate_customer(
10892 p_contract_number => p_header_rec.contract_number_old,
10893 p_customer_id => p_header_rec.customer_id,
10894 p_customer_number => p_header_rec.customer_number,
10895 x_id1 => l_customer_id
10896 );
10897 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10898 x_return_status := OKL_API.G_RET_STS_ERROR;
10899 raise header_rule_failed;
10900 END IF;
10901 ELSE
10902 -- Get customer info from template_contract
10903 OPEN temp_role_csr(p_template_id);
10904 FETCH temp_role_csr INTO l_customer_id;
10905 CLOSE temp_role_csr;
10906 END IF;
10907
10908 x_bank_account_id := NULL;
10909 IF (p_header_rec.bank_account_id IS NOT NULL
10910 OR
10911 p_header_rec.bank_account_number IS NOT NULL ) THEN
10912
10913 get_bank_account_id(
10914 x_return_status => x_return_status,
10915 x_msg_count => x_msg_count,
10916 x_msg_data => x_msg_data,
10917 p_contract_number => p_header_rec.contract_number_old,
10918 p_auth_org_id => p_header_rec.authoring_org_id,
10919 p_bank_account_id => p_header_rec.bank_account_id,
10920 p_bank_account_number => p_header_rec.bank_account_number,
10921 p_customer_account_id => g_customer_account_id,
10922 p_cust_site_id => g_bill_to_address_id,
10923 x_bank_account_id => x_bank_account_id
10924 );
10925
10926 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10927 x_return_status := OKL_API.G_RET_STS_ERROR;
10928 raise header_rule_failed;
10929 END IF;
10930
10931 ELSE
10932 IF (p_header_rec.template_number IS NOT NULL) THEN
10933 get_contract_rules(
10934 x_return_status => x_return_status,
10935 x_msg_count => x_msg_count,
10936 x_msg_data => x_msg_data,
10937 p_chr_id => p_template_id,
10938 p_cle_id => NULL,
10939 p_rgd_code => 'LABILL',
10940 p_rule_code => 'LABACC',
10941 x_rulv_tbl => l_rulv_tbl,
10942 x_rule_count => l_rule_count
10943 );
10944
10945 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10946 RAISE header_rule_failed;
10947 END IF;
10948
10949 IF (l_rule_count > 0) THEN
10950 x_bank_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
10951 END IF;
10952 END IF;
10953 END IF;
10954
10955 IF (x_bank_account_id IS NOT NULL) THEN
10956 l_rulv_rec := NULL;
10957 l_rulv_rec.jtot_object1_code := 'OKX_CUSTBKAC';
10958 l_rulv_rec.object1_id1 := TO_CHAR(x_bank_account_id);
10959 l_rulv_rec.object1_id2 := '#';
10960 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10961 l_rulv_rec.dnz_chr_id := p_chr_id;
10962 l_rulv_rec.rule_information_category := 'LABACC';
10963 l_rulv_rec.std_template_yn := 'N';
10964 l_rulv_rec.warn_yn := 'N';
10965
10966 create_rule_group_and_rule(
10967 x_return_status => x_return_status,
10968 x_msg_count => x_msg_count,
10969 x_msg_data => x_msg_data,
10970 p_rgp_id => l_rgp_id,
10971 p_rgpv_rec => l_rgpv_rec,
10972 p_rulv_rec => l_rulv_rec,
10973 x_rgpv_rec => x_rgpv_rec,
10974 x_rulv_rec => x_rulv_rec
10975 );
10976
10977 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10978 x_return_status := OKL_API.G_RET_STS_ERROR;
10979 raise header_rule_failed;
10980 END IF;
10981
10982 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10983 l_rgp_id := x_rgpv_rec.id;
10984 END IF;
10985
10986 END IF; --bank_account_id
10987
10988 debug_message('------>Rule: LABILL/LABACC processed');
10989 l_rulv_rec := NULL;
10990
10991 l_reason_for_invoice_review := p_header_rec.reason_for_invoice_review;
10992 l_invoice_review_until_date := get_canonicaL_date(p_header_rec.invoice_review_until_date);
10993
10994 IF (l_reason_for_invoice_review IS NULL
10995 OR
10996 l_invoice_review_until_date IS NULL
10997 AND
10998 p_header_rec.template_number IS NOT NULL) THEN
10999 get_contract_rules(
11000 x_return_status => x_return_status,
11001 x_msg_count => x_msg_count,
11002 x_msg_data => x_msg_data,
11003 p_chr_id => p_template_id,
11004 p_cle_id => NULL,
11005 p_rgd_code => 'LABILL',
11006 p_rule_code => 'LAINPR',
11007 x_rulv_tbl => l_rulv_tbl,
11008 x_rule_count => l_rule_count
11009 );
11010
11011 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11012 RAISE header_rule_failed;
11013 END IF;
11014
11015 IF (l_rule_count > 0) THEN
11016 l_reason_for_invoice_review := NVL(l_reason_for_invoice_review,l_rulv_tbl(1).rule_information1);
11017 l_invoice_review_until_date := NVL(l_invoice_review_until_date,l_rulv_tbl(1).rule_information2);
11018 END IF;
11019 END IF;
11020
11021 IF (l_reason_for_invoice_review IS NOT NULL) THEN
11022 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11023 l_rulv_rec.dnz_chr_id := p_chr_id;
11024 l_rulv_rec.rule_information1 := l_reason_for_invoice_review;
11025 l_rulv_rec.rule_information_category := 'LAINPR';
11026 l_rulv_rec.std_template_yn := 'N';
11027 l_rulv_rec.warn_yn := 'N';
11028 END IF;
11029
11030 IF (l_invoice_review_until_date IS NOT NULL) THEN
11031 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11032 l_rulv_rec.dnz_chr_id := p_chr_id;
11033 l_rulv_rec.rule_information2 := l_invoice_review_until_date;
11034 l_rulv_rec.rule_information_category := 'LAINPR';
11035 l_rulv_rec.std_template_yn := 'N';
11036 l_rulv_rec.warn_yn := 'N';
11037 END IF;
11038
11039 create_rule_group_and_rule(
11040 x_return_status => x_return_status,
11041 x_msg_count => x_msg_count,
11042 x_msg_data => x_msg_data,
11043 p_rgp_id => l_rgp_id,
11044 p_rgpv_rec => l_rgpv_rec,
11045 p_rulv_rec => l_rulv_rec,
11046 x_rgpv_rec => x_rgpv_rec,
11047 x_rulv_rec => x_rulv_rec
11048 );
11049
11050 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11051 x_return_status := OKL_API.G_RET_STS_ERROR;
11052 raise header_rule_failed;
11053 END IF;
11054
11055 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11056 l_rgp_id := x_rgpv_rec.id;
11057 END IF;
11058
11059 debug_message('------>Rule: LABILL/LAINPR processed');
11060 x_invoice_format_id := NULL;
11061 IF (p_header_rec.invoice_format_id IS NOT NULL
11062 OR
11063 p_header_rec.invoice_format_code IS NOT NULL ) THEN
11064 get_invoice_format_id(
11065 x_return_status => x_return_status,
11066 x_msg_count => x_msg_count,
11067 x_msg_data => x_msg_data,
11068 p_contract_number => p_header_rec.contract_number_old,
11069 p_invoice_format_id => p_header_rec.invoice_format_id,
11070 p_invoice_format_code => p_header_rec.invoice_format_code,
11071 x_invoice_format_id => x_invoice_format_id,
11072 x_invoice_format_name => x_invoice_format_name
11073 );
11074
11075 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11076 x_return_status := OKL_API.G_RET_STS_ERROR;
11077 raise header_rule_failed;
11078 END IF;
11079 END IF;
11080
11081 x_cash_appl_rule_id := NULL;
11082 IF (p_header_rec.cash_appl_rule_name IS NOT NULL) THEN
11083 get_cash_appl_rule_id (
11084 x_return_status => x_return_status,
11085 x_msg_count => x_msg_count,
11086 x_msg_data => x_msg_data,
11087 p_contract_number => p_header_rec.contract_number_old,
11088 p_org_id => p_header_rec.authoring_org_id,
11089 p_cash_appl_rule_name => p_header_rec.cash_appl_rule_name,
11090 x_cash_appl_rule_id => x_cash_appl_rule_id
11091 );
11092
11093 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11094 x_return_status := OKL_API.G_RET_STS_ERROR;
11095 raise header_rule_failed;
11096 END IF;
11097
11098 END IF;
11099
11100 IF (p_header_rec.invoice_format_id IS NULL
11101 OR
11102 p_header_rec.invoice_format_code IS NULL
11103 OR
11104 p_header_rec.cash_appl_rule_name IS NULL
11105 OR
11106 p_header_rec.review_invoice_flag IS NULL
11107 OR --hariven bug 5359935
11108 p_header_rec.print_lead_days IS NULL --hariven bug 5359935
11109 AND
11110 p_header_rec.template_number IS NOT NULL) THEN
11111
11112 get_contract_rules(
11113 x_return_status => x_return_status,
11114 x_msg_count => x_msg_count,
11115 x_msg_data => x_msg_data,
11116 p_chr_id => p_template_id,
11117 p_cle_id => NULL,
11118 p_rgd_code => 'LABILL',
11119 p_rule_code => 'LAINVD',
11120 x_rulv_tbl => l_rulv_tbl,
11121 x_rule_count => l_rule_count
11122 );
11123
11124 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11125 RAISE header_rule_failed;
11126 END IF;
11127
11128 IF (l_rule_count > 0) THEN
11129
11130 --sechawla 13-may-09 6826580 : assign ID instead of name
11131 -- x_invoice_format_name := l_rulv_tbl(1).rule_information1;
11132 x_invoice_format_id := l_rulv_tbl(1).rule_information1;
11133
11134 l_review_invoice_flag := NVL(p_header_rec.review_invoice_flag,
11135 l_rulv_tbl(1).rule_information4);
11136
11137 l_print_lead_days := NVL(p_header_rec.print_lead_days, --hariven bug 5359935
11138 l_rulv_tbl(1).rule_information3); --hariven bug 5359935
11139
11140 x_cash_appl_rule_id := NVL(x_cash_appl_rule_id, l_rulv_tbl(1).object1_id1);
11141 END IF;
11142 END IF;
11143
11144 l_rulv_rec := NULL;
11145
11146 --sechawla 13-may-09 6826580 : assign ID instead of name
11147 --IF (x_invoice_format_name IS NOT NULL) THEN
11148 IF (x_invoice_format_id IS NOT NULL) THEN
11149 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11150 l_rulv_rec.dnz_chr_id := p_chr_id;
11151
11152 --sechawla 13-may-09 6826580 : assign ID instead of name
11153 --l_rulv_rec.rule_information1 := x_invoice_format_name;
11154 l_rulv_rec.rule_information1 := x_invoice_format_id;
11155
11156 l_rulv_rec.rule_information_category := 'LAINVD';
11157 l_rulv_rec.std_template_yn := 'N';
11158 l_rulv_rec.warn_yn := 'N';
11159 END IF;
11160
11161 IF (NVL(l_review_invoice_flag, p_header_rec.review_invoice_flag) IS NOT NULL) THEN
11162 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11163 l_rulv_rec.dnz_chr_id := p_chr_id;
11164 l_rulv_rec.rule_information4 := NVL(l_review_invoice_flag, p_header_rec.review_invoice_flag);
11165 l_rulv_rec.rule_information_category := 'LAINVD';
11166 l_rulv_rec.std_template_yn := 'N';
11167 l_rulv_rec.warn_yn := 'N';
11168 END IF;
11169
11170 --hariven bug 5359935 start
11171 IF (NVL(l_print_lead_days, p_header_rec.print_lead_days) IS NOT NULL) THEN
11172 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11173 l_rulv_rec.dnz_chr_id := p_chr_id;
11174 l_rulv_rec.rule_information3 := NVL(l_print_lead_days, p_header_rec.print_lead_days);
11175 l_rulv_rec.rule_information_category := 'LAINVD';
11176 l_rulv_rec.std_template_yn := 'N';
11177 l_rulv_rec.warn_yn := 'N';
11178 END IF;
11179 --hariven bug 5359935 End
11180
11181 IF (x_cash_appl_rule_id IS NOT NULL) THEN
11182 l_rulv_rec.jtot_object1_code := 'OKL_CASHAPPL';
11183 l_rulv_rec.object1_id1 := TO_CHAR(x_cash_appl_rule_id);
11184 l_rulv_rec.object1_id2 := '#';
11185 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11186 l_rulv_rec.dnz_chr_id := p_chr_id;
11187 l_rulv_rec.rule_information_category := 'LAINVD';
11188 l_rulv_rec.std_template_yn := 'N';
11189 l_rulv_rec.warn_yn := 'N';
11190 END IF;
11191
11192 create_rule_group_and_rule(
11193 x_return_status => x_return_status,
11194 x_msg_count => x_msg_count,
11195 x_msg_data => x_msg_data,
11196 p_rgp_id => l_rgp_id,
11197 p_rgpv_rec => l_rgpv_rec,
11198 p_rulv_rec => l_rulv_rec,
11199 x_rgpv_rec => x_rgpv_rec,
11200 x_rulv_rec => x_rulv_rec
11201 );
11202
11203 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11204 x_return_status := OKL_API.G_RET_STS_ERROR;
11205 raise header_rule_failed;
11206 END IF;
11207
11208 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- Bug 5085099
11209 l_rgp_id := x_rgpv_rec.id;
11210 END IF;
11211
11212 debug_message('------>Rule: LABILL/LAINVD processed');
11213 x_payment_method_id := NULL;
11214 IF (p_header_rec.payment_method_id IS NOT NULL
11215 OR
11216 p_header_rec.payment_method IS NOT NULL) THEN
11217 get_payment_method_id(
11218 x_return_status => x_return_status,
11219 x_msg_count => x_msg_count,
11220 x_msg_data => x_msg_data,
11221 p_contract_number => p_header_rec.contract_number_old,
11222 p_customer_account_id => g_customer_account_id,
11223 p_bill_to_address_id => g_bill_to_address_id, -- got from get_bill_to_address_id() above
11224 p_payment_method_id => p_header_rec.payment_method_id,
11225 p_payment_method => p_header_rec.payment_method,
11226 x_payment_method_id => x_payment_method_id
11227 );
11228
11229 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11230 x_return_status := OKL_API.G_RET_STS_ERROR;
11231 raise header_rule_failed;
11232 END IF;
11233
11234 ELSE
11235 IF (p_header_rec.template_number IS NOT NULL) THEN
11236 get_contract_rules(
11237 x_return_status => x_return_status,
11238 x_msg_count => x_msg_count,
11239 x_msg_data => x_msg_data,
11240 p_chr_id => p_template_id,
11241 p_cle_id => NULL,
11242 p_rgd_code => 'LABILL',
11243 p_rule_code => 'LAPMTH',
11244 x_rulv_tbl => l_rulv_tbl,
11245 x_rule_count => l_rule_count
11246 );
11247
11248 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11249 RAISE header_rule_failed;
11250 END IF;
11251
11252 IF (l_rule_count > 0) THEN
11253 x_payment_method_id := l_rulv_tbl(1).object1_id1;
11254 END IF;
11255 END IF;
11256 END IF;
11257 --debug_message('2PMNT ID: '||x_payment_method_id);
11258
11259 l_rulv_rec := NULL;
11260 IF (x_payment_method_id IS NOT NULL) THEN
11261 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11262 l_rulv_rec.dnz_chr_id := p_chr_id;
11263 l_rulv_rec.jtot_object1_code := 'OKX_RCPTMTH';
11264 l_rulv_rec.object1_id1 := TO_CHAR(x_payment_method_id);
11265 l_rulv_rec.object1_id2 := '#';
11266 l_rulv_rec.rule_information_category := 'LAPMTH';
11267 l_rulv_rec.std_template_yn := 'N';
11268 l_rulv_rec.warn_yn := 'N';
11269 END IF;
11270
11271 create_rule_group_and_rule(
11272 x_return_status => x_return_status,
11273 x_msg_count => x_msg_count,
11274 x_msg_data => x_msg_data,
11275 p_rgp_id => l_rgp_id,
11276 p_rgpv_rec => l_rgpv_rec,
11277 p_rulv_rec => l_rulv_rec,
11278 x_rgpv_rec => x_rgpv_rec,
11279 x_rulv_rec => x_rulv_rec
11280 );
11281
11282 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11283 x_return_status := OKL_API.G_RET_STS_ERROR;
11284 raise header_rule_failed;
11285 END IF;
11286
11287 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11288 l_rgp_id := x_rgpv_rec.id;
11289 END IF;
11290
11291 debug_message('------>Rule: LABILL/LAPMTH processed');
11292 -- Rule Group LACPLN
11293 l_rgpv_rec := NULL;
11294 l_rgp_id := NULL;
11295 l_rgpv_rec.rgd_code := 'LACPLN';
11296 l_rgpv_rec.chr_id := p_chr_id;
11297 l_rgpv_rec.dnz_chr_id := p_chr_id;
11298 l_rgpv_rec.cle_id := NULL;
11299 l_rgpv_rec.rgp_type := 'KRG';
11300
11301 l_capitalize_flag := p_header_rec.capitalize_flag;
11302
11303 IF (l_capitalize_flag IS NULL
11304 AND
11305 p_header_rec.template_number IS NOT NULL) THEN
11306 get_contract_rules(
11307 x_return_status => x_return_status,
11308 x_msg_count => x_msg_count,
11309 x_msg_data => x_msg_data,
11310 p_chr_id => p_template_id,
11311 p_cle_id => NULL,
11312 p_rgd_code => 'LACPLN',
11313 p_rule_code => 'LACPLN',
11314 x_rulv_tbl => l_rulv_tbl,
11315 x_rule_count => l_rule_count
11316 );
11317
11318 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11319 RAISE header_rule_failed;
11320 END IF;
11321
11322 IF (l_rule_count > 0) THEN
11323 l_capitalize_flag := l_rulv_tbl(1).rule_information1;
11324 END IF;
11325 END IF;
11326
11327 IF (p_header_rec.capitalize_flag IS NOT NULL) THEN
11328
11329 l_rulv_rec := NULL;
11330 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11331 l_rulv_rec.dnz_chr_id := p_chr_id;
11332 l_rulv_rec.rule_information1 := p_header_rec.capitalize_flag;
11333 l_rulv_rec.rule_information_category := 'LACPLN';
11334 l_rulv_rec.std_template_yn := 'N';
11335 l_rulv_rec.warn_yn := 'N';
11336
11337 create_rule_group_and_rule(
11338 x_return_status => x_return_status,
11339 x_msg_count => x_msg_count,
11340 x_msg_data => x_msg_data,
11341 p_rgp_id => l_rgp_id,
11342 p_rgpv_rec => l_rgpv_rec,
11343 p_rulv_rec => l_rulv_rec,
11344 x_rgpv_rec => x_rgpv_rec,
11345 x_rulv_rec => x_rulv_rec
11346 );
11347
11348 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11349 raise header_rule_failed;
11350 END IF;
11351
11352 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11353 l_rgp_id := x_rgpv_rec.id;
11354 END IF;
11355
11356 END IF; -- capitalize
11357
11358 debug_message('------>Rule: LACPLN/LACPLN processed');
11359 -- Rule Group LANNTF
11360 l_rgpv_rec := NULL;
11361 l_rgp_id := NULL;
11362 l_rgpv_rec.rgd_code := 'LANNTF';
11363 l_rgpv_rec.chr_id := p_chr_id;
11364 l_rgpv_rec.dnz_chr_id := p_chr_id;
11365 l_rgpv_rec.cle_id := NULL;
11366 l_rgpv_rec.rgp_type := 'KRG';
11367
11368 l_non_notification_flag := p_header_rec.non_notification_flag;
11369
11370 IF (l_non_notification_flag IS NULL
11371 AND
11372 p_header_rec.template_number IS NOT NULL) THEN
11373 get_contract_rules(
11374 x_return_status => x_return_status,
11375 x_msg_count => x_msg_count,
11376 x_msg_data => x_msg_data,
11377 p_chr_id => p_template_id,
11378 p_cle_id => NULL,
11379 p_rgd_code => 'LANNTF',
11380 p_rule_code => 'LANNTF',
11381 x_rulv_tbl => l_rulv_tbl,
11382 x_rule_count => l_rule_count
11383 );
11384
11385 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11386 RAISE header_rule_failed;
11387 END IF;
11388
11389 IF (l_rule_count > 0) THEN
11390 l_non_notification_flag := l_rulv_tbl(1).rule_information1;
11391 END IF;
11392 END IF;
11393
11394 IF (l_non_notification_flag IS NOT NULL) THEN
11395
11396 l_rulv_rec := NULL;
11397 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11398 l_rulv_rec.dnz_chr_id := p_chr_id;
11399 l_rulv_rec.rule_information1 := l_non_notification_flag;
11400 l_rulv_rec.rule_information_category := 'LANNTF';
11401 l_rulv_rec.std_template_yn := 'N';
11402 l_rulv_rec.warn_yn := 'N';
11403
11404 create_rule_group_and_rule(
11405 x_return_status => x_return_status,
11406 x_msg_count => x_msg_count,
11407 x_msg_data => x_msg_data,
11408 p_rgp_id => l_rgp_id,
11409 p_rgpv_rec => l_rgpv_rec,
11410 p_rulv_rec => l_rulv_rec,
11411 x_rgpv_rec => x_rgpv_rec,
11412 x_rulv_rec => x_rulv_rec
11413 );
11414
11415 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11416 raise header_rule_failed;
11417 END IF;
11418
11419 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11420 l_rgp_id := x_rgpv_rec.id;
11421 END IF;
11422
11423 END IF; -- non_notification
11424 debug_message('------>Rule: LANNTF/LANNTF processed');
11425
11426 -- Rule Group LARVIN -- DDD
11427 l_rgpv_rec := NULL;
11428 l_rgp_id := NULL;
11429 l_rgpv_rec.rgd_code := 'LARVIN';
11430 l_rgpv_rec.chr_id := p_chr_id;
11431 l_rgpv_rec.dnz_chr_id := p_chr_id;
11432 l_rgpv_rec.cle_id := NULL;
11433 l_rgpv_rec.rgp_type := 'KRG';
11434
11435 l_rulv_rec := NULL;
11436 l_rvi_auto_calculate_flag := p_header_rec.rvi_auto_calculate_flag;
11437
11438 IF (l_rvi_auto_calculate_flag IS NULL
11439 AND
11440 p_header_rec.template_number IS NOT NULL) THEN
11441 get_contract_rules(
11442 x_return_status => x_return_status,
11443 x_msg_count => x_msg_count,
11444 x_msg_data => x_msg_data,
11445 p_chr_id => p_template_id,
11446 p_cle_id => NULL,
11447 p_rgd_code => 'LARVIN',
11448 p_rule_code => 'LARVAU',
11449 x_rulv_tbl => l_rulv_tbl,
11450 x_rule_count => l_rule_count
11451 );
11452
11453 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11454 RAISE header_rule_failed;
11455 END IF;
11456
11457 IF (l_rule_count > 0) THEN
11458 l_rvi_auto_calculate_flag := l_rulv_tbl(1).rule_information1;
11459 END IF;
11460 END IF;
11461
11462 IF (l_rvi_auto_calculate_flag IS NOT NULL) THEN
11463
11464 -- Bug 4655611
11465 IF (NVL(l_rvi_auto_calculate_flag,'N') = 'Y') THEN
11466 -- Validate rvi stream
11467 OPEN contract_csr(p_chr_id);
11468 FETCH contract_csr INTO l_contract_number,l_contract_start_date;
11469
11470 IF contract_csr%NOTFOUND THEN
11471 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
11472 CLOSE contract_csr;
11473 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
11474 p_msg_name => 'OKL_LLA_CHR_ID');
11475 RAISE header_rule_failed;
11476 END IF;
11477
11478 CLOSE contract_csr;
11479 debug_message('After close_contract_csr...');
11480
11481 l_rvi_stream_code := p_header_rec.RVI_STREAM_CODE;
11482 l_rvi_stream_purpose_code := p_header_rec.RVI_STREAM_PURPOSE_CODE;
11483 debug_message('l_rvi_stream_code=' || l_rvi_stream_code);
11484 debug_message('l_rvi_stream_purpose_code=' || l_rvi_stream_purpose_code);
11485 IF ((l_rvi_stream_code IS NOT NULL AND
11486 l_rvi_stream_purpose_code IS NULL) OR
11487 (l_rvi_stream_code IS NULL AND
11488 l_rvi_stream_purpose_code IS NOT NULL)) THEN
11489
11490 okl_api.set_message(
11491 G_APP_NAME,
11492 G_INVALID_VALUE,
11493 'CONTRACT_NUM',
11494 l_contract_number, --||'/'||TO_CHAR(p_line_number),
11495 'COL_NAME',
11496 'RVI_STREAM_CODE, RVI_STREAM_PURPOSE_CODE',
11497 'COL_VALUE',
11498 l_rvi_stream_code||', '||l_rvi_stream_purpose_code
11499 );
11500 x_return_status := OKL_API.G_RET_STS_ERROR;
11501 RAISE header_rule_failed;
11502
11503 ELSIF (l_rvi_stream_code IS NOT NULL AND
11504 l_rvi_stream_purpose_code IS NOT NULL) THEN
11505 check_stream_type_code(
11506 x_return_status => x_return_status,
11507 x_msg_count => x_msg_count,
11508 x_msg_data => x_msg_data,
11509 p_stream_type_code => l_rvi_stream_code,
11510 p_stream_purpose => l_rvi_stream_purpose_code,
11511 x_id1 => l_rvi_stream_type_id,
11512 x_name => l_rvi_stream_name
11513 );
11514 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11515 okl_api.set_message(
11516 G_APP_NAME,
11517 G_INVALID_VALUE,
11518 'CONTRACT_NUM',
11519 l_contract_number, --||'/'||TO_CHAR(p_line_number),
11520 'COL_NAME',
11521 'RVI_STREAM_CODE, RVI_STREAM_PURPOSE_CODE',
11522 'COL_VALUE',
11523 l_rvi_stream_code||', '||l_rvi_stream_purpose_code
11524 );
11525 x_return_status := OKL_API.G_RET_STS_ERROR;
11526 RAISE header_rule_failed;
11527 END IF;
11528
11529 debug_message('l_rvi_stream_type_id=' || l_rvi_stream_type_id);
11530 -- Check if the stream type is ID is effective
11531 OPEN rvi_stream_csr (l_rvi_stream_type_id, l_contract_start_date);
11532 FETCH rvi_stream_csr INTO l_yn;
11533
11534 IF rvi_stream_csr%NOTFOUND THEN
11535 CLOSE rvi_stream_csr;
11536 okl_api.set_message(
11537 G_APP_NAME,
11538 G_NO_STRM_TMPL,
11539 'CONTRACT_NUM',
11540 l_contract_number, --||'/'||p_line_number,
11541 'COL_NAME',
11542 'RVI_STREAM_CODE, RVI_STREAM_PURPOSE_CODE',
11543 'COL_VALUE',
11544 l_rvi_stream_code||', '||l_rvi_stream_purpose_code
11545 );
11546 RAISE header_rule_failed;
11547 ELSE
11548 CLOSE rvi_stream_csr;
11549 END IF;
11550 END IF;
11551
11552 l_fee_types_rec.dnz_chr_id := p_chr_id;
11553 l_fee_types_rec.item_id1 := l_rvi_stream_type_id;
11554 OKL_MAINTAIN_FEE_PVT.PROCESS_RVI_STREAM(
11555 p_api_version => 1.0,
11556 p_init_msg_list => OKL_API.G_FALSE,
11557 x_return_status => x_return_status,
11558 x_msg_count => x_msg_count,
11559 x_msg_data => x_msg_data,
11560 p_check_box_value => 'Y',
11561 p_fee_types_rec => l_fee_types_rec,
11562 x_fee_types_rec => x_fee_types_rec);
11563
11564 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11565 raise header_rule_failed;
11566 END IF;
11567
11568
11569 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11570 l_rulv_rec.dnz_chr_id := p_chr_id;
11571 l_rulv_rec.rule_information1 := l_rvi_auto_calculate_flag;
11572 l_rulv_rec.rule_information_category := 'LARVAU';
11573 l_rulv_rec.std_template_yn := 'N';
11574 l_rulv_rec.warn_yn := 'N';
11575
11576 create_rule_group_and_rule(
11577 x_return_status => x_return_status,
11578 x_msg_count => x_msg_count,
11579 x_msg_data => x_msg_data,
11580 p_rgp_id => l_rgp_id,
11581 p_rgpv_rec => l_rgpv_rec,
11582 p_rulv_rec => l_rulv_rec,
11583 x_rgpv_rec => x_rgpv_rec,
11584 x_rulv_rec => x_rulv_rec
11585 );
11586
11587 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11588 raise header_rule_failed;
11589 END IF;
11590
11591 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11592 l_rgp_id := x_rgpv_rec.id;
11593 END IF;
11594 END IF; -- if rvi_auto_calculate_flag = 'Y'
11595 -- Bug 4655611
11596
11597 END IF; -- rvi_auto_calculate_flag
11598
11599 debug_message('------>Rule: LARVIN/LARVAU processed');
11600 l_rulv_rec := NULL;
11601 /* Removed form Rule Definition 05/22/2002
11602 IF (p_header_rec.rvi_guaranteed_amount IS NOT NULL) THEN
11603
11604 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11605 l_rulv_rec.dnz_chr_id := p_chr_id;
11606 l_rulv_rec.rule_information1 := TO_CHAR(p_header_rec.rvi_guaranteed_amount);
11607 l_rulv_rec.rule_information_category := 'LARVAM';
11608 l_rulv_rec.std_template_yn := 'N';
11609 l_rulv_rec.warn_yn := 'N';
11610
11611 END IF; -- rvi_guaranteed_amount
11612
11613 IF (p_header_rec.rvi_present_guaranteed_amount IS NOT NULL) THEN
11614
11615 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11616 l_rulv_rec.dnz_chr_id := p_chr_id;
11617 l_rulv_rec.rule_information2 := TO_CHAR(p_header_rec.rvi_present_guaranteed_amount);
11618 l_rulv_rec.rule_information_category := 'LARVAM';
11619 l_rulv_rec.std_template_yn := 'N';
11620 l_rulv_rec.warn_yn := 'N';
11621
11622 END IF; -- rvi_guaranteed_amount
11623
11624 IF (p_header_rec.rvi_premium_amount IS NOT NULL) THEN
11625
11626 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11627 l_rulv_rec.dnz_chr_id := p_chr_id;
11628 l_rulv_rec.rule_information3 := TO_CHAR(p_header_rec.rvi_premium_amount);
11629 l_rulv_rec.rule_information_category := 'LARVAM';
11630 l_rulv_rec.std_template_yn := 'N';
11631 l_rulv_rec.warn_yn := 'N';
11632
11633 END IF; -- rvi_guaranteed_amount
11634
11635 -- Removed form Rule Definition 05/22/2002
11636 */
11637
11638 l_rvi_rate := TO_CHAR(p_header_rec.rvi_rate);
11639
11640 IF (l_rvi_rate IS NULL
11641 AND
11642 p_header_rec.template_number IS NOT NULL) THEN
11643 get_contract_rules(
11644 x_return_status => x_return_status,
11645 x_msg_count => x_msg_count,
11646 x_msg_data => x_msg_data,
11647 p_chr_id => p_template_id,
11648 p_cle_id => NULL,
11649 p_rgd_code => 'LARVIN',
11650 p_rule_code => 'LARVAM',
11651 x_rulv_tbl => l_rulv_tbl,
11652 x_rule_count => l_rule_count
11653 );
11654
11655 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11656 RAISE header_rule_failed;
11657 END IF;
11658
11659 IF (l_rule_count > 0) THEN
11660 l_rvi_rate := l_rulv_tbl(1).rule_information4;
11661 END IF;
11662 END IF;
11663
11664 IF (l_rvi_rate IS NOT NULL) THEN
11665
11666 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11667 l_rulv_rec.dnz_chr_id := p_chr_id;
11668 l_rulv_rec.rule_information4 := l_rvi_rate;
11669 l_rulv_rec.rule_information_category := 'LARVAM';
11670 l_rulv_rec.std_template_yn := 'N';
11671 l_rulv_rec.warn_yn := 'N';
11672
11673 END IF; -- rvi_guaranteed_amount
11674
11675 create_rule_group_and_rule(
11676 x_return_status => x_return_status,
11677 x_msg_count => x_msg_count,
11678 x_msg_data => x_msg_data,
11679 p_rgp_id => l_rgp_id,
11680 p_rgpv_rec => l_rgpv_rec,
11681 p_rulv_rec => l_rulv_rec,
11682 x_rgpv_rec => x_rgpv_rec,
11683 x_rulv_rec => x_rulv_rec
11684 );
11685
11686 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11687 raise header_rule_failed;
11688 END IF;
11689
11690 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11691 l_rgp_id := x_rgpv_rec.id;
11692 END IF;
11693
11694 debug_message('------>Rule: LARVIN/LARVAM processed');
11695 -- Rule Group LAMXTX
11696 l_rgpv_rec := NULL;
11697 l_rgp_id := NULL;
11698 l_rgpv_rec.rgd_code := 'LAMXTX';
11699 l_rgpv_rec.chr_id := p_chr_id;
11700 l_rgpv_rec.dnz_chr_id := p_chr_id;
11701 l_rgpv_rec.cle_id := NULL;
11702 l_rgpv_rec.rgp_type := 'KRG';
11703
11704 l_rulv_rec := NULL;
11705 l_tax_withholding_flag := p_header_rec.tax_withholding_flag;
11706
11707 IF (l_tax_withholding_flag IS NULL
11708 AND
11709 p_header_rec.template_number IS NOT NULL) THEN
11710 get_contract_rules(
11711 x_return_status => x_return_status,
11712 x_msg_count => x_msg_count,
11713 x_msg_data => x_msg_data,
11714 p_chr_id => p_template_id,
11715 p_cle_id => NULL,
11716 p_rgd_code => 'LAMXTX',
11717 p_rule_code => 'LAUKTX',
11718 x_rulv_tbl => l_rulv_tbl,
11719 x_rule_count => l_rule_count
11720 );
11721
11722 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11723 RAISE header_rule_failed;
11724 END IF;
11725
11726 IF (l_rule_count > 0) THEN
11727 l_tax_withholding_flag := l_rulv_tbl(1).rule_information1;
11728 END IF;
11729 END IF;
11730
11731 IF (l_tax_withholding_flag IS NOT NULL) THEN
11732
11733 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11734 l_rulv_rec.dnz_chr_id := p_chr_id;
11735 l_rulv_rec.rule_information1 := l_tax_withholding_flag;
11736 l_rulv_rec.rule_information_category := 'LAUKTX';
11737 l_rulv_rec.std_template_yn := 'N';
11738 l_rulv_rec.warn_yn := 'N';
11739
11740 create_rule_group_and_rule(
11741 x_return_status => x_return_status,
11742 x_msg_count => x_msg_count,
11743 x_msg_data => x_msg_data,
11744 p_rgp_id => l_rgp_id,
11745 p_rgpv_rec => l_rgpv_rec,
11746 p_rulv_rec => l_rulv_rec,
11747 x_rgpv_rec => x_rgpv_rec,
11748 x_rulv_rec => x_rulv_rec
11749 );
11750
11751 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11752 raise header_rule_failed;
11753 END IF;
11754
11755 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11756 l_rgp_id := x_rgpv_rec.id;
11757 END IF;
11758
11759 END IF; -- tax_withholding_flag
11760
11761 debug_message('------>Rule: LAMXTX/LAUKTX processed');
11762 l_rulv_rec := NULL;
11763
11764 l_tax_calc_formula_name := p_header_rec.tax_calc_formula_name;
11765
11766 IF (l_tax_calc_formula_name IS NULL
11767 AND
11768 p_header_rec.template_number IS NOT NULL) THEN
11769 get_contract_rules(
11770 x_return_status => x_return_status,
11771 x_msg_count => x_msg_count,
11772 x_msg_data => x_msg_data,
11773 p_chr_id => p_template_id,
11774 p_cle_id => NULL,
11775 p_rgd_code => 'LAMXTX',
11776 p_rule_code => 'LAFORM',
11777 x_rulv_tbl => l_rulv_tbl,
11778 x_rule_count => l_rule_count
11779 );
11780
11781 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11782 RAISE header_rule_failed;
11783 END IF;
11784
11785 IF (l_rule_count > 0) THEN
11786 l_tax_calc_formula_name := l_rulv_tbl(1).rule_information1;
11787 END IF;
11788 END IF;
11789
11790 IF (l_tax_calc_formula_name IS NOT NULL) THEN
11791
11792 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11793 l_rulv_rec.dnz_chr_id := p_chr_id;
11794 l_rulv_rec.rule_information1 := l_tax_calc_formula_name;
11795 l_rulv_rec.rule_information_category := 'LAFORM';
11796 l_rulv_rec.std_template_yn := 'N';
11797 l_rulv_rec.warn_yn := 'N';
11798
11799 create_rule_group_and_rule(
11800 x_return_status => x_return_status,
11801 x_msg_count => x_msg_count,
11802 x_msg_data => x_msg_data,
11803 p_rgp_id => l_rgp_id,
11804 p_rgpv_rec => l_rgpv_rec,
11805 p_rulv_rec => l_rulv_rec,
11806 x_rgpv_rec => x_rgpv_rec,
11807 x_rulv_rec => x_rulv_rec
11808 );
11809
11810 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11811 raise header_rule_failed;
11812 END IF;
11813
11814 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11815 l_rgp_id := x_rgpv_rec.id;
11816 END IF;
11817
11818 END IF; -- tax_calc_formula_name
11819
11820 debug_message('------>Rule: LAMXTX/LAFORM processed');
11821
11822 /* Not being used since 11.5.9
11823 Tax Owner rule is getting created from Product
11824
11825 -- Rule Group LATOWN
11826 l_rgpv_rec := NULL;
11827 l_rgp_id := NULL;
11828 l_rgpv_rec.rgd_code := 'LATOWN';
11829 l_rgpv_rec.chr_id := p_chr_id;
11830 l_rgpv_rec.dnz_chr_id := p_chr_id;
11831 l_rgpv_rec.cle_id := NULL;
11832 l_rgpv_rec.rgp_type := 'KRG';
11833
11834 l_rulv_rec := NULL;
11835
11836 l_tax_owner := p_header_rec.tax_owner;
11837
11838 IF (l_tax_owner IS NULL
11839 AND
11840 p_header_rec.template_number IS NOT NULL) THEN
11841 get_contract_rules(
11842 x_return_status => x_return_status,
11843 x_msg_count => x_msg_count,
11844 x_msg_data => x_msg_data,
11845 p_chr_id => p_template_id,
11846 p_cle_id => NULL,
11847 p_rgd_code => 'LATOWN',
11848 p_rule_code => 'LATOWN',
11849 x_rulv_tbl => l_rulv_tbl,
11850 x_rule_count => l_rule_count
11851 );
11852
11853 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11854 RAISE header_rule_failed;
11855 END IF;
11856
11857 IF (l_rule_count > 0) THEN
11858 l_tax_owner := l_rulv_tbl(1).rule_information1;
11859 END IF;
11860 END IF;
11861
11862 IF (l_tax_owner IS NOT NULL) THEN
11863
11864 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11865 l_rulv_rec.dnz_chr_id := p_chr_id;
11866 l_rulv_rec.rule_information1 := l_tax_owner;
11867 l_rulv_rec.rule_information_category := 'LATOWN';
11868 l_rulv_rec.std_template_yn := 'N';
11869 l_rulv_rec.warn_yn := 'N';
11870
11871 create_rule_group_and_rule(
11872 x_return_status => x_return_status,
11873 x_msg_count => x_msg_count,
11874 x_msg_data => x_msg_data,
11875 p_rgp_id => l_rgp_id,
11876 p_rgpv_rec => l_rgpv_rec,
11877 p_rulv_rec => l_rulv_rec,
11878 x_rgpv_rec => x_rgpv_rec,
11879 x_rulv_rec => x_rulv_rec
11880 );
11881
11882 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11883 raise header_rule_failed;
11884 END IF;
11885
11886 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11887 l_rgp_id := x_rgpv_rec.id;
11888 END IF;
11889
11890 END IF; -- tax_owner
11891 */
11892
11893 -- Rule Group LAPACT
11894
11895 l_rgpv_rec := NULL;
11896 l_rgp_id := NULL;
11897 l_rgpv_rec.rgd_code := 'LAPACT';
11898 l_rgpv_rec.chr_id := p_chr_id;
11899 l_rgpv_rec.dnz_chr_id := p_chr_id;
11900 l_rgpv_rec.cle_id := NULL;
11901 l_rgpv_rec.rgp_type := 'KRG';
11902
11903 l_rulv_rec := NULL;
11904
11905 l_private_activity_bond_flag := p_header_rec.private_activity_bond_flag;
11906
11907 IF (l_private_activity_bond_flag IS NULL
11908 AND
11909 p_header_rec.template_number IS NOT NULL) THEN
11910 get_contract_rules(
11911 x_return_status => x_return_status,
11912 x_msg_count => x_msg_count,
11913 x_msg_data => x_msg_data,
11914 p_chr_id => p_template_id,
11915 p_cle_id => NULL,
11916 p_rgd_code => 'LAPACT',
11917 p_rule_code => 'LAPACT',
11918 x_rulv_tbl => l_rulv_tbl,
11919 x_rule_count => l_rule_count
11920 );
11921
11922 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11923 RAISE header_rule_failed;
11924 END IF;
11925
11926 IF (l_rule_count > 0) THEN
11927 l_private_activity_bond_flag := l_rulv_tbl(1).rule_information1;
11928 END IF;
11929 END IF;
11930
11931 IF (l_private_activity_bond_flag IS NOT NULL) THEN
11932 l_rulv_rec := NULL;
11933 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11934 l_rulv_rec.dnz_chr_id := p_chr_id;
11935 l_rulv_rec.rule_information1 := l_private_activity_bond_flag;
11936 l_rulv_rec.rule_information_category := 'LAPACT';
11937 l_rulv_rec.std_template_yn := 'N';
11938 l_rulv_rec.warn_yn := 'N';
11939 END IF;
11940
11941 create_rule_group_and_rule(
11942 x_return_status => x_return_status,
11943 x_msg_count => x_msg_count,
11944 x_msg_data => x_msg_data,
11945 p_rgp_id => l_rgp_id,
11946 p_rgpv_rec => l_rgpv_rec,
11947 p_rulv_rec => l_rulv_rec,
11948 x_rgpv_rec => x_rgpv_rec,
11949 x_rulv_rec => x_rulv_rec
11950 );
11951
11952 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11953 raise header_rule_failed;
11954 END IF;
11955
11956
11957 debug_message('------>Rule: LAPACT/LAPACT processed');
11958 --**************************
11959
11960 -- Rule Group AMLARL
11961
11962 l_rgpv_rec := NULL;
11963 l_rgp_id := NULL;
11964 l_rgpv_rec.rgd_code := 'AMLARL';
11965 l_rgpv_rec.chr_id := p_chr_id;
11966 l_rgpv_rec.dnz_chr_id := p_chr_id;
11967 l_rgpv_rec.cle_id := NULL;
11968 l_rgpv_rec.rgp_type := 'KRG';
11969
11970 l_rulv_rec := NULL;
11971
11972 l_floor_price_formula := p_header_rec.floor_price_formula;
11973 l_remkt_sale_price_formula := p_header_rec.remkt_sale_price_formula;
11974
11975 --debug_message('Floor Price Formula: '|| l_floor_price_formula);
11976 IF (l_floor_price_formula IS NULL
11977 OR
11978 l_remkt_sale_price_formula IS NULL
11979 AND
11980 p_header_rec.template_number IS NOT NULL) THEN
11981 get_contract_rules(
11982 x_return_status => x_return_status,
11983 x_msg_count => x_msg_count,
11984 x_msg_data => x_msg_data,
11985 p_chr_id => p_template_id,
11986 p_cle_id => NULL,
11987 p_rgd_code => 'AMLARL',
11988 p_rule_code => 'AMCFPR',
11989 x_rulv_tbl => l_rulv_tbl,
11990 x_rule_count => l_rule_count
11991 );
11992
11993 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11994 RAISE header_rule_failed;
11995 END IF;
11996
11997 IF (l_rule_count > 0) THEN
11998 l_floor_price_formula := NVL(l_floor_price_formula,l_rulv_tbl(1).rule_information1);
11999 l_remkt_sale_price_formula := NVL(l_remkt_sale_price_formula,l_rulv_tbl(1).rule_information2);
12000 END IF;
12001 END IF;
12002
12003 IF (l_floor_price_formula IS NOT NULL) THEN
12004 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12005 l_rulv_rec.dnz_chr_id := p_chr_id;
12006 l_rulv_rec.rule_information1 := l_floor_price_formula;
12007 l_rulv_rec.rule_information_category := 'AMCFPR';
12008 l_rulv_rec.std_template_yn := 'N';
12009 l_rulv_rec.warn_yn := 'N';
12010 END IF;
12011
12012 IF (l_remkt_sale_price_formula IS NOT NULL) THEN
12013 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12014 l_rulv_rec.dnz_chr_id := p_chr_id;
12015 l_rulv_rec.rule_information2 := l_remkt_sale_price_formula;
12016 l_rulv_rec.rule_information_category := 'AMCFPR';
12017 l_rulv_rec.std_template_yn := 'N';
12018 l_rulv_rec.warn_yn := 'N';
12019 END IF;
12020
12021 create_rule_group_and_rule(
12022 x_return_status => x_return_status,
12023 x_msg_count => x_msg_count,
12024 x_msg_data => x_msg_data,
12025 p_rgp_id => l_rgp_id,
12026 p_rgpv_rec => l_rgpv_rec,
12027 p_rulv_rec => l_rulv_rec,
12028 x_rgpv_rec => x_rgpv_rec,
12029 x_rulv_rec => x_rulv_rec
12030 );
12031
12032 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12033 raise header_rule_failed;
12034 END IF;
12035
12036 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12037 l_rgp_id := x_rgpv_rec.id;
12038 END IF;
12039
12040 debug_message('------>Rule: AMLARL/AMCFPR processed');
12041
12042 -- Rule Group AMREPQ
12043
12044 l_rgpv_rec := NULL;
12045 l_rgp_id := NULL;
12046 l_rgpv_rec.rgd_code := 'AMREPQ';
12047 l_rgpv_rec.chr_id := p_chr_id;
12048 l_rgpv_rec.dnz_chr_id := p_chr_id;
12049 l_rgpv_rec.cle_id := NULL;
12050 l_rgpv_rec.rgp_type := 'KRG';
12051
12052 l_rulv_rec := NULL;
12053
12054 l_repurchase_quote_option := p_header_rec.repurchase_quote_option;
12055 l_repurchase_quote_formula := p_header_rec.repurchase_quote_formula;
12056
12057 IF (l_repurchase_quote_option IS NULL
12058 OR
12059 l_repurchase_quote_formula IS NULL
12060 AND
12061 p_header_rec.template_number IS NOT NULL) THEN
12062 get_contract_rules(
12063 x_return_status => x_return_status,
12064 x_msg_count => x_msg_count,
12065 x_msg_data => x_msg_data,
12066 p_chr_id => p_template_id,
12067 p_cle_id => NULL,
12068 p_rgd_code => 'AMREPQ',
12069 p_rule_code => 'AMARQC',
12070 x_rulv_tbl => l_rulv_tbl,
12071 x_rule_count => l_rule_count
12072 );
12073
12074 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12075 RAISE header_rule_failed;
12076 END IF;
12077
12078 IF (l_rule_count > 0) THEN
12079 l_repurchase_quote_option := NVL(l_repurchase_quote_option,l_rulv_tbl(1).rule_information1);
12080 l_repurchase_quote_formula := NVL(l_repurchase_quote_formula,l_rulv_tbl(1).rule_information2);
12081 END IF;
12082 END IF;
12083
12084 IF (l_repurchase_quote_option IS NOT NULL) THEN
12085 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12086 l_rulv_rec.dnz_chr_id := p_chr_id;
12087 l_rulv_rec.rule_information1 := l_repurchase_quote_option;
12088 l_rulv_rec.rule_information_category := 'AMARQC';
12089 l_rulv_rec.std_template_yn := 'N';
12090 l_rulv_rec.warn_yn := 'N';
12091 END IF;
12092
12093 IF (l_repurchase_quote_formula IS NOT NULL) THEN
12094 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12095 l_rulv_rec.dnz_chr_id := p_chr_id;
12096 l_rulv_rec.rule_information2 := l_repurchase_quote_formula;
12097 l_rulv_rec.rule_information_category := 'AMARQC';
12098 l_rulv_rec.std_template_yn := 'N';
12099 l_rulv_rec.warn_yn := 'N';
12100 END IF;
12101
12102 create_rule_group_and_rule(
12103 x_return_status => x_return_status,
12104 x_msg_count => x_msg_count,
12105 x_msg_data => x_msg_data,
12106 p_rgp_id => l_rgp_id,
12107 p_rgpv_rec => l_rgpv_rec,
12108 p_rulv_rec => l_rulv_rec,
12109 x_rgpv_rec => x_rgpv_rec,
12110 x_rulv_rec => x_rulv_rec
12111 );
12112
12113 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12114 raise header_rule_failed;
12115 END IF;
12116
12117 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12118 l_rgp_id := x_rgpv_rec.id;
12119 END IF;
12120 debug_message('------>Rule: AMREPQ/AMARQC processed');
12121 l_rulv_rec := NULL;
12122
12123 l_sale_price_option := p_header_rec.sale_price_option;
12124 l_sale_price_amount := TO_CHAR(p_header_rec.sale_price_amount);
12125 l_sale_price_formula := p_header_rec.sale_price_formula;
12126 l_sale_price_prorate := p_header_rec.sale_price_prorate;
12127
12128 IF (l_sale_price_option IS NULL
12129 OR
12130 l_sale_price_amount IS NULL
12131 OR
12132 l_sale_price_formula IS NULL
12133 OR
12134 l_sale_price_prorate IS NULL
12135 AND
12136 p_header_rec.template_number IS NOT NULL) THEN
12137 get_contract_rules(
12138 x_return_status => x_return_status,
12139 x_msg_count => x_msg_count,
12140 x_msg_data => x_msg_data,
12141 p_chr_id => p_template_id,
12142 p_cle_id => NULL,
12143 p_rgd_code => 'AMREPQ',
12144 p_rule_code => 'AMBSPR',
12145 x_rulv_tbl => l_rulv_tbl,
12146 x_rule_count => l_rule_count
12147 );
12148
12149 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12150 RAISE header_rule_failed;
12151 END IF;
12152
12153 IF (l_rule_count > 0) THEN
12154 l_sale_price_option := NVL(l_sale_price_option,l_rulv_tbl(1).rule_information1);
12155 l_sale_price_amount := NVL(l_sale_price_amount,l_rulv_tbl(1).rule_information2);
12156 l_sale_price_formula := NVL(l_sale_price_formula,l_rulv_tbl(1).rule_information3);
12157 l_sale_price_prorate := NVL(l_sale_price_prorate,l_rulv_tbl(1).rule_information4);
12158 END IF;
12159 END IF;
12160
12161 IF (l_sale_price_option IS NOT NULL) THEN
12162 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12163 l_rulv_rec.dnz_chr_id := p_chr_id;
12164 l_rulv_rec.rule_information1 := l_sale_price_option;
12165 l_rulv_rec.rule_information_category := 'AMBSPR';
12166 l_rulv_rec.std_template_yn := 'N';
12167 l_rulv_rec.warn_yn := 'N';
12168 END IF;
12169
12170 IF (l_sale_price_amount IS NOT NULL) THEN
12171 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12172 l_rulv_rec.dnz_chr_id := p_chr_id;
12173 l_rulv_rec.rule_information2 := l_sale_price_amount;
12174 l_rulv_rec.rule_information_category := 'AMBSPR';
12175 l_rulv_rec.std_template_yn := 'N';
12176 l_rulv_rec.warn_yn := 'N';
12177 END IF;
12178
12179 IF (l_sale_price_formula IS NOT NULL) THEN
12180 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12181 l_rulv_rec.dnz_chr_id := p_chr_id;
12182 l_rulv_rec.rule_information3 := l_sale_price_formula;
12183 l_rulv_rec.rule_information_category := 'AMBSPR';
12184 l_rulv_rec.std_template_yn := 'N';
12185 l_rulv_rec.warn_yn := 'N';
12186 END IF;
12187
12188 IF (l_sale_price_prorate IS NOT NULL) THEN
12189 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12190 l_rulv_rec.dnz_chr_id := p_chr_id;
12191 l_rulv_rec.rule_information4 := l_sale_price_prorate;
12192 l_rulv_rec.rule_information_category := 'AMBSPR';
12193 l_rulv_rec.std_template_yn := 'N';
12194 l_rulv_rec.warn_yn := 'N';
12195 END IF;
12196
12197 create_rule_group_and_rule(
12198 x_return_status => x_return_status,
12199 x_msg_count => x_msg_count,
12200 x_msg_data => x_msg_data,
12201 p_rgp_id => l_rgp_id,
12202 p_rgpv_rec => l_rgpv_rec,
12203 p_rulv_rec => l_rulv_rec,
12204 x_rgpv_rec => x_rgpv_rec,
12205 x_rulv_rec => x_rulv_rec
12206 );
12207
12208 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12209 raise header_rule_failed;
12210 END IF;
12211
12212 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12213 l_rgp_id := x_rgpv_rec.id;
12214 END IF;
12215
12216 debug_message('------>Rule: AMREPQ/AMBSPR processed');
12217 l_rulv_rec := NULL;
12218
12219 l_discount_rate_option := p_header_rec.discount_rate_option;
12220 l_discount_rate_amount := p_header_rec.discount_rate_amount;
12221 l_discount_rate_formula := p_header_rec.discount_rate_formula;
12222 l_discount_rate_prorate := p_header_rec.discount_rate_prorate;
12223
12224 IF (l_discount_rate_option IS NULL
12225 OR
12226 l_discount_rate_amount IS NULL
12227 OR
12228 l_discount_rate_formula IS NULL
12229 OR
12230 l_discount_rate_prorate IS NULL
12231 AND
12232 p_header_rec.template_number IS NOT NULL) THEN
12233 get_contract_rules(
12234 x_return_status => x_return_status,
12235 x_msg_count => x_msg_count,
12236 x_msg_data => x_msg_data,
12237 p_chr_id => p_template_id,
12238 p_cle_id => NULL,
12239 p_rgd_code => 'AMREPQ',
12240 p_rule_code => 'AMCQDR',
12241 x_rulv_tbl => l_rulv_tbl,
12242 x_rule_count => l_rule_count
12243 );
12244
12245 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12246 RAISE header_rule_failed;
12247 END IF;
12248
12249 IF (l_rule_count > 0) THEN
12250 l_discount_rate_option := NVL(l_discount_rate_option,l_rulv_tbl(1).rule_information1);
12251 l_discount_rate_amount := NVL(l_discount_rate_amount,l_rulv_tbl(1).rule_information2);
12252 l_discount_rate_formula := NVL(l_discount_rate_formula,l_rulv_tbl(1).rule_information3);
12253 l_discount_rate_prorate := NVL(l_discount_rate_prorate,l_rulv_tbl(1).rule_information4);
12254 END IF;
12255 END IF;
12256
12257 IF (l_discount_rate_option IS NOT NULL) THEN
12258 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12259 l_rulv_rec.dnz_chr_id := p_chr_id;
12260 l_rulv_rec.rule_information1 := l_discount_rate_option;
12261 l_rulv_rec.rule_information_category := 'AMCQDR';
12262 l_rulv_rec.std_template_yn := 'N';
12263 l_rulv_rec.warn_yn := 'N';
12264 END IF;
12265
12266 IF (l_discount_rate_amount IS NOT NULL) THEN
12267 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12268 l_rulv_rec.dnz_chr_id := p_chr_id;
12269 l_rulv_rec.rule_information2 := l_discount_rate_amount;
12270 l_rulv_rec.rule_information_category := 'AMCQDR';
12271 l_rulv_rec.std_template_yn := 'N';
12272 l_rulv_rec.warn_yn := 'N';
12273 END IF;
12274
12275 IF (l_discount_rate_formula IS NOT NULL) THEN
12276 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12277 l_rulv_rec.dnz_chr_id := p_chr_id;
12278 l_rulv_rec.rule_information3 := l_discount_rate_formula;
12279 l_rulv_rec.rule_information_category := 'AMCQDR';
12280 l_rulv_rec.std_template_yn := 'N';
12281 l_rulv_rec.warn_yn := 'N';
12282 END IF;
12283
12284 IF (l_discount_rate_prorate IS NOT NULL) THEN
12285 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12286 l_rulv_rec.dnz_chr_id := p_chr_id;
12287 l_rulv_rec.rule_information4 := l_discount_rate_prorate;
12288 l_rulv_rec.rule_information_category := 'AMCQDR';
12289 l_rulv_rec.std_template_yn := 'N';
12290 l_rulv_rec.warn_yn := 'N';
12291 END IF;
12292
12293 create_rule_group_and_rule(
12294 x_return_status => x_return_status,
12295 x_msg_count => x_msg_count,
12296 x_msg_data => x_msg_data,
12297 p_rgp_id => l_rgp_id,
12298 p_rgpv_rec => l_rgpv_rec,
12299 p_rulv_rec => l_rulv_rec,
12300 x_rgpv_rec => x_rgpv_rec,
12301 x_rulv_rec => x_rulv_rec
12302 );
12303
12304 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12305 raise header_rule_failed;
12306 END IF;
12307
12308 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12309 l_rgp_id := x_rgpv_rec.id;
12310 END IF;
12311 debug_message('------>Rule: AMREPQ/AMCQDR processed');
12312 l_rulv_rec := NULL;
12313
12314 l_quote_fee_option := p_header_rec.quote_fee_option;
12315 l_quote_fee_amount := TO_CHAR(p_header_rec.quote_fee_amount);
12316 l_quote_fee_formula := p_header_rec.quote_fee_formula;
12317 l_quote_fee_prorate := p_header_rec.quote_fee_prorate;
12318
12319 IF (l_quote_fee_option IS NULL
12320 OR
12321 l_quote_fee_amount IS NULL
12322 OR
12323 l_quote_fee_formula IS NULL
12324 OR
12325 l_quote_fee_prorate IS NULL
12326 AND
12327 p_header_rec.template_number IS NOT NULL) THEN
12328 get_contract_rules(
12329 x_return_status => x_return_status,
12330 x_msg_count => x_msg_count,
12331 x_msg_data => x_msg_data,
12332 p_chr_id => p_template_id,
12333 p_cle_id => NULL,
12334 p_rgd_code => 'AMREPQ',
12335 p_rule_code => 'AMCQFE',
12336 x_rulv_tbl => l_rulv_tbl,
12337 x_rule_count => l_rule_count
12338 );
12339
12340 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12341 RAISE header_rule_failed;
12342 END IF;
12343
12344 IF (l_rule_count > 0) THEN
12345 l_quote_fee_option := NVL(l_quote_fee_option,l_rulv_tbl(1).rule_information1);
12346 l_quote_fee_amount := NVL(l_quote_fee_amount,l_rulv_tbl(1).rule_information2);
12347 l_quote_fee_formula := NVL(l_quote_fee_formula,l_rulv_tbl(1).rule_information3);
12348 l_quote_fee_prorate := NVL(l_quote_fee_prorate,l_rulv_tbl(1).rule_information4);
12349 END IF;
12350 END IF;
12351
12352 IF (l_quote_fee_option IS NOT NULL) THEN
12353 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12354 l_rulv_rec.dnz_chr_id := p_chr_id;
12355 l_rulv_rec.rule_information1 := l_quote_fee_option;
12356 l_rulv_rec.rule_information_category := 'AMCQFE';
12357 l_rulv_rec.std_template_yn := 'N';
12358 l_rulv_rec.warn_yn := 'N';
12359 END IF;
12360
12361 IF (l_quote_fee_amount IS NOT NULL) THEN
12362 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12363 l_rulv_rec.dnz_chr_id := p_chr_id;
12364 l_rulv_rec.rule_information2 := l_quote_fee_amount;
12365 l_rulv_rec.rule_information_category := 'AMCQFE';
12366 l_rulv_rec.std_template_yn := 'N';
12367 l_rulv_rec.warn_yn := 'N';
12368 END IF;
12369
12370 IF (l_quote_fee_formula IS NOT NULL) THEN
12371 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12372 l_rulv_rec.dnz_chr_id := p_chr_id;
12373 l_rulv_rec.rule_information3 := l_quote_fee_formula;
12374 l_rulv_rec.rule_information_category := 'AMCQFE';
12375 l_rulv_rec.std_template_yn := 'N';
12376 l_rulv_rec.warn_yn := 'N';
12377 END IF;
12378
12379 IF (l_quote_fee_prorate IS NOT NULL) THEN
12380 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12381 l_rulv_rec.dnz_chr_id := p_chr_id;
12382 l_rulv_rec.rule_information4 := l_quote_fee_prorate;
12383 l_rulv_rec.rule_information_category := 'AMCQFE';
12384 l_rulv_rec.std_template_yn := 'N';
12385 l_rulv_rec.warn_yn := 'N';
12386 END IF;
12387
12388 create_rule_group_and_rule(
12389 x_return_status => x_return_status,
12390 x_msg_count => x_msg_count,
12391 x_msg_data => x_msg_data,
12392 p_rgp_id => l_rgp_id,
12393 p_rgpv_rec => l_rgpv_rec,
12394 p_rulv_rec => l_rulv_rec,
12395 x_rgpv_rec => x_rgpv_rec,
12396 x_rulv_rec => x_rulv_rec
12397 );
12398
12399 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12400 raise header_rule_failed;
12401 END IF;
12402
12403 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12404 l_rgp_id := x_rgpv_rec.id;
12405 END IF;
12406
12407 debug_message('------>Rule: AMREPQ/AMCQFE processed');
12408 -- Rule Group AMTEOC
12409
12410 l_rgpv_rec := NULL;
12411 l_rgp_id := NULL;
12412 l_rgpv_rec.rgd_code := 'AMTEOC';
12413 l_rgpv_rec.chr_id := p_chr_id;
12414 l_rgpv_rec.dnz_chr_id := p_chr_id;
12415 l_rgpv_rec.cle_id := NULL;
12416 l_rgpv_rec.rgp_type := 'KRG';
12417
12418 l_rulv_rec := NULL;
12419
12420 l_ert_purchase_opt := p_header_rec.ert_purchase_opt;
12421 l_ert_purchase_opt_type := p_header_rec.ert_purchase_opt_type;
12422 l_ert_purchase_opt_amount := TO_CHAR(p_header_rec.ert_purchase_opt_amount);
12423 l_ert_purchase_opt_formula := p_header_rec.ert_purchase_opt_formula;
12424 l_ert_purchase_opt_prorate := p_header_rec.ert_purchase_opt_prorate;
12425 l_ert_purchase_opt_max_opt := p_header_rec.ert_purchase_opt_max_opt;
12426 l_ert_purchase_opt_max_amt := TO_CHAR(p_header_rec.ert_purchase_opt_max_amt);
12427 l_ert_purchase_opt_max_formula := p_header_rec.ert_purchase_opt_max_formula;
12428 l_ert_purchase_opt_min_opt := p_header_rec.ert_purchase_opt_min_opt;
12429 l_ert_purchase_opt_min_amt := TO_CHAR(p_header_rec.ert_purchase_opt_min_amt);
12430 l_ert_purchase_opt_min_formula := p_header_rec.ert_purchase_opt_min_formula;
12431
12432 IF (l_ert_purchase_opt IS NULL
12433 OR
12434 l_ert_purchase_opt_type IS NULL
12435 OR
12436 l_ert_purchase_opt_amount IS NULL
12437 OR
12438 l_ert_purchase_opt_formula IS NULL
12439 OR
12440 l_ert_purchase_opt_prorate IS NULL
12441 OR
12442 l_ert_purchase_opt_max_opt IS NULL
12443 OR
12444 l_ert_purchase_opt_max_amt IS NULL
12445 OR
12446 l_ert_purchase_opt_max_formula IS NULL
12447 OR
12448 l_ert_purchase_opt_min_opt IS NULL
12449 OR
12450 l_ert_purchase_opt_min_amt IS NULL
12451 OR
12452 l_ert_purchase_opt_min_formula IS NULL
12453 AND
12454 p_header_rec.template_number IS NOT NULL) THEN
12455 get_contract_rules(
12456 x_return_status => x_return_status,
12457 x_msg_count => x_msg_count,
12458 x_msg_data => x_msg_data,
12459 p_chr_id => p_template_id,
12460 p_cle_id => NULL,
12461 p_rgd_code => 'AMTEOC',
12462 p_rule_code => 'AMBPOC',
12463 x_rulv_tbl => l_rulv_tbl,
12464 x_rule_count => l_rule_count
12465 );
12466
12467 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12468 RAISE header_rule_failed;
12469 END IF;
12470
12471 IF (l_rule_count > 0) THEN
12472 l_ert_purchase_opt := NVL(l_ert_purchase_opt,l_rulv_tbl(1).rule_information1);
12473 l_ert_purchase_opt_type := NVL(l_ert_purchase_opt_type,l_rulv_tbl(1).rule_information11);
12474 l_ert_purchase_opt_amount := NVL(l_ert_purchase_opt_amount,l_rulv_tbl(1).rule_information2);
12475 l_ert_purchase_opt_formula := NVL(l_ert_purchase_opt_formula,l_rulv_tbl(1).rule_information3);
12476 l_ert_purchase_opt_prorate := NVL(l_ert_purchase_opt_prorate,l_rulv_tbl(1).rule_information4);
12477 l_ert_purchase_opt_max_opt := NVL(l_ert_purchase_opt_max_opt,l_rulv_tbl(1).rule_information5);
12478 l_ert_purchase_opt_max_amt := NVL(l_ert_purchase_opt_max_amt,l_rulv_tbl(1).rule_information6);
12479 l_ert_purchase_opt_max_formula := NVL(l_ert_purchase_opt_max_formula,l_rulv_tbl(1).rule_information7);
12480 l_ert_purchase_opt_min_opt := NVL(l_ert_purchase_opt_min_opt,l_rulv_tbl(1).rule_information8);
12481 l_ert_purchase_opt_min_amt := NVL(l_ert_purchase_opt_min_amt,l_rulv_tbl(1).rule_information9);
12482 l_ert_purchase_opt_min_formula := NVL(l_ert_purchase_opt_min_formula,l_rulv_tbl(1).rule_information10);
12483 END IF;
12484 END IF;
12485
12486 IF (l_ert_purchase_opt IS NOT NULL) THEN
12487 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12488 l_rulv_rec.dnz_chr_id := p_chr_id;
12489 l_rulv_rec.rule_information1 := l_ert_purchase_opt;
12490 l_rulv_rec.rule_information_category := 'AMBPOC';
12491 l_rulv_rec.std_template_yn := 'N';
12492 l_rulv_rec.warn_yn := 'N';
12493 END IF;
12494
12495 IF (l_ert_purchase_opt_type IS NOT NULL) THEN
12496 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12497 l_rulv_rec.dnz_chr_id := p_chr_id;
12498 l_rulv_rec.rule_information11 := l_ert_purchase_opt_type;
12499 l_rulv_rec.rule_information_category := 'AMBPOC';
12500 l_rulv_rec.std_template_yn := 'N';
12501 l_rulv_rec.warn_yn := 'N';
12502 END IF;
12503
12504 IF (l_ert_purchase_opt_amount IS NOT NULL) THEN
12505 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12506 l_rulv_rec.dnz_chr_id := p_chr_id;
12507 l_rulv_rec.rule_information2 := l_ert_purchase_opt_amount;
12508 l_rulv_rec.rule_information_category := 'AMBPOC';
12509 l_rulv_rec.std_template_yn := 'N';
12510 l_rulv_rec.warn_yn := 'N';
12511 END IF;
12512
12513 IF (l_ert_purchase_opt_formula IS NOT NULL) THEN
12514 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12515 l_rulv_rec.dnz_chr_id := p_chr_id;
12516 l_rulv_rec.rule_information3 := l_ert_purchase_opt_formula;
12517 l_rulv_rec.rule_information_category := 'AMBPOC';
12518 l_rulv_rec.std_template_yn := 'N';
12519 l_rulv_rec.warn_yn := 'N';
12520 END IF;
12521
12522 IF (l_ert_purchase_opt_prorate IS NOT NULL) THEN
12523 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12524 l_rulv_rec.dnz_chr_id := p_chr_id;
12525 l_rulv_rec.rule_information4 := l_ert_purchase_opt_prorate;
12526 l_rulv_rec.rule_information_category := 'AMBPOC';
12527 l_rulv_rec.std_template_yn := 'N';
12528 l_rulv_rec.warn_yn := 'N';
12529 END IF;
12530
12531 IF (l_ert_purchase_opt_max_opt IS NOT NULL) THEN
12532 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12533 l_rulv_rec.dnz_chr_id := p_chr_id;
12534 l_rulv_rec.rule_information5 := l_ert_purchase_opt_max_opt;
12535 l_rulv_rec.rule_information_category := 'AMBPOC';
12536 l_rulv_rec.std_template_yn := 'N';
12537 l_rulv_rec.warn_yn := 'N';
12538 END IF;
12539
12540 IF (l_ert_purchase_opt_max_amt IS NOT NULL) THEN
12541 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12542 l_rulv_rec.dnz_chr_id := p_chr_id;
12543 l_rulv_rec.rule_information6 := l_ert_purchase_opt_max_amt;
12544 l_rulv_rec.rule_information_category := 'AMBPOC';
12545 l_rulv_rec.std_template_yn := 'N';
12546 l_rulv_rec.warn_yn := 'N';
12547 END IF;
12548
12549 IF (l_ert_purchase_opt_max_formula IS NOT NULL) THEN
12550 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12551 l_rulv_rec.dnz_chr_id := p_chr_id;
12552 l_rulv_rec.rule_information7 := l_ert_purchase_opt_max_formula;
12553 l_rulv_rec.rule_information_category := 'AMBPOC';
12554 l_rulv_rec.std_template_yn := 'N';
12555 l_rulv_rec.warn_yn := 'N';
12556 END IF;
12557
12558 IF (l_ert_purchase_opt_min_opt IS NOT NULL) THEN
12559 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12560 l_rulv_rec.dnz_chr_id := p_chr_id;
12561 l_rulv_rec.rule_information8 := l_ert_purchase_opt_min_opt;
12562 l_rulv_rec.rule_information_category := 'AMBPOC';
12563 l_rulv_rec.std_template_yn := 'N';
12564 l_rulv_rec.warn_yn := 'N';
12565 END IF;
12566
12567 IF (l_ert_purchase_opt_min_amt IS NOT NULL) THEN
12568 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12569 l_rulv_rec.dnz_chr_id := p_chr_id;
12570 l_rulv_rec.rule_information9 := l_ert_purchase_opt_min_amt;
12571 l_rulv_rec.rule_information_category := 'AMBPOC';
12572 l_rulv_rec.std_template_yn := 'N';
12573 l_rulv_rec.warn_yn := 'N';
12574 END IF;
12575
12576 IF (l_ert_purchase_opt_min_formula IS NOT NULL) THEN
12577 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12578 l_rulv_rec.dnz_chr_id := p_chr_id;
12579 l_rulv_rec.rule_information10 := l_ert_purchase_opt_min_formula;
12580 l_rulv_rec.rule_information_category := 'AMBPOC';
12581 l_rulv_rec.std_template_yn := 'N';
12582 l_rulv_rec.warn_yn := 'N';
12583 END IF;
12584
12585 create_rule_group_and_rule(
12586 x_return_status => x_return_status,
12587 x_msg_count => x_msg_count,
12588 x_msg_data => x_msg_data,
12589 p_rgp_id => l_rgp_id,
12590 p_rgpv_rec => l_rgpv_rec,
12591 p_rulv_rec => l_rulv_rec,
12592 x_rgpv_rec => x_rgpv_rec,
12593 x_rulv_rec => x_rulv_rec
12594 );
12595
12596 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12597 raise header_rule_failed;
12598 END IF;
12599
12600 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12601 l_rgp_id := x_rgpv_rec.id;
12602 END IF;
12603
12604 debug_message('------>Rule: AMTEOC/AMBPOC processed');
12605 -- Rule Group AMTFOC
12606
12607 l_rgpv_rec := NULL;
12608 l_rgp_id := NULL;
12609 l_rgpv_rec.rgd_code := 'AMTFOC';
12610 l_rgpv_rec.chr_id := p_chr_id;
12611 l_rgpv_rec.dnz_chr_id := p_chr_id;
12612 l_rgpv_rec.cle_id := NULL;
12613 l_rgpv_rec.rgp_type := 'KRG';
12614
12615 l_rulv_rec := NULL;
12616
12617 l_eot_purchase_opt := p_header_rec.eot_purchase_opt;
12618 l_eot_purchase_opt_type := p_header_rec.eot_purchase_opt_type;
12619 l_eot_purchase_opt_amount := TO_CHAR(p_header_rec.eot_purchase_opt_amount);
12620 l_eot_purchase_opt_formula := p_header_rec.eot_purchase_opt_formula;
12621 l_eot_purchase_opt_prorate := p_header_rec.eot_purchase_opt_prorate;
12622 l_eot_purchase_opt_max_opt := p_header_rec.eot_purchase_opt_max_opt;
12623 l_eot_purchase_opt_max_amt := TO_CHAR(p_header_rec.eot_purchase_opt_max_amt);
12624 l_eot_purchase_opt_max_formula := p_header_rec.eot_purchase_opt_max_formula;
12625 l_eot_purchase_opt_min_opt := p_header_rec.eot_purchase_opt_min_opt;
12626 l_eot_purchase_opt_min_amt := TO_CHAR(p_header_rec.eot_purchase_opt_min_amt);
12627 l_eot_purchase_opt_min_formula := p_header_rec.eot_purchase_opt_min_formula;
12628
12629 IF (l_eot_purchase_opt IS NULL
12630 OR
12631 l_eot_purchase_opt_type IS NULL
12632 OR
12633 l_eot_purchase_opt_amount IS NULL
12634 OR
12635 l_eot_purchase_opt_formula IS NULL
12636 OR
12637 l_eot_purchase_opt_prorate IS NULL
12638 OR
12639 l_eot_purchase_opt_max_opt IS NULL
12640 OR
12641 l_eot_purchase_opt_max_amt IS NULL
12642 OR
12643 l_eot_purchase_opt_max_formula IS NULL
12644 OR
12645 l_eot_purchase_opt_min_opt IS NULL
12646 OR
12647 l_eot_purchase_opt_min_amt IS NULL
12648 OR
12649 l_eot_purchase_opt_min_formula IS NULL
12650 AND
12651 p_header_rec.template_number IS NOT NULL) THEN
12652 get_contract_rules(
12653 x_return_status => x_return_status,
12654 x_msg_count => x_msg_count,
12655 x_msg_data => x_msg_data,
12656 p_chr_id => p_template_id,
12657 p_cle_id => NULL,
12658 p_rgd_code => 'AMTFOC',
12659 p_rule_code => 'AMBPOC',
12660 x_rulv_tbl => l_rulv_tbl,
12661 x_rule_count => l_rule_count
12662 );
12663
12664 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12665 RAISE header_rule_failed;
12666 END IF;
12667
12668 IF (l_rule_count > 0) THEN
12669 l_eot_purchase_opt := NVL(l_eot_purchase_opt,l_rulv_tbl(1).rule_information1);
12670 l_eot_purchase_opt_type := NVL(l_eot_purchase_opt_type,l_rulv_tbl(1).rule_information11);
12671 l_eot_purchase_opt_amount := NVL(l_eot_purchase_opt_amount,l_rulv_tbl(1).rule_information2);
12672 l_eot_purchase_opt_formula := NVL(l_eot_purchase_opt_formula,l_rulv_tbl(1).rule_information3);
12673 l_eot_purchase_opt_prorate := NVL(l_eot_purchase_opt_prorate,l_rulv_tbl(1).rule_information4);
12674 l_eot_purchase_opt_max_opt := NVL(l_eot_purchase_opt_max_opt,l_rulv_tbl(1).rule_information5);
12675 l_eot_purchase_opt_max_amt := NVL(l_eot_purchase_opt_max_amt,l_rulv_tbl(1).rule_information6);
12676 l_eot_purchase_opt_max_formula := NVL(l_eot_purchase_opt_max_formula,l_rulv_tbl(1).rule_information7);
12677 l_eot_purchase_opt_min_opt := NVL(l_eot_purchase_opt_min_opt,l_rulv_tbl(1).rule_information8);
12678 l_eot_purchase_opt_min_amt := NVL(l_eot_purchase_opt_min_amt,l_rulv_tbl(1).rule_information9);
12679 l_eot_purchase_opt_min_formula := NVL(l_eot_purchase_opt_min_formula,l_rulv_tbl(1).rule_information10);
12680 END IF;
12681 END IF;
12682
12683 IF (l_eot_purchase_opt IS NOT NULL) THEN
12684 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12685 l_rulv_rec.dnz_chr_id := p_chr_id;
12686 l_rulv_rec.rule_information1 := l_eot_purchase_opt;
12687 l_rulv_rec.rule_information_category := 'AMBPOC';
12688 l_rulv_rec.std_template_yn := 'N';
12689 l_rulv_rec.warn_yn := 'N';
12690 END IF;
12691
12692 IF (l_eot_purchase_opt_type IS NOT NULL) THEN
12693 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12694 l_rulv_rec.dnz_chr_id := p_chr_id;
12695 l_rulv_rec.rule_information11 := l_eot_purchase_opt_type;
12696 l_rulv_rec.rule_information_category := 'AMBPOC';
12697 l_rulv_rec.std_template_yn := 'N';
12698 l_rulv_rec.warn_yn := 'N';
12699 END IF;
12700
12701 IF (l_eot_purchase_opt_amount IS NOT NULL) THEN
12702 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12703 l_rulv_rec.dnz_chr_id := p_chr_id;
12704 l_rulv_rec.rule_information2 := l_eot_purchase_opt_amount;
12705 l_rulv_rec.rule_information_category := 'AMBPOC';
12706 l_rulv_rec.std_template_yn := 'N';
12707 l_rulv_rec.warn_yn := 'N';
12708 END IF;
12709
12710 IF (l_eot_purchase_opt_formula IS NOT NULL) THEN
12711 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12712 l_rulv_rec.dnz_chr_id := p_chr_id;
12713 l_rulv_rec.rule_information3 := l_eot_purchase_opt_formula;
12714 l_rulv_rec.rule_information_category := 'AMBPOC';
12715 l_rulv_rec.std_template_yn := 'N';
12716 l_rulv_rec.warn_yn := 'N';
12717 END IF;
12718
12719 IF (l_eot_purchase_opt_prorate IS NOT NULL) THEN
12720 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12721 l_rulv_rec.dnz_chr_id := p_chr_id;
12722 l_rulv_rec.rule_information4 := l_eot_purchase_opt_prorate;
12723 l_rulv_rec.rule_information_category := 'AMBPOC';
12724 l_rulv_rec.std_template_yn := 'N';
12725 l_rulv_rec.warn_yn := 'N';
12726 END IF;
12727
12728 IF (l_eot_purchase_opt_max_opt IS NOT NULL) THEN
12729 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12730 l_rulv_rec.dnz_chr_id := p_chr_id;
12731 l_rulv_rec.rule_information5 := l_eot_purchase_opt_max_opt;
12732 l_rulv_rec.rule_information_category := 'AMBPOC';
12733 l_rulv_rec.std_template_yn := 'N';
12734 l_rulv_rec.warn_yn := 'N';
12735 END IF;
12736
12737 IF (l_eot_purchase_opt_max_amt IS NOT NULL) THEN
12738 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12739 l_rulv_rec.dnz_chr_id := p_chr_id;
12740 l_rulv_rec.rule_information6 := l_eot_purchase_opt_max_amt;
12741 l_rulv_rec.rule_information_category := 'AMBPOC';
12742 l_rulv_rec.std_template_yn := 'N';
12743 l_rulv_rec.warn_yn := 'N';
12744 END IF;
12745
12746 IF (l_eot_purchase_opt_max_formula IS NOT NULL) THEN
12747 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12748 l_rulv_rec.dnz_chr_id := p_chr_id;
12749 l_rulv_rec.rule_information7 := l_eot_purchase_opt_max_formula;
12750 l_rulv_rec.rule_information_category := 'AMBPOC';
12751 l_rulv_rec.std_template_yn := 'N';
12752 l_rulv_rec.warn_yn := 'N';
12753 END IF;
12754
12755 IF (l_eot_purchase_opt_min_opt IS NOT NULL) THEN
12756 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12757 l_rulv_rec.dnz_chr_id := p_chr_id;
12758 l_rulv_rec.rule_information8 := l_eot_purchase_opt_min_opt;
12759 l_rulv_rec.rule_information_category := 'AMBPOC';
12760 l_rulv_rec.std_template_yn := 'N';
12761 l_rulv_rec.warn_yn := 'N';
12762 END IF;
12763
12764 IF (l_eot_purchase_opt_min_amt IS NOT NULL) THEN
12765 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12766 l_rulv_rec.dnz_chr_id := p_chr_id;
12767 l_rulv_rec.rule_information9 := l_eot_purchase_opt_min_amt;
12768 l_rulv_rec.rule_information_category := 'AMBPOC';
12769 l_rulv_rec.std_template_yn := 'N';
12770 l_rulv_rec.warn_yn := 'N';
12771 END IF;
12772
12773 IF (l_eot_purchase_opt_min_formula IS NOT NULL) THEN
12774 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12775 l_rulv_rec.dnz_chr_id := p_chr_id;
12776 l_rulv_rec.rule_information10 := l_eot_purchase_opt_min_formula;
12777 l_rulv_rec.rule_information_category := 'AMBPOC';
12778 l_rulv_rec.std_template_yn := 'N';
12779 l_rulv_rec.warn_yn := 'N';
12780 END IF;
12781
12782 create_rule_group_and_rule(
12783 x_return_status => x_return_status,
12784 x_msg_count => x_msg_count,
12785 x_msg_data => x_msg_data,
12786 p_rgp_id => l_rgp_id,
12787 p_rgpv_rec => l_rgpv_rec,
12788 p_rulv_rec => l_rulv_rec,
12789 x_rgpv_rec => x_rgpv_rec,
12790 x_rulv_rec => x_rulv_rec
12791 );
12792
12793 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12794 raise header_rule_failed;
12795 END IF;
12796
12797 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12798 l_rgp_id := x_rgpv_rec.id;
12799 END IF;
12800
12801 debug_message('------>Rule: AMTFOC/AMBPOC processed');
12802
12803 l_rulv_rec := NULL;
12804
12805 l_eot_auto_proc_purchase_opt := p_header_rec.eot_auto_proc_purchase_opt;
12806
12807 IF (l_eot_auto_proc_purchase_opt IS NULL
12808 AND
12809 p_header_rec.template_number IS NOT NULL) THEN
12810 get_contract_rules(
12811 x_return_status => x_return_status,
12812 x_msg_count => x_msg_count,
12813 x_msg_data => x_msg_data,
12814 p_chr_id => p_template_id,
12815 p_cle_id => NULL,
12816 p_rgd_code => 'AMTFOC',
12817 p_rule_code => 'AMTINV',
12818 x_rulv_tbl => l_rulv_tbl,
12819 x_rule_count => l_rule_count
12820 );
12821
12822 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12823 RAISE header_rule_failed;
12824 END IF;
12825
12826 IF (l_rule_count > 0) THEN
12827 l_eot_auto_proc_purchase_opt := NVL(l_eot_auto_proc_purchase_opt,l_rulv_tbl(1).rule_information1);
12828 END IF;
12829 END IF;
12830
12831 IF (l_eot_auto_proc_purchase_opt IS NOT NULL) THEN
12832 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12833 l_rulv_rec.dnz_chr_id := p_chr_id;
12834 l_rulv_rec.rule_information1 := l_eot_auto_proc_purchase_opt;
12835 l_rulv_rec.rule_information_category := 'AMTINV';
12836 l_rulv_rec.std_template_yn := 'N';
12837 l_rulv_rec.warn_yn := 'N';
12838 END IF;
12839
12840 create_rule_group_and_rule(
12841 x_return_status => x_return_status,
12842 x_msg_count => x_msg_count,
12843 x_msg_data => x_msg_data,
12844 p_rgp_id => l_rgp_id,
12845 p_rgpv_rec => l_rgpv_rec,
12846 p_rulv_rec => l_rulv_rec,
12847 x_rgpv_rec => x_rgpv_rec,
12848 x_rulv_rec => x_rulv_rec
12849 );
12850
12851 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12852 raise header_rule_failed;
12853 END IF;
12854
12855 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12856 l_rgp_id := x_rgpv_rec.id;
12857 END IF;
12858
12859 debug_message('------>Rule: AMTFOC/AMTINV processed');
12860
12861 -- Rule Group AMTQPR
12862
12863 l_rgpv_rec := NULL;
12864 l_rgp_id := NULL;
12865 l_rgpv_rec.rgd_code := 'AMTQPR';
12866 l_rgpv_rec.chr_id := p_chr_id;
12867 l_rgpv_rec.dnz_chr_id := p_chr_id;
12868 l_rgpv_rec.cle_id := NULL;
12869 l_rgpv_rec.rgp_type := 'KRG';
12870
12871 l_rulv_rec := NULL;
12872
12873 -- cklee bug# 3440442 bug# 3440442
12874 IF (NVL(p_header_rec.tqp_erl_termination_alwd_flag,'N') NOT IN ('Y','N')) THEN
12875 okl_api.set_message(
12876 G_APP_NAME,
12877 G_INVALID_VALUE,
12878 'CONTRACT_NUM',
12879 p_header_rec.contract_number_old,
12880 'COL_NAME',
12881 'TQP_ERL_TERMINATION_ALWD_FLAG',
12882 'COL_VALUE',
12883 p_header_rec.tqp_erl_termination_alwd_flag
12884 );
12885
12886 x_return_status := OKL_API.G_RET_STS_ERROR;
12887
12888 raise header_rule_failed;
12889 END IF;
12890 -- cklee bug# 3440442 bug# 3440442
12891
12892 l_tqp_erl_term_alwd_flag := p_header_rec.tqp_erl_termination_alwd_flag;
12893
12894 IF (l_tqp_erl_term_alwd_flag IS NULL
12895 AND
12896 p_header_rec.template_number IS NOT NULL) THEN
12897 get_contract_rules(
12898 x_return_status => x_return_status,
12899 x_msg_count => x_msg_count,
12900 x_msg_data => x_msg_data,
12901 p_chr_id => p_template_id,
12902 p_cle_id => NULL,
12903 p_rgd_code => 'AMTQPR',
12904 p_rule_code => 'AMCTTA',
12905 x_rulv_tbl => l_rulv_tbl,
12906 x_rule_count => l_rule_count
12907 );
12908
12909 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12910 RAISE header_rule_failed;
12911 END IF;
12912
12913 IF (l_rule_count > 0) THEN
12914 l_tqp_erl_term_alwd_flag := NVL(l_tqp_erl_term_alwd_flag,l_rulv_tbl(1).rule_information1);
12915 END IF;
12916 END IF;
12917
12918 IF (l_tqp_erl_term_alwd_flag IS NOT NULL) THEN
12919 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12920 l_rulv_rec.dnz_chr_id := p_chr_id;
12921 l_rulv_rec.rule_information1 := l_tqp_erl_term_alwd_flag;
12922 l_rulv_rec.rule_information_category := 'AMCTTA';
12923 l_rulv_rec.std_template_yn := 'N';
12924 l_rulv_rec.warn_yn := 'N';
12925 END IF;
12926
12927 create_rule_group_and_rule(
12928 x_return_status => x_return_status,
12929 x_msg_count => x_msg_count,
12930 x_msg_data => x_msg_data,
12931 p_rgp_id => l_rgp_id,
12932 p_rgpv_rec => l_rgpv_rec,
12933 p_rulv_rec => l_rulv_rec,
12934 x_rgpv_rec => x_rgpv_rec,
12935 x_rulv_rec => x_rulv_rec
12936 );
12937
12938 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12939 raise header_rule_failed;
12940 END IF;
12941
12942 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12943 l_rgp_id := x_rgpv_rec.id;
12944 END IF;
12945 debug_message('------>Rule: AMTQPR/AMCTTA processed');
12946 l_rulv_rec := NULL;
12947
12948 l_tqp_prt_term_alwd_flag := p_header_rec.tqp_prt_termination_alwd_flag;
12949
12950 IF (l_tqp_prt_term_alwd_flag IS NULL
12951 AND
12952 p_header_rec.template_number IS NOT NULL) THEN
12953 get_contract_rules(
12954 x_return_status => x_return_status,
12955 x_msg_count => x_msg_count,
12956 x_msg_data => x_msg_data,
12957 p_chr_id => p_template_id,
12958 p_cle_id => NULL,
12959 p_rgd_code => 'AMTQPR',
12960 p_rule_code => 'AMPTQA',
12961 x_rulv_tbl => l_rulv_tbl,
12962 x_rule_count => l_rule_count
12963 );
12964
12965 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12966 RAISE header_rule_failed;
12967 END IF;
12968
12969 IF (l_rule_count > 0) THEN
12970 l_tqp_prt_term_alwd_flag := NVL(l_tqp_prt_term_alwd_flag,l_rulv_tbl(1).rule_information1);
12971 END IF;
12972 END IF;
12973
12974 IF (l_tqp_prt_term_alwd_flag IS NOT NULL) THEN
12975 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12976 l_rulv_rec.dnz_chr_id := p_chr_id;
12977 l_rulv_rec.rule_information1 := l_tqp_prt_term_alwd_flag;
12978 l_rulv_rec.rule_information_category := 'AMPTQA';
12979 l_rulv_rec.std_template_yn := 'N';
12980 l_rulv_rec.warn_yn := 'N';
12981 END IF;
12982
12983 create_rule_group_and_rule(
12984 x_return_status => x_return_status,
12985 x_msg_count => x_msg_count,
12986 x_msg_data => x_msg_data,
12987 p_rgp_id => l_rgp_id,
12988 p_rgpv_rec => l_rgpv_rec,
12989 p_rulv_rec => l_rulv_rec,
12990 x_rgpv_rec => x_rgpv_rec,
12991 x_rulv_rec => x_rulv_rec
12992 );
12993
12994 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12995 raise header_rule_failed;
12996 END IF;
12997
12998 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12999 l_rgp_id := x_rgpv_rec.id;
13000 END IF;
13001
13002 debug_message('------>Rule: AMTQPR/AMPTQA processed');
13003 l_rulv_rec := NULL;
13004
13005 l_quote_effective_days := TO_CHAR(p_header_rec.quote_effective_days);
13006 l_quote_eff_max_days := TO_CHAR(p_header_rec.quote_eff_max_days);
13007
13008 IF (l_quote_effective_days IS NULL
13009 OR
13010 l_quote_eff_max_days IS NULL
13011 AND
13012 p_header_rec.template_number IS NOT NULL) THEN
13013 get_contract_rules(
13014 x_return_status => x_return_status,
13015 x_msg_count => x_msg_count,
13016 x_msg_data => x_msg_data,
13017 p_chr_id => p_template_id,
13018 p_cle_id => NULL,
13019 p_rgd_code => 'AMTQPR',
13020 p_rule_code => 'AMQTEF',
13021 x_rulv_tbl => l_rulv_tbl,
13022 x_rule_count => l_rule_count
13023 );
13024
13025 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13026 RAISE header_rule_failed;
13027 END IF;
13028
13029 IF (l_rule_count > 0) THEN
13030 l_quote_effective_days := NVL(l_quote_effective_days,l_rulv_tbl(1).rule_information1);
13031 l_quote_eff_max_days := NVL(l_quote_eff_max_days, l_rulv_tbl(1).rule_information2);
13032 END IF;
13033 END IF;
13034
13035 IF (l_quote_effective_days IS NOT NULL) THEN
13036 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13037 l_rulv_rec.dnz_chr_id := p_chr_id;
13038 l_rulv_rec.rule_information1 := l_quote_effective_days;
13039 l_rulv_rec.rule_information_category := 'AMQTEF';
13040 l_rulv_rec.std_template_yn := 'N';
13041 l_rulv_rec.warn_yn := 'N';
13042 END IF;
13043
13044 IF (l_quote_eff_max_days IS NOT NULL) THEN
13045 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13046 l_rulv_rec.dnz_chr_id := p_chr_id;
13047 l_rulv_rec.rule_information2 := l_quote_eff_max_days;
13048 l_rulv_rec.rule_information_category := 'AMQTEF';
13049 l_rulv_rec.std_template_yn := 'N';
13050 l_rulv_rec.warn_yn := 'N';
13051 END IF;
13052
13053 create_rule_group_and_rule(
13054 x_return_status => x_return_status,
13055 x_msg_count => x_msg_count,
13056 x_msg_data => x_msg_data,
13057 p_rgp_id => l_rgp_id,
13058 p_rgpv_rec => l_rgpv_rec,
13059 p_rulv_rec => l_rulv_rec,
13060 x_rgpv_rec => x_rgpv_rec,
13061 x_rulv_rec => x_rulv_rec
13062 );
13063
13064 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13065 raise header_rule_failed;
13066 END IF;
13067
13068 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13069 l_rgp_id := x_rgpv_rec.id;
13070 END IF;
13071 debug_message('------>Rule: AMTQPR/AMQTEF processed');
13072 l_rulv_rec := NULL;
13073
13074 l_eot_tolerance_days := TO_CHAR(p_header_rec.eot_tolerance_days);
13075
13076 IF (l_eot_tolerance_days IS NULL
13077 AND
13078 p_header_rec.template_number IS NOT NULL) THEN
13079 get_contract_rules(
13080 x_return_status => x_return_status,
13081 x_msg_count => x_msg_count,
13082 x_msg_data => x_msg_data,
13083 p_chr_id => p_template_id,
13084 p_cle_id => NULL,
13085 p_rgd_code => 'AMTQPR',
13086 p_rule_code => 'AMTSET',
13087 x_rulv_tbl => l_rulv_tbl,
13088 x_rule_count => l_rule_count
13089 );
13090
13091 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13092 RAISE header_rule_failed;
13093 END IF;
13094
13095 IF (l_rule_count > 0) THEN
13096 l_eot_tolerance_days := NVL(l_eot_tolerance_days,l_rulv_tbl(1).rule_information1);
13097 END IF;
13098 END IF;
13099
13100 IF (l_eot_tolerance_days IS NOT NULL) THEN
13101 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13102 l_rulv_rec.dnz_chr_id := p_chr_id;
13103 l_rulv_rec.rule_information1 := l_eot_tolerance_days;
13104 l_rulv_rec.rule_information_category := 'AMTSET';
13105 l_rulv_rec.std_template_yn := 'N';
13106 l_rulv_rec.warn_yn := 'N';
13107 END IF;
13108
13109 create_rule_group_and_rule(
13110 x_return_status => x_return_status,
13111 x_msg_count => x_msg_count,
13112 x_msg_data => x_msg_data,
13113 p_rgp_id => l_rgp_id,
13114 p_rgpv_rec => l_rgpv_rec,
13115 p_rulv_rec => l_rulv_rec,
13116 x_rgpv_rec => x_rgpv_rec,
13117 x_rulv_rec => x_rulv_rec
13118 );
13119
13120 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13121 raise header_rule_failed;
13122 END IF;
13123
13124 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13125 l_rgp_id := x_rgpv_rec.id;
13126 END IF;
13127
13128 debug_message('------>Rule: AMTQPR/AMTSET processed');
13129
13130 -- Send bill of sale, manual quote, First term date
13131
13132 l_rulv_rec := NULL;
13133
13134 l_send_bill_sale := p_header_rec.send_bill_sale;
13135
13136 IF (l_send_bill_sale IS NULL
13137 AND
13138 p_header_rec.template_number IS NOT NULL) THEN
13139 get_contract_rules(
13140 x_return_status => x_return_status,
13141 x_msg_count => x_msg_count,
13142 x_msg_data => x_msg_data,
13143 p_chr_id => p_template_id,
13144 p_cle_id => NULL,
13145 p_rgd_code => 'AMTQPR',
13146 p_rule_code => 'AMFBOS',
13147 x_rulv_tbl => l_rulv_tbl,
13148 x_rule_count => l_rule_count
13149 );
13150
13151 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13152 RAISE header_rule_failed;
13153 END IF;
13154
13155 IF (l_rule_count > 0) THEN
13156 l_send_bill_sale := NVL(l_send_bill_sale,l_rulv_tbl(1).rule_information1);
13157 END IF;
13158 END IF;
13159
13160 IF (l_send_bill_sale IS NOT NULL) THEN
13161 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13162 l_rulv_rec.dnz_chr_id := p_chr_id;
13163 l_rulv_rec.rule_information1 := l_send_bill_sale;
13164 l_rulv_rec.rule_information_category := 'AMFBOS';
13165 l_rulv_rec.std_template_yn := 'N';
13166 l_rulv_rec.warn_yn := 'N';
13167 END IF;
13168
13169 create_rule_group_and_rule(
13170 x_return_status => x_return_status,
13171 x_msg_count => x_msg_count,
13172 x_msg_data => x_msg_data,
13173 p_rgp_id => l_rgp_id,
13174 p_rgpv_rec => l_rgpv_rec,
13175 p_rulv_rec => l_rulv_rec,
13176 x_rgpv_rec => x_rgpv_rec,
13177 x_rulv_rec => x_rulv_rec
13178 );
13179
13180 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13181 raise header_rule_failed;
13182 END IF;
13183
13184 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13185 l_rgp_id := x_rgpv_rec.id;
13186 END IF;
13187 debug_message('------>Rule: AMTQPR/AMFBOS processed');
13188
13189 l_rulv_rec := NULL;
13190
13191 l_manual_quotes_only := p_header_rec.manual_quotes_only;
13192
13193 IF (l_manual_quotes_only IS NULL
13194 AND
13195 p_header_rec.template_number IS NOT NULL) THEN
13196 get_contract_rules(
13197 x_return_status => x_return_status,
13198 x_msg_count => x_msg_count,
13199 x_msg_data => x_msg_data,
13200 p_chr_id => p_template_id,
13201 p_cle_id => NULL,
13202 p_rgd_code => 'AMTQPR',
13203 p_rule_code => 'AMCMTQ',
13204 x_rulv_tbl => l_rulv_tbl,
13205 x_rule_count => l_rule_count
13206 );
13207
13208 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13209 RAISE header_rule_failed;
13210 END IF;
13211
13212 IF (l_rule_count > 0) THEN
13213 l_manual_quotes_only := NVL(l_manual_quotes_only,l_rulv_tbl(1).rule_information1);
13214 END IF;
13215 END IF;
13216
13217 IF (l_manual_quotes_only IS NOT NULL) THEN
13218 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13219 l_rulv_rec.dnz_chr_id := p_chr_id;
13220 l_rulv_rec.rule_information1 := l_manual_quotes_only;
13221 l_rulv_rec.rule_information_category := 'AMCMTQ';
13222 l_rulv_rec.std_template_yn := 'N';
13223 l_rulv_rec.warn_yn := 'N';
13224 END IF;
13225
13226 create_rule_group_and_rule(
13227 x_return_status => x_return_status,
13228 x_msg_count => x_msg_count,
13229 x_msg_data => x_msg_data,
13230 p_rgp_id => l_rgp_id,
13231 p_rgpv_rec => l_rgpv_rec,
13232 p_rulv_rec => l_rulv_rec,
13233 x_rgpv_rec => x_rgpv_rec,
13234 x_rulv_rec => x_rulv_rec
13235 );
13236
13237 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13238 raise header_rule_failed;
13239 END IF;
13240
13241 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13242 l_rgp_id := x_rgpv_rec.id;
13243 END IF;
13244 debug_message('------>Rule: AMTQPR/AMCMTQ processed');
13245
13246 l_rulv_rec := NULL;
13247
13248 l_first_termination_date := get_canonical_date(p_header_rec.first_termination_date);
13249
13250 IF (l_first_termination_date IS NULL
13251 AND
13252 p_header_rec.template_number IS NOT NULL) THEN
13253 get_contract_rules(
13254 x_return_status => x_return_status,
13255 x_msg_count => x_msg_count,
13256 x_msg_data => x_msg_data,
13257 p_chr_id => p_template_id,
13258 p_cle_id => NULL,
13259 p_rgd_code => 'AMTQPR',
13260 p_rule_code => 'AMDFTD',
13261 x_rulv_tbl => l_rulv_tbl,
13262 x_rule_count => l_rule_count
13263 );
13264
13265 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13266 RAISE header_rule_failed;
13267 END IF;
13268
13269 IF (l_rule_count > 0) THEN
13270 l_first_termination_date := NVL(l_first_termination_date,l_rulv_tbl(1).rule_information1);
13271 END IF;
13272 END IF;
13273
13274 IF (l_first_termination_date IS NOT NULL) THEN
13275 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13276 l_rulv_rec.dnz_chr_id := p_chr_id;
13277 l_rulv_rec.rule_information1 := l_first_termination_date;
13278 l_rulv_rec.rule_information_category := 'AMDFTD';
13279 l_rulv_rec.std_template_yn := 'N';
13280 l_rulv_rec.warn_yn := 'N';
13281 END IF;
13282
13283 create_rule_group_and_rule(
13284 x_return_status => x_return_status,
13285 x_msg_count => x_msg_count,
13286 x_msg_data => x_msg_data,
13287 p_rgp_id => l_rgp_id,
13288 p_rgpv_rec => l_rgpv_rec,
13289 p_rulv_rec => l_rulv_rec,
13290 x_rgpv_rec => x_rgpv_rec,
13291 x_rulv_rec => x_rulv_rec
13292 );
13293
13294 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13295 raise header_rule_failed;
13296 END IF;
13297
13298 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13299 l_rgp_id := x_rgpv_rec.id;
13300 END IF;
13301 debug_message('------>Rule: AMTQPR/AMDFTD processed');
13302
13303 -- Rule Group AMTPAR
13304
13305 l_rgpv_rec := NULL;
13306 l_rgp_id := NULL;
13307 l_rgpv_rec.rgd_code := 'AMTPAR';
13308 l_rgpv_rec.chr_id := p_chr_id;
13309 l_rgpv_rec.dnz_chr_id := p_chr_id;
13310 l_rgpv_rec.cle_id := NULL;
13311 l_rgpv_rec.rgp_type := 'KRG';
13312
13313 l_rulv_rec := NULL;
13314
13315 l_prt_termination_approval_req := p_header_rec.prt_termination_approval_req;
13316
13317 IF (l_prt_termination_approval_req IS NULL
13318 AND
13319 p_header_rec.template_number IS NOT NULL) THEN
13320 get_contract_rules(
13321 x_return_status => x_return_status,
13322 x_msg_count => x_msg_count,
13323 x_msg_data => x_msg_data,
13324 p_chr_id => p_template_id,
13325 p_cle_id => NULL,
13326 p_rgd_code => 'AMTPAR',
13327 p_rule_code => 'AMAPRE',
13328 x_rulv_tbl => l_rulv_tbl,
13329 x_rule_count => l_rule_count
13330 );
13331
13332 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13333 RAISE header_rule_failed;
13334 END IF;
13335
13336 IF (l_rule_count > 0) THEN
13337 l_prt_termination_approval_req := l_rulv_tbl(1).rule_information1;
13338 END IF;
13339 END IF;
13340
13341 IF (l_prt_termination_approval_req IS NOT NULL) THEN
13342 l_rulv_rec := NULL;
13343 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13344 l_rulv_rec.dnz_chr_id := p_chr_id;
13345 l_rulv_rec.rule_information1 := l_prt_termination_approval_req;
13346 l_rulv_rec.rule_information_category := 'AMAPRE';
13347 l_rulv_rec.std_template_yn := 'N';
13348 l_rulv_rec.warn_yn := 'N';
13349 END IF;
13350
13351 create_rule_group_and_rule(
13352 x_return_status => x_return_status,
13353 x_msg_count => x_msg_count,
13354 x_msg_data => x_msg_data,
13355 p_rgp_id => l_rgp_id,
13356 p_rgpv_rec => l_rgpv_rec,
13357 p_rulv_rec => l_rulv_rec,
13358 x_rgpv_rec => x_rgpv_rec,
13359 x_rulv_rec => x_rulv_rec
13360 );
13361
13362 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13363 raise header_rule_failed;
13364 END IF;
13365
13366 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13367 l_rgp_id := x_rgpv_rec.id;
13368 END IF;
13369 debug_message('------>Rule: AMTPAR/AMAPRE processed');
13370 l_rulv_rec := NULL;
13371
13372 l_prt_termination_allowed_flag := p_header_rec.prt_termination_allowed_flag;
13373
13374 IF (l_prt_termination_allowed_flag IS NULL
13375 AND
13376 p_header_rec.template_number IS NOT NULL) THEN
13377 get_contract_rules(
13378 x_return_status => x_return_status,
13379 x_msg_count => x_msg_count,
13380 x_msg_data => x_msg_data,
13381 p_chr_id => p_template_id,
13382 p_cle_id => NULL,
13383 p_rgd_code => 'AMTPAR',
13384 p_rule_code => 'AMPTQA',
13385 x_rulv_tbl => l_rulv_tbl,
13386 x_rule_count => l_rule_count
13387 );
13388
13389 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13390 RAISE header_rule_failed;
13391 END IF;
13392
13393 IF (l_rule_count > 0) THEN
13394 l_prt_termination_allowed_flag := l_rulv_tbl(1).rule_information1;
13395 END IF;
13396 END IF;
13397
13398 IF (l_prt_termination_allowed_flag IS NOT NULL) THEN
13399 l_rulv_rec := NULL;
13400 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13401 l_rulv_rec.dnz_chr_id := p_chr_id;
13402 l_rulv_rec.rule_information1 := l_prt_termination_allowed_flag;
13403 l_rulv_rec.rule_information_category := 'AMPTQA';
13404 l_rulv_rec.std_template_yn := 'N';
13405 l_rulv_rec.warn_yn := 'N';
13406 END IF;
13407
13408 create_rule_group_and_rule(
13409 x_return_status => x_return_status,
13410 x_msg_count => x_msg_count,
13411 x_msg_data => x_msg_data,
13412 p_rgp_id => l_rgp_id,
13413 p_rgpv_rec => l_rgpv_rec,
13414 p_rulv_rec => l_rulv_rec,
13415 x_rgpv_rec => x_rgpv_rec,
13416 x_rulv_rec => x_rulv_rec
13417 );
13418
13419 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13420 raise header_rule_failed;
13421 END IF;
13422
13423 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13424 l_rgp_id := x_rgpv_rec.id;
13425 END IF;
13426
13427 debug_message('------>Rule: AMTPAR/AMPTQA processed');
13428 -- Rule Group AMTPAR
13429
13430 l_rgpv_rec := NULL;
13431 l_rgp_id := NULL;
13432 l_rgpv_rec.rgd_code := 'AMTGAL';
13433 l_rgpv_rec.chr_id := p_chr_id;
13434 l_rgpv_rec.dnz_chr_id := p_chr_id;
13435 l_rgpv_rec.cle_id := NULL;
13436 l_rgpv_rec.rgp_type := 'KRG';
13437 l_rulv_rec := NULL;
13438
13439
13440 l_gain_loss_approval_req := p_header_rec.gain_loss_approval_req;
13441
13442 IF (l_gain_loss_approval_req IS NULL
13443 AND
13444 p_header_rec.template_number IS NOT NULL) THEN
13445
13446 get_contract_rules(
13447 x_return_status => x_return_status,
13448 x_msg_count => x_msg_count,
13449 x_msg_data => x_msg_data,
13450 p_chr_id => p_template_id,
13451 p_cle_id => NULL,
13452 p_rgd_code => 'AMTGAL',
13453 p_rule_code => 'AMAPRE',
13454 x_rulv_tbl => l_rulv_tbl,
13455 x_rule_count => l_rule_count
13456 );
13457
13458 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13459 RAISE header_rule_failed;
13460 END IF;
13461
13462 IF (l_rule_count > 0) THEN
13463 l_gain_loss_approval_req := l_rulv_tbl(1).rule_information1;
13464 END IF;
13465 END IF;
13466
13467 IF (l_gain_loss_approval_req IS NOT NULL) THEN
13468 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13469 l_rulv_rec.dnz_chr_id := p_chr_id;
13470 l_rulv_rec.rule_information1 := l_gain_loss_approval_req;
13471 l_rulv_rec.rule_information_category := 'AMAPRE';
13472 l_rulv_rec.std_template_yn := 'N';
13473 l_rulv_rec.warn_yn := 'N';
13474 END IF;
13475
13476 create_rule_group_and_rule(
13477 x_return_status => x_return_status,
13478 x_msg_count => x_msg_count,
13479 x_msg_data => x_msg_data,
13480 p_rgp_id => l_rgp_id,
13481 p_rgpv_rec => l_rgpv_rec,
13482 p_rulv_rec => l_rulv_rec,
13483 x_rgpv_rec => x_rgpv_rec,
13484 x_rulv_rec => x_rulv_rec
13485 );
13486
13487 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13488 raise header_rule_failed;
13489 END IF;
13490
13491 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13492 l_rgp_id := x_rgpv_rec.id;
13493 END IF;
13494 debug_message('------>Rule: AMTGAL/AMAPRE processed');
13495 l_rulv_rec := NULL;
13496
13497 l_gain_loss_net_quote_opt := p_header_rec.gain_loss_net_quote_opt;
13498 l_gain_loss_net_quote_amt := TO_CHAR(p_header_rec.gain_loss_net_quote_amt);
13499 l_gain_loss_net_quote_formula := p_header_rec.gain_loss_net_quote_formula;
13500 l_gain_loss_tolrn_allwd := p_header_rec.gain_loss_tolerance_allowed;
13501 l_gain_loss_tolrnc_allwd_amt := p_header_rec.gain_loss_tolrnc_allwd_amt;
13502 l_gain_loss_tolrnc_allwd_frml := p_header_rec.gain_loss_tolrnc_allwd_frml;
13503 l_gain_loss_tolrnc_basis := p_header_rec.gain_loss_tolrnc_basis;
13504 l_gain_loss_apprv_proc_frml := p_header_rec.gain_loss_apprv_proc_frml;
13505
13506 IF (l_gain_loss_net_quote_opt IS NULL
13507 OR
13508 l_gain_loss_net_quote_amt IS NULL
13509 OR
13510 l_gain_loss_net_quote_formula IS NULL
13511 OR
13512 l_gain_loss_tolrn_allwd IS NULL
13513 OR
13514 l_gain_loss_tolrnc_allwd_amt IS NULL
13515 OR
13516 l_gain_loss_tolrnc_allwd_frml IS NULL
13517 OR
13518 l_gain_loss_tolrnc_basis IS NULL
13519 OR
13520 l_gain_loss_apprv_proc_frml IS NULL
13521 AND
13522 p_header_rec.template_number IS NOT NULL) THEN
13523
13524 get_contract_rules(
13525 x_return_status => x_return_status,
13526 x_msg_count => x_msg_count,
13527 x_msg_data => x_msg_data,
13528 p_chr_id => p_template_id,
13529 p_cle_id => NULL,
13530 p_rgd_code => 'AMTGAL',
13531 p_rule_code => 'AMGALO',
13532 x_rulv_tbl => l_rulv_tbl,
13533 x_rule_count => l_rule_count
13534 );
13535
13536 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13537 RAISE header_rule_failed;
13538 END IF;
13539
13540 IF (l_rule_count > 0) THEN
13541 l_gain_loss_net_quote_opt := NVL(l_gain_loss_net_quote_opt,l_rulv_tbl(1).rule_information1);
13542 l_gain_loss_net_quote_amt := NVL(l_gain_loss_net_quote_amt,l_rulv_tbl(1).rule_information2);
13543 l_gain_loss_net_quote_formula := NVL(l_gain_loss_net_quote_formula,l_rulv_tbl(1).rule_information3);
13544 l_gain_loss_tolrn_allwd := NVL(l_gain_loss_tolrn_allwd,l_rulv_tbl(1).rule_information7);
13545 l_gain_loss_tolrnc_allwd_amt := NVL(l_gain_loss_tolrnc_allwd_amt,l_rulv_tbl(1).rule_information4);
13546 l_gain_loss_tolrnc_allwd_frml := NVL(l_gain_loss_tolrnc_allwd_frml,l_rulv_tbl(1).rule_information6);
13547 l_gain_loss_tolrnc_basis := NVL(l_gain_loss_tolrnc_basis,l_rulv_tbl(1).rule_information5);
13548 l_gain_loss_apprv_proc_frml := NVL(l_gain_loss_apprv_proc_frml,l_rulv_tbl(1).rule_information8);
13549 END IF;
13550 END IF;
13551
13552 IF (l_gain_loss_net_quote_opt IS NOT NULL) THEN
13553 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13554 l_rulv_rec.dnz_chr_id := p_chr_id;
13555 l_rulv_rec.rule_information1 := l_gain_loss_net_quote_opt;
13556 l_rulv_rec.rule_information_category := 'AMGALO';
13557 l_rulv_rec.std_template_yn := 'N';
13558 l_rulv_rec.warn_yn := 'N';
13559 END IF;
13560
13561 IF (l_gain_loss_net_quote_amt IS NOT NULL) THEN
13562 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13563 l_rulv_rec.dnz_chr_id := p_chr_id;
13564 l_rulv_rec.rule_information2 := l_gain_loss_net_quote_amt;
13565 l_rulv_rec.rule_information_category := 'AMGALO';
13566 l_rulv_rec.std_template_yn := 'N';
13567 l_rulv_rec.warn_yn := 'N';
13568 END IF;
13569
13570 IF (l_gain_loss_net_quote_formula IS NOT NULL) THEN
13571 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13572 l_rulv_rec.dnz_chr_id := p_chr_id;
13573 l_rulv_rec.rule_information3 := l_gain_loss_net_quote_formula;
13574 l_rulv_rec.rule_information_category := 'AMGALO';
13575 l_rulv_rec.std_template_yn := 'N';
13576 l_rulv_rec.warn_yn := 'N';
13577 END IF;
13578
13579 IF (l_gain_loss_tolrn_allwd IS NOT NULL) THEN
13580 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13581 l_rulv_rec.dnz_chr_id := p_chr_id;
13582 l_rulv_rec.rule_information7 := l_gain_loss_tolrn_allwd;
13583 l_rulv_rec.rule_information_category := 'AMGALO';
13584 l_rulv_rec.std_template_yn := 'N';
13585 l_rulv_rec.warn_yn := 'N';
13586 END IF;
13587
13588 IF (l_gain_loss_tolrnc_allwd_amt IS NOT NULL) THEN
13589 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13590 l_rulv_rec.dnz_chr_id := p_chr_id;
13591 l_rulv_rec.rule_information4 := l_gain_loss_tolrnc_allwd_amt;
13592 l_rulv_rec.rule_information_category := 'AMGALO';
13593 l_rulv_rec.std_template_yn := 'N';
13594 l_rulv_rec.warn_yn := 'N';
13595 END IF;
13596
13597 IF (l_gain_loss_tolrnc_allwd_frml IS NOT NULL) THEN
13598 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13599 l_rulv_rec.dnz_chr_id := p_chr_id;
13600 l_rulv_rec.rule_information6 := l_gain_loss_tolrnc_allwd_frml;
13601 l_rulv_rec.rule_information_category := 'AMGALO';
13602 l_rulv_rec.std_template_yn := 'N';
13603 l_rulv_rec.warn_yn := 'N';
13604 END IF;
13605
13606 IF (l_gain_loss_tolrnc_basis IS NOT NULL) THEN
13607 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13608 l_rulv_rec.dnz_chr_id := p_chr_id;
13609 l_rulv_rec.rule_information5 := l_gain_loss_tolrnc_basis;
13610 l_rulv_rec.rule_information_category := 'AMGALO';
13611 l_rulv_rec.std_template_yn := 'N';
13612 l_rulv_rec.warn_yn := 'N';
13613 END IF;
13614
13615 IF (l_gain_loss_apprv_proc_frml IS NOT NULL) THEN
13616 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13617 l_rulv_rec.dnz_chr_id := p_chr_id;
13618 l_rulv_rec.rule_information8 := l_gain_loss_apprv_proc_frml;
13619 l_rulv_rec.rule_information_category := 'AMGALO';
13620 l_rulv_rec.std_template_yn := 'N';
13621 l_rulv_rec.warn_yn := 'N';
13622 END IF;
13623
13624 create_rule_group_and_rule(
13625 x_return_status => x_return_status,
13626 x_msg_count => x_msg_count,
13627 x_msg_data => x_msg_data,
13628 p_rgp_id => l_rgp_id,
13629 p_rgpv_rec => l_rgpv_rec,
13630 p_rulv_rec => l_rulv_rec,
13631 x_rgpv_rec => x_rgpv_rec,
13632 x_rulv_rec => x_rulv_rec
13633 );
13634
13635 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13636 raise header_rule_failed;
13637 END IF;
13638
13639 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13640 l_rgp_id := x_rgpv_rec.id;
13641 END IF;
13642 debug_message('------>Rule: AMTGAL/AMGALO processed');
13643
13644 -- Rule Group AMQR1R
13645
13646 l_rgpv_rec := NULL;
13647 l_rgp_id := NULL;
13648 l_rgpv_rec.rgd_code := 'AMQR1R';
13649 l_rgpv_rec.chr_id := p_chr_id;
13650 l_rgpv_rec.dnz_chr_id := p_chr_id;
13651 l_rgpv_rec.cle_id := NULL;
13652 l_rgpv_rec.rgp_type := 'KRG';
13653 l_rulv_rec := NULL;
13654
13655 l_quote_rcpt_contract_role := p_header_rec.quote_rcpt_contract_role;
13656
13657 IF (l_quote_rcpt_contract_role IS NULL
13658 AND
13659 p_header_rec.template_number IS NOT NULL) THEN
13660 get_contract_rules(
13661 x_return_status => x_return_status,
13662 x_msg_count => x_msg_count,
13663 x_msg_data => x_msg_data,
13664 p_chr_id => p_template_id,
13665 p_cle_id => NULL,
13666 p_rgd_code => 'AMQR1R',
13667 p_rule_code => 'AMLCRO',
13668 x_rulv_tbl => l_rulv_tbl,
13669 x_rule_count => l_rule_count
13670 );
13671
13672 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13673 RAISE header_rule_failed;
13674 END IF;
13675
13676 IF (l_rule_count > 0) THEN
13677 l_quote_rcpt_contract_role := l_rulv_tbl(1).rule_information1;
13678 END IF;
13679 END IF;
13680
13681 IF (l_quote_rcpt_contract_role IS NOT NULL) THEN
13682 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13683 l_rulv_rec.dnz_chr_id := p_chr_id;
13684 l_rulv_rec.rule_information1 := l_quote_rcpt_contract_role;
13685 l_rulv_rec.rule_information_category := 'AMLCRO';
13686 l_rulv_rec.std_template_yn := 'N';
13687 l_rulv_rec.warn_yn := 'N';
13688 END IF;
13689
13690 create_rule_group_and_rule(
13691 x_return_status => x_return_status,
13692 x_msg_count => x_msg_count,
13693 x_msg_data => x_msg_data,
13694 p_rgp_id => l_rgp_id,
13695 p_rgpv_rec => l_rgpv_rec,
13696 p_rulv_rec => l_rulv_rec,
13697 x_rgpv_rec => x_rgpv_rec,
13698 x_rulv_rec => x_rulv_rec
13699 );
13700
13701 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13702 raise header_rule_failed;
13703 END IF;
13704
13705 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13706 l_rgp_id := x_rgpv_rec.id;
13707 END IF;
13708
13709 debug_message('------>Rule: AMQR1R/AMLCRO processed');
13710
13711 l_rulv_rec := NULL;
13712
13713 l_quote_rcpt_addl_rcpt_role := p_header_rec.quote_rcpt_addl_rcpt_role;
13714 l_quote_rcpt_alloc_ptg := p_header_rec.quote_rcpt_alloc_ptg;
13715
13716 IF (( l_quote_rcpt_addl_rcpt_role IS NULL
13717 OR
13718 l_quote_rcpt_alloc_ptg IS NULL
13719 )
13720 AND
13721 p_header_rec.template_number IS NOT NULL) THEN
13722 get_contract_rules(
13723 x_return_status => x_return_status,
13724 x_msg_count => x_msg_count,
13725 x_msg_data => x_msg_data,
13726 p_chr_id => p_template_id,
13727 p_cle_id => NULL,
13728 p_rgd_code => 'AMQR1R',
13729 p_rule_code => 'AMLCRP',
13730 x_rulv_tbl => l_rulv_tbl,
13731 x_rule_count => l_rule_count
13732 );
13733
13734 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13735 RAISE header_rule_failed;
13736 END IF;
13737
13738 IF (l_rule_count > 0) THEN
13739 l_quote_rcpt_addl_rcpt_role := NVL(l_quote_rcpt_addl_rcpt_role,l_rulv_tbl(1).rule_information1);
13740 l_quote_rcpt_alloc_ptg := NVL(l_quote_rcpt_alloc_ptg,l_rulv_tbl(1).rule_information2);
13741 END IF;
13742 END IF;
13743
13744 IF (l_quote_rcpt_addl_rcpt_role IS NOT NULL) THEN
13745 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13746 l_rulv_rec.dnz_chr_id := p_chr_id;
13747 l_rulv_rec.rule_information1 := l_quote_rcpt_addl_rcpt_role;
13748 l_rulv_rec.rule_information_category := 'AMLCRP';
13749 l_rulv_rec.std_template_yn := 'N';
13750 l_rulv_rec.warn_yn := 'N';
13751 END IF;
13752
13753 IF (l_quote_rcpt_alloc_ptg IS NOT NULL) THEN
13754 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13755 l_rulv_rec.dnz_chr_id := p_chr_id;
13756 l_rulv_rec.rule_information2 := l_quote_rcpt_alloc_ptg;
13757 l_rulv_rec.rule_information_category := 'AMLCRP';
13758 l_rulv_rec.std_template_yn := 'N';
13759 l_rulv_rec.warn_yn := 'N';
13760 END IF;
13761
13762 create_rule_group_and_rule(
13763 x_return_status => x_return_status,
13764 x_msg_count => x_msg_count,
13765 x_msg_data => x_msg_data,
13766 p_rgp_id => l_rgp_id,
13767 p_rgpv_rec => l_rgpv_rec,
13768 p_rulv_rec => l_rulv_rec,
13769 x_rgpv_rec => x_rgpv_rec,
13770 x_rulv_rec => x_rulv_rec
13771 );
13772
13773 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13774 raise header_rule_failed;
13775 END IF;
13776
13777 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13778 l_rgp_id := x_rgpv_rec.id;
13779 END IF;
13780
13781 debug_message('------>Rule: AMQR1R/AMLCRP processed');
13782
13783 -- Rule Group AMQR5A
13784
13785 l_rgpv_rec := NULL;
13786 l_rgp_id := NULL;
13787 l_rgpv_rec.rgd_code := 'AMQR5A';
13788 l_rgpv_rec.chr_id := p_chr_id;
13789 l_rgpv_rec.dnz_chr_id := p_chr_id;
13790 l_rgpv_rec.cle_id := NULL;
13791 l_rgpv_rec.rgp_type := 'KRG';
13792 l_rulv_rec := NULL;
13793
13794 l_quote_approver_contract_role := p_header_rec.quote_approver_contract_role;
13795
13796 IF (l_quote_approver_contract_role IS NULL
13797 AND
13798 p_header_rec.template_number IS NOT NULL) THEN
13799 get_contract_rules(
13800 x_return_status => x_return_status,
13801 x_msg_count => x_msg_count,
13802 x_msg_data => x_msg_data,
13803 p_chr_id => p_template_id,
13804 p_cle_id => NULL,
13805 p_rgd_code => 'AMQR5A',
13806 p_rule_code => 'AMLCAP',
13807 x_rulv_tbl => l_rulv_tbl,
13808 x_rule_count => l_rule_count
13809 );
13810
13811 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13812 RAISE header_rule_failed;
13813 END IF;
13814
13815 IF (l_rule_count > 0) THEN
13816 l_quote_approver_contract_role := l_rulv_tbl(1).rule_information1;
13817 END IF;
13818 END IF;
13819
13820 IF (l_quote_approver_contract_role IS NOT NULL) THEN
13821 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13822 l_rulv_rec.dnz_chr_id := p_chr_id;
13823 l_rulv_rec.rule_information1 := l_quote_approver_contract_role;
13824 l_rulv_rec.rule_information_category := 'AMLCAP';
13825 l_rulv_rec.std_template_yn := 'N';
13826 l_rulv_rec.warn_yn := 'N';
13827 END IF;
13828
13829 create_rule_group_and_rule(
13830 x_return_status => x_return_status,
13831 x_msg_count => x_msg_count,
13832 x_msg_data => x_msg_data,
13833 p_rgp_id => l_rgp_id,
13834 p_rgpv_rec => l_rgpv_rec,
13835 p_rulv_rec => l_rulv_rec,
13836 x_rgpv_rec => x_rgpv_rec,
13837 x_rulv_rec => x_rulv_rec
13838 );
13839
13840 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13841 raise header_rule_failed;
13842 END IF;
13843
13844 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13845 l_rgp_id := x_rgpv_rec.id;
13846 END IF;
13847
13848 debug_message('------>Rule: AMQR5A/AMLCAP processed');
13849
13850 l_quote_apprvr_adv_notice_role := p_header_rec.quote_apprvr_adv_notice_role;
13851 l_quote_approver_delay_days := p_header_rec.quote_approver_delay_days;
13852
13853 IF ((l_quote_apprvr_adv_notice_role IS NULL
13854 OR
13855 l_quote_approver_delay_days IS NULL
13856 )
13857 AND
13858 p_header_rec.template_number IS NOT NULL) THEN
13859 get_contract_rules(
13860 x_return_status => x_return_status,
13861 x_msg_count => x_msg_count,
13862 x_msg_data => x_msg_data,
13863 p_chr_id => p_template_id,
13864 p_cle_id => NULL,
13865 p_rgd_code => 'AMQR5A',
13866 p_rule_code => 'AMLCAV',
13867 x_rulv_tbl => l_rulv_tbl,
13868 x_rule_count => l_rule_count
13869 );
13870
13871 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13872 RAISE header_rule_failed;
13873 END IF;
13874
13875 IF (l_rule_count > 0) THEN
13876 l_quote_apprvr_adv_notice_role := NVL(l_quote_apprvr_adv_notice_role, l_rulv_tbl(1).rule_information1);
13877 l_quote_approver_delay_days := NVL(l_quote_approver_delay_days, l_rulv_tbl(1).rule_information2);
13878 END IF;
13879 END IF;
13880
13881 IF (l_quote_apprvr_adv_notice_role IS NOT NULL) THEN
13882 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13883 l_rulv_rec.dnz_chr_id := p_chr_id;
13884 l_rulv_rec.rule_information1 := l_quote_apprvr_adv_notice_role;
13885 l_rulv_rec.rule_information_category := 'AMLCAV';
13886 l_rulv_rec.std_template_yn := 'N';
13887 l_rulv_rec.warn_yn := 'N';
13888 END IF;
13889
13890 IF (l_quote_approver_delay_days IS NOT NULL) THEN
13891 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13892 l_rulv_rec.dnz_chr_id := p_chr_id;
13893 l_rulv_rec.rule_information2 := l_quote_approver_delay_days;
13894 l_rulv_rec.rule_information_category := 'AMLCAV';
13895 l_rulv_rec.std_template_yn := 'N';
13896 l_rulv_rec.warn_yn := 'N';
13897 END IF;
13898
13899 create_rule_group_and_rule(
13900 x_return_status => x_return_status,
13901 x_msg_count => x_msg_count,
13902 x_msg_data => x_msg_data,
13903 p_rgp_id => l_rgp_id,
13904 p_rgpv_rec => l_rgpv_rec,
13905 p_rulv_rec => l_rulv_rec,
13906 x_rgpv_rec => x_rgpv_rec,
13907 x_rulv_rec => x_rulv_rec
13908 );
13909
13910 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13911 raise header_rule_failed;
13912 END IF;
13913
13914 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13915 l_rgp_id := x_rgpv_rec.id;
13916 END IF;
13917
13918 debug_message('------>Rule: AMQR5A/AMLCAV processed');
13919
13920 -- Rule Group AMQR9F
13921
13922 l_rgpv_rec := NULL;
13923 l_rgp_id := NULL;
13924 l_rgpv_rec.rgd_code := 'AMQR9F';
13925 l_rgpv_rec.chr_id := p_chr_id;
13926 l_rgpv_rec.dnz_chr_id := p_chr_id;
13927 l_rgpv_rec.cle_id := NULL;
13928 l_rgpv_rec.rgp_type := 'KRG';
13929 l_rulv_rec := NULL;
13930
13931 l_quote_crtsy_cp_cntrc_role := p_header_rec.quote_crtsy_copy_contract_role;
13932
13933 IF (l_quote_crtsy_cp_cntrc_role IS NULL
13934 AND
13935 p_header_rec.template_number IS NOT NULL) THEN
13936 get_contract_rules(
13937 x_return_status => x_return_status,
13938 x_msg_count => x_msg_count,
13939 x_msg_data => x_msg_data,
13940 p_chr_id => p_template_id,
13941 p_cle_id => NULL,
13942 p_rgd_code => 'AMQR9F',
13943 p_rule_code => 'AMLCCO',
13944 x_rulv_tbl => l_rulv_tbl,
13945 x_rule_count => l_rule_count
13946 );
13947
13948 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13949 RAISE header_rule_failed;
13950 END IF;
13951
13952 IF (l_rule_count > 0) THEN
13953 l_quote_crtsy_cp_cntrc_role := l_rulv_tbl(1).rule_information1;
13954 END IF;
13955 END IF;
13956
13957 IF (l_quote_crtsy_cp_cntrc_role IS NOT NULL) THEN
13958 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13959 l_rulv_rec.dnz_chr_id := p_chr_id;
13960 l_rulv_rec.rule_information1 := l_quote_crtsy_cp_cntrc_role;
13961 l_rulv_rec.rule_information_category := 'AMLCCO';
13962 l_rulv_rec.std_template_yn := 'N';
13963 l_rulv_rec.warn_yn := 'N';
13964 END IF;
13965
13966 create_rule_group_and_rule(
13967 x_return_status => x_return_status,
13968 x_msg_count => x_msg_count,
13969 x_msg_data => x_msg_data,
13970 p_rgp_id => l_rgp_id,
13971 p_rgpv_rec => l_rgpv_rec,
13972 p_rulv_rec => l_rulv_rec,
13973 x_rgpv_rec => x_rgpv_rec,
13974 x_rulv_rec => x_rulv_rec
13975 );
13976
13977 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13978 raise header_rule_failed;
13979 END IF;
13980
13981 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13982 l_rgp_id := x_rgpv_rec.id;
13983 END IF;
13984
13985 debug_message('------>Rule: AMQR9F/AMLCCO processed');
13986
13987 -- Rule Group AMTEWC
13988
13989 l_rgpv_rec := NULL;
13990 l_rgp_id := NULL;
13991 l_rgpv_rec.rgd_code := 'AMTEWC';
13992 l_rgpv_rec.chr_id := p_chr_id;
13993 l_rgpv_rec.dnz_chr_id := p_chr_id;
13994 l_rgpv_rec.cle_id := NULL;
13995 l_rgpv_rec.rgp_type := 'KRG';
13996 l_rulv_rec := NULL;
13997
13998 l_ert_quote_calc_term_option := p_header_rec.ert_quote_calc_term_option;
13999 l_ert_quote_calc_term_formula := p_header_rec.ert_quote_calc_term_formula;
14000
14001 IF (l_ert_quote_calc_term_option IS NULL
14002 OR
14003 l_ert_quote_calc_term_formula IS NULL
14004 AND
14005 p_header_rec.template_number IS NOT NULL) THEN
14006 get_contract_rules(
14007 x_return_status => x_return_status,
14008 x_msg_count => x_msg_count,
14009 x_msg_data => x_msg_data,
14010 p_chr_id => p_template_id,
14011 p_cle_id => NULL,
14012 p_rgd_code => 'AMTEWC',
14013 p_rule_code => 'AMATQC',
14014 x_rulv_tbl => l_rulv_tbl,
14015 x_rule_count => l_rule_count
14016 );
14017
14018 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14019 RAISE header_rule_failed;
14020 END IF;
14021
14022 IF (l_rule_count > 0) THEN
14023 l_ert_quote_calc_term_option := NVL(l_ert_quote_calc_term_option,l_rulv_tbl(1).rule_information1);
14024 l_ert_quote_calc_term_formula := NVL(l_ert_quote_calc_term_formula,l_rulv_tbl(1).rule_information2);
14025 END IF;
14026 END IF;
14027
14028 IF (l_ert_quote_calc_term_option IS NOT NULL) THEN
14029 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14030 l_rulv_rec.dnz_chr_id := p_chr_id;
14031 l_rulv_rec.rule_information1 := l_ert_quote_calc_term_option;
14032 l_rulv_rec.rule_information_category := 'AMATQC';
14033 l_rulv_rec.std_template_yn := 'N';
14034 l_rulv_rec.warn_yn := 'N';
14035 END IF;
14036
14037 IF (l_ert_quote_calc_term_formula IS NOT NULL) THEN
14038 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14039 l_rulv_rec.dnz_chr_id := p_chr_id;
14040 l_rulv_rec.rule_information2 := l_ert_quote_calc_term_formula;
14041 l_rulv_rec.rule_information_category := 'AMATQC';
14042 l_rulv_rec.std_template_yn := 'N';
14043 l_rulv_rec.warn_yn := 'N';
14044 END IF;
14045
14046 create_rule_group_and_rule(
14047 x_return_status => x_return_status,
14048 x_msg_count => x_msg_count,
14049 x_msg_data => x_msg_data,
14050 p_rgp_id => l_rgp_id,
14051 p_rgpv_rec => l_rgpv_rec,
14052 p_rulv_rec => l_rulv_rec,
14053 x_rgpv_rec => x_rgpv_rec,
14054 x_rulv_rec => x_rulv_rec
14055 );
14056
14057 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14058 raise header_rule_failed;
14059 END IF;
14060
14061 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14062 l_rgp_id := x_rgpv_rec.id;
14063 END IF;
14064 debug_message('------>Rule: AMTEWC/AMATQC processed');
14065 l_rulv_rec := NULL;
14066
14067 l_ert_contract_oblig_opt := p_header_rec.ert_contract_oblig_opt;
14068 l_ert_contract_oblig_amount := TO_CHAR(p_header_rec.ert_contract_oblig_amount);
14069 l_ert_contract_oblig_formula := p_header_rec.ert_contract_oblig_formula;
14070 l_ert_contract_oblig_prorate := p_header_rec.ert_contract_oblig_prorate;
14071
14072 IF (l_ert_contract_oblig_opt IS NULL
14073 OR
14074 l_ert_contract_oblig_amount IS NULL
14075 OR
14076 l_ert_contract_oblig_formula IS NULL
14077 OR
14078 l_ert_contract_oblig_prorate IS NULL
14079 AND
14080 p_header_rec.template_number IS NOT NULL) THEN
14081 get_contract_rules(
14082 x_return_status => x_return_status,
14083 x_msg_count => x_msg_count,
14084 x_msg_data => x_msg_data,
14085 p_chr_id => p_template_id,
14086 p_cle_id => NULL,
14087 p_rgd_code => 'AMTEWC',
14088 p_rule_code => 'AMBCOC',
14089 x_rulv_tbl => l_rulv_tbl,
14090 x_rule_count => l_rule_count
14091 );
14092
14093 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14094 RAISE header_rule_failed;
14095 END IF;
14096
14097 IF (l_rule_count > 0) THEN
14098 l_ert_contract_oblig_opt := NVL(l_ert_contract_oblig_opt,l_rulv_tbl(1).rule_information1);
14099 l_ert_contract_oblig_amount := NVL(l_ert_contract_oblig_amount,l_rulv_tbl(1).rule_information2);
14100 l_ert_contract_oblig_formula := NVL(l_ert_contract_oblig_formula,l_rulv_tbl(1).rule_information3);
14101 l_ert_contract_oblig_prorate := NVL(l_ert_contract_oblig_prorate,l_rulv_tbl(1).rule_information4);
14102 END IF;
14103 END IF;
14104
14105 IF (l_ert_contract_oblig_opt IS NOT NULL) THEN
14106 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14107 l_rulv_rec.dnz_chr_id := p_chr_id;
14108 l_rulv_rec.rule_information1 := l_ert_contract_oblig_opt;
14109 l_rulv_rec.rule_information_category := 'AMBCOC';
14110 l_rulv_rec.std_template_yn := 'N';
14111 l_rulv_rec.warn_yn := 'N';
14112 END IF;
14113
14114 IF (l_ert_contract_oblig_amount IS NOT NULL) THEN
14115 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14116 l_rulv_rec.dnz_chr_id := p_chr_id;
14117 l_rulv_rec.rule_information2 := l_ert_contract_oblig_amount;
14118 l_rulv_rec.rule_information_category := 'AMBCOC';
14119 l_rulv_rec.std_template_yn := 'N';
14120 l_rulv_rec.warn_yn := 'N';
14121 END IF;
14122
14123 IF (l_ert_contract_oblig_formula IS NOT NULL) THEN
14124 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14125 l_rulv_rec.dnz_chr_id := p_chr_id;
14126 l_rulv_rec.rule_information3 := l_ert_contract_oblig_formula;
14127 l_rulv_rec.rule_information_category := 'AMBCOC';
14128 l_rulv_rec.std_template_yn := 'N';
14129 l_rulv_rec.warn_yn := 'N';
14130 END IF;
14131
14132 IF (l_ert_contract_oblig_prorate IS NOT NULL) THEN
14133 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14134 l_rulv_rec.dnz_chr_id := p_chr_id;
14135 l_rulv_rec.rule_information4 := l_ert_contract_oblig_prorate;
14136 l_rulv_rec.rule_information_category := 'AMBCOC';
14137 l_rulv_rec.std_template_yn := 'N';
14138 l_rulv_rec.warn_yn := 'N';
14139 END IF;
14140
14141 create_rule_group_and_rule(
14142 x_return_status => x_return_status,
14143 x_msg_count => x_msg_count,
14144 x_msg_data => x_msg_data,
14145 p_rgp_id => l_rgp_id,
14146 p_rgpv_rec => l_rgpv_rec,
14147 p_rulv_rec => l_rulv_rec,
14148 x_rgpv_rec => x_rgpv_rec,
14149 x_rulv_rec => x_rulv_rec
14150 );
14151
14152 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14153 raise header_rule_failed;
14154 END IF;
14155
14156 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14157 l_rgp_id := x_rgpv_rec.id;
14158 END IF;
14159 debug_message('------>Rule: AMTEWC/AMBCOC processed');
14160 l_rulv_rec := NULL;
14161
14162 l_ert_disc_rate_opt := p_header_rec.ert_disc_rate_opt;
14163 l_ert_disc_rate_amount := TO_CHAR(p_header_rec.ert_disc_rate_amount);
14164 l_ert_disc_rate_formula := p_header_rec.ert_disc_rate_formula;
14165 l_ert_disc_rate_prorate := p_header_rec.ert_disc_rate_prorate;
14166
14167 IF (l_ert_disc_rate_opt IS NULL
14168 OR
14169 l_ert_disc_rate_amount IS NULL
14170 OR
14171 l_ert_disc_rate_formula IS NULL
14172 OR
14173 l_ert_disc_rate_prorate IS NULL
14174 AND
14175 p_header_rec.template_number IS NOT NULL) THEN
14176 get_contract_rules(
14177 x_return_status => x_return_status,
14178 x_msg_count => x_msg_count,
14179 x_msg_data => x_msg_data,
14180 p_chr_id => p_template_id,
14181 p_cle_id => NULL,
14182 p_rgd_code => 'AMTEWC',
14183 p_rule_code => 'AMCQDR',
14184 x_rulv_tbl => l_rulv_tbl,
14185 x_rule_count => l_rule_count
14186 );
14187
14188 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14189 RAISE header_rule_failed;
14190 END IF;
14191
14192 IF (l_rule_count > 0) THEN
14193 l_ert_disc_rate_opt := NVL(l_ert_disc_rate_opt,l_rulv_tbl(1).rule_information1);
14194 l_ert_disc_rate_amount := NVL(l_ert_disc_rate_amount,l_rulv_tbl(1).rule_information2);
14195 l_ert_disc_rate_formula := NVL(l_ert_disc_rate_formula,l_rulv_tbl(1).rule_information3);
14196 l_ert_disc_rate_prorate := NVL(l_ert_disc_rate_prorate,l_rulv_tbl(1).rule_information4);
14197 END IF;
14198 END IF;
14199
14200 IF (l_ert_disc_rate_opt IS NOT NULL) THEN
14201 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14202 l_rulv_rec.dnz_chr_id := p_chr_id;
14203 l_rulv_rec.rule_information1 := l_ert_disc_rate_opt;
14204 l_rulv_rec.rule_information_category := 'AMCQDR';
14205 l_rulv_rec.std_template_yn := 'N';
14206 l_rulv_rec.warn_yn := 'N';
14207 END IF;
14208
14209 IF (l_ert_disc_rate_amount IS NOT NULL) THEN
14210 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14211 l_rulv_rec.dnz_chr_id := p_chr_id;
14212 l_rulv_rec.rule_information2 := l_ert_disc_rate_amount;
14213 l_rulv_rec.rule_information_category := 'AMCQDR';
14214 l_rulv_rec.std_template_yn := 'N';
14215 l_rulv_rec.warn_yn := 'N';
14216 END IF;
14217
14218 IF (l_ert_disc_rate_formula IS NOT NULL) THEN
14219 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14220 l_rulv_rec.dnz_chr_id := p_chr_id;
14221 l_rulv_rec.rule_information3 := l_ert_disc_rate_formula;
14222 l_rulv_rec.rule_information_category := 'AMCQDR';
14223 l_rulv_rec.std_template_yn := 'N';
14224 l_rulv_rec.warn_yn := 'N';
14225 END IF;
14226
14227 IF (l_ert_disc_rate_prorate IS NOT NULL) THEN
14228 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14229 l_rulv_rec.dnz_chr_id := p_chr_id;
14230 l_rulv_rec.rule_information4 := l_ert_disc_rate_prorate;
14231 l_rulv_rec.rule_information_category := 'AMCQDR';
14232 l_rulv_rec.std_template_yn := 'N';
14233 l_rulv_rec.warn_yn := 'N';
14234 END IF;
14235
14236 create_rule_group_and_rule(
14237 x_return_status => x_return_status,
14238 x_msg_count => x_msg_count,
14239 x_msg_data => x_msg_data,
14240 p_rgp_id => l_rgp_id,
14241 p_rgpv_rec => l_rgpv_rec,
14242 p_rulv_rec => l_rulv_rec,
14243 x_rgpv_rec => x_rgpv_rec,
14244 x_rulv_rec => x_rulv_rec
14245 );
14246
14247 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14248 raise header_rule_failed;
14249 END IF;
14250
14251 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14252 l_rgp_id := x_rgpv_rec.id;
14253 END IF;
14254 debug_message('------>Rule: AMTEWC/AMCQDR processed');
14255 l_rulv_rec := NULL;
14256
14257 l_ert_quote_fee_opt := p_header_rec.ert_quote_fee_opt;
14258 l_ert_quote_fee_amount := TO_CHAR(p_header_rec.ert_quote_fee_amount);
14259 l_ert_quote_fee_formula := p_header_rec.ert_quote_fee_formula;
14260 l_ert_quote_fee_prorate := p_header_rec.ert_quote_fee_prorate;
14261
14262 IF (l_ert_quote_fee_opt IS NULL
14263 OR
14264 l_ert_quote_fee_amount IS NULL
14265 OR
14266 l_ert_quote_fee_formula IS NULL
14267 OR
14268 l_ert_quote_fee_prorate IS NULL
14269 AND
14270 p_header_rec.template_number IS NOT NULL) THEN
14271 get_contract_rules(
14272 x_return_status => x_return_status,
14273 x_msg_count => x_msg_count,
14274 x_msg_data => x_msg_data,
14275 p_chr_id => p_template_id,
14276 p_cle_id => NULL,
14277 p_rgd_code => 'AMTEWC',
14278 p_rule_code => 'AMCQFE',
14279 x_rulv_tbl => l_rulv_tbl,
14280 x_rule_count => l_rule_count
14281 );
14282
14283 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14284 RAISE header_rule_failed;
14285 END IF;
14286
14287 IF (l_rule_count > 0) THEN
14288 l_ert_quote_fee_opt := NVL(l_ert_quote_fee_opt,l_rulv_tbl(1).rule_information1);
14289 l_ert_quote_fee_amount := NVL(l_ert_quote_fee_amount,l_rulv_tbl(1).rule_information2);
14290 l_ert_quote_fee_formula := NVL(l_ert_quote_fee_formula,l_rulv_tbl(1).rule_information3);
14291 l_ert_quote_fee_prorate := NVL(l_ert_quote_fee_prorate,l_rulv_tbl(1).rule_information4);
14292 END IF;
14293 END IF;
14294
14295 IF (l_ert_quote_fee_opt IS NOT NULL) THEN
14296 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14297 l_rulv_rec.dnz_chr_id := p_chr_id;
14298 l_rulv_rec.rule_information1 := l_ert_quote_fee_opt;
14299 l_rulv_rec.rule_information_category := 'AMCQFE';
14300 l_rulv_rec.std_template_yn := 'N';
14301 l_rulv_rec.warn_yn := 'N';
14302 END IF;
14303
14304 IF (l_ert_quote_fee_amount IS NOT NULL) THEN
14305 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14306 l_rulv_rec.dnz_chr_id := p_chr_id;
14307 l_rulv_rec.rule_information2 := l_ert_quote_fee_amount;
14308 l_rulv_rec.rule_information_category := 'AMCQFE';
14309 l_rulv_rec.std_template_yn := 'N';
14310 l_rulv_rec.warn_yn := 'N';
14311 END IF;
14312
14313 IF (l_ert_quote_fee_formula IS NOT NULL) THEN
14314 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14315 l_rulv_rec.dnz_chr_id := p_chr_id;
14316 l_rulv_rec.rule_information3 := l_ert_quote_fee_formula;
14317 l_rulv_rec.rule_information_category := 'AMCQFE';
14318 l_rulv_rec.std_template_yn := 'N';
14319 l_rulv_rec.warn_yn := 'N';
14320 END IF;
14321
14322 IF (l_ert_quote_fee_prorate IS NOT NULL) THEN
14323 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14324 l_rulv_rec.dnz_chr_id := p_chr_id;
14325 l_rulv_rec.rule_information4 := l_ert_quote_fee_prorate;
14326 l_rulv_rec.rule_information_category := 'AMCQFE';
14327 l_rulv_rec.std_template_yn := 'N';
14328 l_rulv_rec.warn_yn := 'N';
14329 END IF;
14330
14331 create_rule_group_and_rule(
14332 x_return_status => x_return_status,
14333 x_msg_count => x_msg_count,
14334 x_msg_data => x_msg_data,
14335 p_rgp_id => l_rgp_id,
14336 p_rgpv_rec => l_rgpv_rec,
14337 p_rulv_rec => l_rulv_rec,
14338 x_rgpv_rec => x_rgpv_rec,
14339 x_rulv_rec => x_rulv_rec
14340 );
14341
14342 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14343 raise header_rule_failed;
14344 END IF;
14345
14346 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14347 l_rgp_id := x_rgpv_rec.id;
14348 END IF;
14349 debug_message('------>Rule: AMTEWC/AMCQFE processed');
14350 l_rulv_rec := NULL;
14351
14352 l_ert_return_fee_option := p_header_rec.ert_return_fee_option;
14353 l_ert_return_fee_amount := TO_CHAR(p_header_rec.ert_return_fee_amount);
14354 l_ert_return_fee_formula := p_header_rec.ert_return_fee_formula;
14355 l_ert_return_fee_prorate := p_header_rec.ert_return_fee_prorate;
14356
14357 IF (l_ert_return_fee_option IS NULL
14358 OR
14359 l_ert_return_fee_amount IS NULL
14360 OR
14361 l_ert_return_fee_formula IS NULL
14362 OR
14363 l_ert_return_fee_prorate IS NULL
14364 AND
14365 p_header_rec.template_number IS NOT NULL) THEN
14366 get_contract_rules(
14367 x_return_status => x_return_status,
14368 x_msg_count => x_msg_count,
14369 x_msg_data => x_msg_data,
14370 p_chr_id => p_template_id,
14371 p_cle_id => NULL,
14372 p_rgd_code => 'AMTEWC',
14373 p_rule_code => 'AMCRFE',
14374 x_rulv_tbl => l_rulv_tbl,
14375 x_rule_count => l_rule_count
14376 );
14377
14378 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14379 RAISE header_rule_failed;
14380 END IF;
14381
14382 IF (l_rule_count > 0) THEN
14383 l_ert_return_fee_option := NVL(l_ert_return_fee_option,l_rulv_tbl(1).rule_information1);
14384 l_ert_return_fee_amount := NVL(l_ert_return_fee_amount,l_rulv_tbl(1).rule_information2);
14385 l_ert_return_fee_formula := NVL(l_ert_return_fee_formula,l_rulv_tbl(1).rule_information3);
14386 l_ert_return_fee_prorate := NVL(l_ert_return_fee_prorate,l_rulv_tbl(1).rule_information4);
14387 END IF;
14388 END IF;
14389
14390 IF (l_ert_return_fee_option IS NOT NULL) THEN
14391 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14392 l_rulv_rec.dnz_chr_id := p_chr_id;
14393 l_rulv_rec.rule_informaTion1 := l_ert_return_fee_option;
14394 l_rulv_rec.rule_information_category := 'AMCRFE';
14395 l_rulv_rec.std_template_yn := 'N';
14396 l_rulv_rec.warn_yn := 'N';
14397 END IF;
14398
14399 IF (l_ert_return_fee_amount IS NOT NULL) THEN
14400 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14401 l_rulv_rec.dnz_chr_id := p_chr_id;
14402 l_rulv_rec.rule_information2 := l_ert_return_fee_amount;
14403 l_rulv_rec.rule_information_category := 'AMCRFE';
14404 l_rulv_rec.std_template_yn := 'N';
14405 l_rulv_rec.warn_yn := 'N';
14406 END IF;
14407
14408 IF (l_ert_return_fee_formula IS NOT NULL) THEN
14409 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14410 l_rulv_rec.dnz_chr_id := p_chr_id;
14411 l_rulv_rec.rule_information3 := l_ert_return_fee_formula;
14412 l_rulv_rec.rule_information_category := 'AMCRFE';
14413 l_rulv_rec.std_template_yn := 'N';
14414 l_rulv_rec.warn_yn := 'N';
14415 END IF;
14416
14417 IF (l_ert_return_fee_prorate IS NOT NULL) THEN
14418 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14419 l_rulv_rec.dnz_chr_id := p_chr_id;
14420 l_rulv_rec.rule_information4 := l_ert_return_fee_prorate;
14421 l_rulv_rec.rule_information_category := 'AMCRFE';
14422 l_rulv_rec.std_template_yn := 'N';
14423 l_rulv_rec.warn_yn := 'N';
14424 END IF;
14425
14426 create_rule_group_and_rule(
14427 x_return_status => x_return_status,
14428 x_msg_count => x_msg_count,
14429 x_msg_data => x_msg_data,
14430 p_rgp_id => l_rgp_id,
14431 p_rgpv_rec => l_rgpv_rec,
14432 p_rulv_rec => l_rulv_rec,
14433 x_rgpv_rec => x_rgpv_rec,
14434 x_rulv_rec => x_rulv_rec
14435 );
14436
14437 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14438 raise header_rule_failed;
14439 END IF;
14440
14441 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14442 l_rgp_id := x_rgpv_rec.id;
14443 END IF;
14444 debug_message('------>Rule: AMTEWC/AMCRFE processed');
14445 l_rulv_rec := NULL;
14446
14447 l_ert_roll_inctv_option := p_header_rec.ert_roll_inctv_option;
14448 l_ert_roll_inctv_amount := TO_CHAR(p_header_rec.ert_roll_inctv_amount);
14449 l_ert_roll_inctv_formula := p_header_rec.ert_roll_inctv_formula;
14450 l_ert_roll_inctv_prorate := p_header_rec.ert_roll_inctv_prorate;
14451
14452 IF (l_ert_roll_inctv_option IS NULL
14453 OR
14454 l_ert_roll_inctv_amount IS NULL
14455 OR
14456 l_ert_roll_inctv_formula IS NULL
14457 OR
14458 l_ert_roll_inctv_prorate IS NULL
14459 AND
14460 p_header_rec.template_number IS NOT NULL) THEN
14461 get_contract_rules(
14462 x_return_status => x_return_status,
14463 x_msg_count => x_msg_count,
14464 x_msg_data => x_msg_data,
14465 p_chr_id => p_template_id,
14466 p_cle_id => NULL,
14467 p_rgd_code => 'AMTEWC',
14468 p_rule_code => 'AMCRIN',
14469 x_rulv_tbl => l_rulv_tbl,
14470 x_rule_count => l_rule_count
14471 );
14472
14473 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14474 RAISE header_rule_failed;
14475 END IF;
14476
14477 IF (l_rule_count > 0) THEN
14478 l_ert_roll_inctv_option := NVL(l_ert_roll_inctv_option,l_rulv_tbl(1).rule_information1);
14479 l_ert_roll_inctv_amount := NVL(l_ert_roll_inctv_amount,l_rulv_tbl(1).rule_information2);
14480 l_ert_roll_inctv_formula := NVL(l_ert_roll_inctv_formula,l_rulv_tbl(1).rule_information3);
14481 l_ert_roll_inctv_prorate := NVL(l_ert_roll_inctv_prorate,l_rulv_tbl(1).rule_information4);
14482 END IF;
14483 END IF;
14484
14485 IF (l_ert_roll_inctv_option IS NOT NULL) THEN
14486 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14487 l_rulv_rec.dnz_chr_id := p_chr_id;
14488 l_rulv_rec.rule_informaTion1 := l_ert_roll_inctv_option;
14489 l_rulv_rec.rule_information_category := 'AMCRIN';
14490 l_rulv_rec.std_template_yn := 'N';
14491 l_rulv_rec.warn_yn := 'N';
14492 END IF;
14493
14494 IF (l_ert_roll_inctv_amount IS NOT NULL) THEN
14495 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14496 l_rulv_rec.dnz_chr_id := p_chr_id;
14497 l_rulv_rec.rule_information2 := l_ert_roll_inctv_amount;
14498 l_rulv_rec.rule_information_category := 'AMCRIN';
14499 l_rulv_rec.std_template_yn := 'N';
14500 l_rulv_rec.warn_yn := 'N';
14501 END IF;
14502
14503 IF (l_ert_roll_inctv_formula IS NOT NULL) THEN
14504 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14505 l_rulv_rec.dnz_chr_id := p_chr_id;
14506 l_rulv_rec.rule_information3 := l_ert_roll_inctv_formula;
14507 l_rulv_rec.rule_information_category := 'AMCRIN';
14508 l_rulv_rec.std_template_yn := 'N';
14509 l_rulv_rec.warn_yn := 'N';
14510 END IF;
14511
14512 IF (l_ert_roll_inctv_prorate IS NOT NULL) THEN
14513 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14514 l_rulv_rec.dnz_chr_id := p_chr_id;
14515 l_rulv_rec.rule_information4 := l_ert_roll_inctv_prorate;
14516 l_rulv_rec.rule_information_category := 'AMCRIN';
14517 l_rulv_rec.std_template_yn := 'N';
14518 l_rulv_rec.warn_yn := 'N';
14519 END IF;
14520
14521 create_rule_group_and_rule(
14522 x_return_status => x_return_status,
14523 x_msg_count => x_msg_count,
14524 x_msg_data => x_msg_data,
14525 p_rgp_id => l_rgp_id,
14526 p_rgpv_rec => l_rgpv_rec,
14527 p_rulv_rec => l_rulv_rec,
14528 x_rgpv_rec => x_rgpv_rec,
14529 x_rulv_rec => x_rulv_rec
14530 );
14531
14532 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14533 raise header_rule_failed;
14534 END IF;
14535
14536 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14537 l_rgp_id := x_rgpv_rec.id;
14538 END IF;
14539 debug_message('------>Rule: AMTEWC/AMCRIN processed');
14540 l_rulv_rec := NULL;
14541
14542 l_ert_secu_dep_dispo_option := p_header_rec.ert_secu_dep_dispo_option;
14543 l_ert_secu_dep_dispo_amount := TO_CHAR(p_header_rec.ert_secu_dep_dispo_amount);
14544 l_ert_secu_dep_dispo_formula := p_header_rec.ert_secu_dep_dispo_formula;
14545 l_ert_secu_dep_dispo_prorate := p_header_rec.ert_secu_dep_dispo_prorate;
14546
14547 IF (l_ert_secu_dep_dispo_option IS NULL
14548 OR
14549 l_ert_secu_dep_dispo_amount IS NULL
14550 OR
14551 l_ert_secu_dep_dispo_formula IS NULL
14552 OR
14553 l_ert_secu_dep_dispo_prorate IS NULL
14554 AND
14555 p_header_rec.template_number IS NOT NULL) THEN
14556 get_contract_rules(
14557 x_return_status => x_return_status,
14558 x_msg_count => x_msg_count,
14559 x_msg_data => x_msg_data,
14560 p_chr_id => p_template_id,
14561 p_cle_id => NULL,
14562 p_rgd_code => 'AMTEWC',
14563 p_rule_code => 'AMCSDD',
14564 x_rulv_tbl => l_rulv_tbl,
14565 x_rule_count => l_rule_count
14566 );
14567
14568 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14569 RAISE header_rule_failed;
14570 END IF;
14571
14572 IF (l_rule_count > 0) THEN
14573 l_ert_secu_dep_dispo_option := NVL(l_ert_secu_dep_dispo_option,l_rulv_tbl(1).rule_information1);
14574 l_ert_secu_dep_dispo_amount := NVL(l_ert_secu_dep_dispo_amount,l_rulv_tbl(1).rule_information2);
14575 l_ert_secu_dep_dispo_formula := NVL(l_ert_secu_dep_dispo_formula,l_rulv_tbl(1).rule_information3);
14576 l_ert_secu_dep_dispo_prorate := NVL(l_ert_secu_dep_dispo_prorate,l_rulv_tbl(1).rule_information4);
14577 END IF;
14578 END IF;
14579
14580 IF (l_ert_secu_dep_dispo_option IS NOT NULL) THEN
14581 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14582 l_rulv_rec.dnz_chr_id := p_chr_id;
14583 l_rulv_rec.rule_informaTion1 := l_ert_secu_dep_dispo_option;
14584 l_rulv_rec.rule_information_category := 'AMCSDD';
14585 l_rulv_rec.std_template_yn := 'N';
14586 l_rulv_rec.warn_yn := 'N';
14587 END IF;
14588
14589 IF (l_ert_secu_dep_dispo_amount IS NOT NULL) THEN
14590 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14591 l_rulv_rec.dnz_chr_id := p_chr_id;
14592 l_rulv_rec.rule_information2 := l_ert_secu_dep_dispo_amount;
14593 l_rulv_rec.rule_information_category := 'AMCSDD';
14594 l_rulv_rec.std_template_yn := 'N';
14595 l_rulv_rec.warn_yn := 'N';
14596 END IF;
14597
14598 IF (l_ert_secu_dep_dispo_formula IS NOT NULL) THEN
14599 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14600 l_rulv_rec.dnz_chr_id := p_chr_id;
14601 l_rulv_rec.rule_information3 := l_ert_secu_dep_dispo_formula;
14602 l_rulv_rec.rule_information_category := 'AMCSDD';
14603 l_rulv_rec.std_template_yn := 'N';
14604 l_rulv_rec.warn_yn := 'N';
14605 END IF;
14606
14607 IF (l_ert_secu_dep_dispo_prorate IS NOT NULL) THEN
14608 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14609 l_rulv_rec.dnz_chr_id := p_chr_id;
14610 l_rulv_rec.rule_information4 := l_ert_secu_dep_dispo_prorate;
14611 l_rulv_rec.rule_information_category := 'AMCSDD';
14612 l_rulv_rec.std_template_yn := 'N';
14613 l_rulv_rec.warn_yn := 'N';
14614 END IF;
14615
14616 create_rule_group_and_rule(
14617 x_return_status => x_return_status,
14618 x_msg_count => x_msg_count,
14619 x_msg_data => x_msg_data,
14620 p_rgp_id => l_rgp_id,
14621 p_rgpv_rec => l_rgpv_rec,
14622 p_rulv_rec => l_rulv_rec,
14623 x_rgpv_rec => x_rgpv_rec,
14624 x_rulv_rec => x_rulv_rec
14625 );
14626
14627 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14628 raise header_rule_failed;
14629 END IF;
14630
14631 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14632 l_rgp_id := x_rgpv_rec.id;
14633 END IF;
14634 debug_message('------>Rule: AMTEWC/AMCSDD processed');
14635 l_rulv_rec := NULL;
14636
14637 l_ert_term_penalty_option := p_header_rec.ert_term_penalty_option;
14638 l_ert_term_penalty_amount := TO_CHAR(p_header_rec.ert_term_penalty_amount);
14639 l_ert_term_penalty_formula := p_header_rec.ert_term_penalty_formula;
14640 l_ert_term_penalty_prorate := p_header_rec.ert_term_penalty_prorate;
14641 l_ert_term_penalty_cap_option := p_header_rec.ert_term_penalty_cap_option;
14642 l_ert_term_penalty_cap_amount := TO_CHAR(p_header_rec.ert_term_penalty_cap_amount);
14643 l_ert_term_penalty_cap_formula := p_header_rec.ert_term_penalty_cap_formula;
14644
14645 IF (l_ert_term_penalty_option IS NULL
14646 OR
14647 l_ert_term_penalty_amount IS NULL
14648 OR
14649 l_ert_term_penalty_formula IS NULL
14650 OR
14651 l_ert_term_penalty_prorate IS NULL
14652 OR
14653 l_ert_term_penalty_cap_option IS NULL
14654 OR
14655 l_ert_term_penalty_cap_amount IS NULL
14656 OR
14657 l_ert_term_penalty_cap_formula IS NULL
14658 AND
14659 p_header_rec.template_number IS NOT NULL) THEN
14660 get_contract_rules(
14661 x_return_status => x_return_status,
14662 x_msg_count => x_msg_count,
14663 x_msg_data => x_msg_data,
14664 p_chr_id => p_template_id,
14665 p_cle_id => NULL,
14666 p_rgd_code => 'AMTEWC',
14667 p_rule_code => 'AMCTPE',
14668 x_rulv_tbl => l_rulv_tbl,
14669 x_rule_count => l_rule_count
14670 );
14671
14672 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14673 RAISE header_rule_failed;
14674 END IF;
14675
14676 IF (l_rule_count > 0) THEN
14677 l_ert_term_penalty_option := NVL(l_ert_term_penalty_option,l_rulv_tbl(1).rule_information1);
14678 l_ert_term_penalty_amount := NVL(l_ert_term_penalty_amount,l_rulv_tbl(1).rule_information2);
14679 l_ert_term_penalty_formula := NVL(l_ert_term_penalty_formula,l_rulv_tbl(1).rule_information3);
14680 l_ert_term_penalty_prorate := NVL(l_ert_term_penalty_prorate,l_rulv_tbl(1).rule_information4);
14681 l_ert_term_penalty_cap_option := NVL(l_ert_term_penalty_cap_option,l_rulv_tbl(1).rule_information5);
14682 l_ert_term_penalty_cap_amount := NVL(l_ert_term_penalty_cap_amount,l_rulv_tbl(1).rule_information6);
14683 l_ert_term_penalty_cap_formula := NVL(l_ert_term_penalty_cap_formula,l_rulv_tbl(1).rule_information7);
14684 END IF;
14685 END IF;
14686
14687 IF (l_ert_term_penalty_option IS NOT NULL) THEN
14688 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14689 l_rulv_rec.dnz_chr_id := p_chr_id;
14690 l_rulv_rec.rule_informaTion1 := l_ert_term_penalty_option;
14691 l_rulv_rec.rule_information_category := 'AMCTPE';
14692 l_rulv_rec.std_template_yn := 'N';
14693 l_rulv_rec.warn_yn := 'N';
14694 END IF;
14695
14696 IF (l_ert_term_penalty_amount IS NOT NULL) THEN
14697 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14698 l_rulv_rec.dnz_chr_id := p_chr_id;
14699 l_rulv_rec.rule_information2 := l_ert_term_penalty_amount;
14700 l_rulv_rec.rule_information_category := 'AMCTPE';
14701 l_rulv_rec.std_template_yn := 'N';
14702 l_rulv_rec.warn_yn := 'N';
14703 END IF;
14704
14705 IF (l_ert_term_penalty_formula IS NOT NULL) THEN
14706 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14707 l_rulv_rec.dnz_chr_id := p_chr_id;
14708 l_rulv_rec.rule_information3 := l_ert_term_penalty_formula;
14709 l_rulv_rec.rule_information_category := 'AMCTPE';
14710 l_rulv_rec.std_template_yn := 'N';
14711 l_rulv_rec.warn_yn := 'N';
14712 END IF;
14713
14714 IF (l_ert_term_penalty_prorate IS NOT NULL) THEN
14715 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14716 l_rulv_rec.dnz_chr_id := p_chr_id;
14717 l_rulv_rec.rule_information4 := l_ert_term_penalty_prorate;
14718 l_rulv_rec.rule_information_category := 'AMCTPE';
14719 l_rulv_rec.std_template_yn := 'N';
14720 l_rulv_rec.warn_yn := 'N';
14721 END IF;
14722
14723 IF (l_ert_term_penalty_cap_option IS NOT NULL) THEN
14724 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14725 l_rulv_rec.dnz_chr_id := p_chr_id;
14726 l_rulv_rec.rule_informaTion5 := l_ert_term_penalty_cap_option;
14727 l_rulv_rec.rule_information_category := 'AMCTPE';
14728 l_rulv_rec.std_template_yn := 'N';
14729 l_rulv_rec.warn_yn := 'N';
14730 END IF;
14731
14732 IF (l_ert_term_penalty_cap_amount IS NOT NULL) THEN
14733 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14734 l_rulv_rec.dnz_chr_id := p_chr_id;
14735 l_rulv_rec.rule_information6 := l_ert_term_penalty_cap_amount;
14736 l_rulv_rec.rule_information_category := 'AMCTPE';
14737 l_rulv_rec.std_template_yn := 'N';
14738 l_rulv_rec.warn_yn := 'N';
14739 END IF;
14740
14741 IF (l_ert_term_penalty_cap_formula IS NOT NULL) THEN
14742 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14743 l_rulv_rec.dnz_chr_id := p_chr_id;
14744 l_rulv_rec.rule_information7 := l_ert_term_penalty_cap_formula;
14745 l_rulv_rec.rule_information_category := 'AMCTPE';
14746 l_rulv_rec.std_template_yn := 'N';
14747 l_rulv_rec.warn_yn := 'N';
14748 END IF;
14749
14750 create_rule_group_and_rule(
14751 x_return_status => x_return_status,
14752 x_msg_count => x_msg_count,
14753 x_msg_data => x_msg_data,
14754 p_rgp_id => l_rgp_id,
14755 p_rgpv_rec => l_rgpv_rec,
14756 p_rulv_rec => l_rulv_rec,
14757 x_rgpv_rec => x_rgpv_rec,
14758 x_rulv_rec => x_rulv_rec
14759 );
14760
14761 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14762 raise header_rule_failed;
14763 END IF;
14764
14765 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14766 l_rgp_id := x_rgpv_rec.id;
14767 END IF;
14768 debug_message('------>Rule: AMTEWC/AMCTPE processed');
14769 l_rulv_rec := NULL;
14770
14771 l_ert_est_prop_tax_option := p_header_rec.ert_est_prop_tax_option;
14772 l_ert_est_prop_tax_amount := TO_CHAR(p_header_rec.ert_est_prop_tax_amount);
14773 l_ert_est_prop_tax_formula := p_header_rec.ert_est_prop_tax_formula;
14774 l_ert_est_prop_tax_prorate := p_header_rec.ert_est_prop_tax_prorate;
14775
14776 IF (l_ert_est_prop_tax_option IS NULL
14777 OR
14778 l_ert_est_prop_tax_amount IS NULL
14779 OR
14780 l_ert_est_prop_tax_formula IS NULL
14781 OR
14782 l_ert_est_prop_tax_prorate IS NULL
14783 AND
14784 p_header_rec.template_number IS NOT NULL) THEN
14785 get_contract_rules(
14786 x_return_status => x_return_status,
14787 x_msg_count => x_msg_count,
14788 x_msg_data => x_msg_data,
14789 p_chr_id => p_template_id,
14790 p_cle_id => NULL,
14791 p_rgd_code => 'AMTEWC',
14792 p_rule_code => 'AMPRTX',
14793 x_rulv_tbl => l_rulv_tbl,
14794 x_rule_count => l_rule_count
14795 );
14796
14797 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14798 RAISE header_rule_failed;
14799 END IF;
14800
14801 IF (l_rule_count > 0) THEN
14802 l_ert_est_prop_tax_option := NVL(l_ert_est_prop_tax_option,l_rulv_tbl(1).rule_information1);
14803 l_ert_est_prop_tax_amount := NVL(l_ert_est_prop_tax_amount,l_rulv_tbl(1).rule_information2);
14804 l_ert_est_prop_tax_formula := NVL(l_ert_est_prop_tax_formula,l_rulv_tbl(1).rule_information3);
14805 l_ert_est_prop_tax_prorate := NVL(l_ert_est_prop_tax_prorate,l_rulv_tbl(1).rule_information4);
14806 END IF;
14807 END IF;
14808
14809 IF (l_ert_est_prop_tax_option IS NOT NULL) THEN
14810 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14811 l_rulv_rec.dnz_chr_id := p_chr_id;
14812 l_rulv_rec.rule_informaTion1 := l_ert_est_prop_tax_option;
14813 l_rulv_rec.rule_information_category := 'AMPRTX';
14814 l_rulv_rec.std_template_yn := 'N';
14815 l_rulv_rec.warn_yn := 'N';
14816 END IF;
14817
14818 IF (l_ert_est_prop_tax_amount IS NOT NULL) THEN
14819 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14820 l_rulv_rec.dnz_chr_id := p_chr_id;
14821 l_rulv_rec.rule_information2 := l_ert_est_prop_tax_amount;
14822 l_rulv_rec.rule_information_category := 'AMPRTX';
14823 l_rulv_rec.std_template_yn := 'N';
14824 l_rulv_rec.warn_yn := 'N';
14825 END IF;
14826
14827 IF (l_ert_est_prop_tax_formula IS NOT NULL) THEN
14828 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14829 l_rulv_rec.dnz_chr_id := p_chr_id;
14830 l_rulv_rec.rule_information3 := l_ert_est_prop_tax_formula;
14831 l_rulv_rec.rule_information_category := 'AMPRTX';
14832 l_rulv_rec.std_template_yn := 'N';
14833 l_rulv_rec.warn_yn := 'N';
14834 END IF;
14835
14836 IF (l_ert_est_prop_tax_prorate IS NOT NULL) THEN
14837 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14838 l_rulv_rec.dnz_chr_id := p_chr_id;
14839 l_rulv_rec.rule_information4 := l_ert_est_prop_tax_prorate;
14840 l_rulv_rec.rule_information_category := 'AMPRTX';
14841 l_rulv_rec.std_template_yn := 'N';
14842 l_rulv_rec.warn_yn := 'N';
14843 END IF;
14844
14845 create_rule_group_and_rule(
14846 x_return_status => x_return_status,
14847 x_msg_count => x_msg_count,
14848 x_msg_data => x_msg_data,
14849 p_rgp_id => l_rgp_id,
14850 p_rgpv_rec => l_rgpv_rec,
14851 p_rulv_rec => l_rulv_rec,
14852 x_rgpv_rec => x_rgpv_rec,
14853 x_rulv_rec => x_rulv_rec
14854 );
14855
14856 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14857 raise header_rule_failed;
14858 END IF;
14859
14860 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14861 l_rgp_id := x_rgpv_rec.id;
14862 END IF;
14863 debug_message('------>Rule: AMTEWC/AMPRTX processed');
14864 l_rulv_rec := NULL;
14865
14866 l_ert_contr_fees_option := p_header_rec.ert_contr_fees_option;
14867
14868 IF (l_ert_contr_fees_option IS NULL
14869 AND
14870 p_header_rec.template_number IS NOT NULL) THEN
14871 get_contract_rules(
14872 x_return_status => x_return_status,
14873 x_msg_count => x_msg_count,
14874 x_msg_data => x_msg_data,
14875 p_chr_id => p_template_id,
14876 p_cle_id => NULL,
14877 p_rgd_code => 'AMTEWC',
14878 p_rule_code => 'AMYFEE',
14879 x_rulv_tbl => l_rulv_tbl,
14880 x_rule_count => l_rule_count
14881 );
14882
14883 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14884 RAISE header_rule_failed;
14885 END IF;
14886
14887 IF (l_rule_count > 0) THEN
14888 l_ert_contr_fees_option := NVL(l_ert_contr_fees_option,l_rulv_tbl(1).rule_information1);
14889 END IF;
14890 END IF;
14891
14892 IF (l_ert_contr_fees_option IS NOT NULL) THEN
14893 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14894 l_rulv_rec.dnz_chr_id := p_chr_id;
14895 l_rulv_rec.rule_information1 := l_ert_contr_fees_option;
14896 l_rulv_rec.rule_information_category := 'AMYFEE';
14897 l_rulv_rec.std_template_yn := 'N';
14898 l_rulv_rec.warn_yn := 'N';
14899 END IF;
14900
14901 create_rule_group_and_rule(
14902 x_return_status => x_return_status,
14903 x_msg_count => x_msg_count,
14904 x_msg_data => x_msg_data,
14905 p_rgp_id => l_rgp_id,
14906 p_rgpv_rec => l_rgpv_rec,
14907 p_rulv_rec => l_rulv_rec,
14908 x_rgpv_rec => x_rgpv_rec,
14909 x_rulv_rec => x_rulv_rec
14910 );
14911
14912 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14913 raise header_rule_failed;
14914 END IF;
14915
14916 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14917 l_rgp_id := x_rgpv_rec.id;
14918 END IF;
14919 debug_message('------>Rule: AMTEWC/AMYFEE processed');
14920 l_rulv_rec := NULL;
14921
14922 l_ert_outstnd_bal_option := p_header_rec.ert_outstnd_bal_option;
14923
14924 IF (l_ert_outstnd_bal_option IS NULL
14925 AND
14926 p_header_rec.template_number IS NOT NULL) THEN
14927 get_contract_rules(
14928 x_return_status => x_return_status,
14929 x_msg_count => x_msg_count,
14930 x_msg_data => x_msg_data,
14931 p_chr_id => p_template_id,
14932 p_cle_id => NULL,
14933 p_rgd_code => 'AMTEWC',
14934 p_rule_code => 'AMYOUB',
14935 x_rulv_tbl => l_rulv_tbl,
14936 x_rule_count => l_rule_count
14937 );
14938
14939 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14940 RAISE header_rule_failed;
14941 END IF;
14942
14943 IF (l_rule_count > 0) THEN
14944 l_ert_outstnd_bal_option := l_rulv_tbl(1).rule_information1;
14945 END IF;
14946 END IF;
14947
14948 IF (l_ert_outstnd_bal_option IS NOT NULL) THEN
14949 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14950 l_rulv_rec.dnz_chr_id := p_chr_id;
14951 l_rulv_rec.rule_information1 := l_ert_outstnd_bal_option;
14952 l_rulv_rec.rule_information_category := 'AMYOUB';
14953 l_rulv_rec.std_template_yn := 'N';
14954 l_rulv_rec.warn_yn := 'N';
14955 END IF;
14956
14957 create_rule_group_and_rule(
14958 x_return_status => x_return_status,
14959 x_msg_count => x_msg_count,
14960 x_msg_data => x_msg_data,
14961 p_rgp_id => l_rgp_id,
14962 p_rgpv_rec => l_rgpv_rec,
14963 p_rulv_rec => l_rulv_rec,
14964 x_rgpv_rec => x_rgpv_rec,
14965 x_rulv_rec => x_rulv_rec
14966 );
14967
14968 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14969 raise header_rule_failed;
14970 END IF;
14971
14972 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14973 l_rgp_id := x_rgpv_rec.id;
14974 END IF;
14975 debug_message('------>Rule: AMTEWC/AMYOUB processed');
14976 l_rulv_rec := NULL;
14977
14978 l_ert_serv_mant_option := p_header_rec.ert_serv_mant_option;
14979 l_ert_serv_mant_frml := p_header_rec.ert_serv_mant_frml;
14980
14981 IF ((l_ert_serv_mant_option IS NULL
14982 OR
14983 l_ert_serv_mant_frml IS NULL
14984 )
14985 AND
14986 p_header_rec.template_number IS NOT NULL) THEN
14987 get_contract_rules(
14988 x_return_status => x_return_status,
14989 x_msg_count => x_msg_count,
14990 x_msg_data => x_msg_data,
14991 p_chr_id => p_template_id,
14992 p_cle_id => NULL,
14993 p_rgd_code => 'AMTEWC',
14994 p_rule_code => 'AMYSAM',
14995 x_rulv_tbl => l_rulv_tbl,
14996 x_rule_count => l_rule_count
14997 );
14998
14999 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15000 RAISE header_rule_failed;
15001 END IF;
15002
15003 IF (l_rule_count > 0) THEN
15004 l_ert_serv_mant_option := NVL(l_ert_serv_mant_option,l_rulv_tbl(1).rule_information1);
15005 l_ert_serv_mant_frml := NVL(l_ert_serv_mant_frml,l_rulv_tbl(1).rule_information2);
15006 END IF;
15007 END IF;
15008
15009 IF (l_ert_serv_mant_option IS NOT NULL) THEN
15010 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15011 l_rulv_rec.dnz_chr_id := p_chr_id;
15012 l_rulv_rec.rule_information1 := l_ert_serv_mant_option;
15013 l_rulv_rec.rule_information_category := 'AMYSAM';
15014 l_rulv_rec.std_template_yn := 'N';
15015 l_rulv_rec.warn_yn := 'N';
15016 END IF;
15017
15018 IF (l_ert_serv_mant_frml IS NOT NULL) THEN
15019 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15020 l_rulv_rec.dnz_chr_id := p_chr_id;
15021 l_rulv_rec.rule_information2 := l_ert_serv_mant_frml;
15022 l_rulv_rec.rule_information_category := 'AMYSAM';
15023 l_rulv_rec.std_template_yn := 'N';
15024 l_rulv_rec.warn_yn := 'N';
15025 END IF;
15026
15027 create_rule_group_and_rule(
15028 x_return_status => x_return_status,
15029 x_msg_count => x_msg_count,
15030 x_msg_data => x_msg_data,
15031 p_rgp_id => l_rgp_id,
15032 p_rgpv_rec => l_rgpv_rec,
15033 p_rulv_rec => l_rulv_rec,
15034 x_rgpv_rec => x_rgpv_rec,
15035 x_rulv_rec => x_rulv_rec
15036 );
15037
15038 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15039 raise header_rule_failed;
15040 END IF;
15041
15042 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15043 l_rgp_id := x_rgpv_rec.id;
15044 END IF;
15045
15046 debug_message('------>Rule: AMTEWC/AMYSAM processed');
15047
15048 /**** AKP Copied from here for AMTEWC 4067094 ***/
15049 l_rulv_rec := NULL;
15050
15051 l_ert_absorbed_fee_frml := p_header_rec.ert_absorbed_fee_frml;
15052
15053 IF (l_ert_absorbed_fee_frml IS NULL
15054 AND
15055 p_header_rec.template_number IS NOT NULL) THEN
15056 get_contract_rules(
15057 x_return_status => x_return_status,
15058 x_msg_count => x_msg_count,
15059 x_msg_data => x_msg_data,
15060 p_chr_id => p_template_id,
15061 p_cle_id => NULL,
15062 p_rgd_code => 'AMTEWC',
15063 p_rule_code => 'AMAFEE',
15064 x_rulv_tbl => l_rulv_tbl,
15065 x_rule_count => l_rule_count
15066 );
15067
15068 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15069 RAISE header_rule_failed;
15070 END IF;
15071
15072 IF (l_rule_count > 0) THEN
15073 l_ert_absorbed_fee_frml := l_rulv_tbl(1).rule_information3;
15074 END IF;
15075 END IF;
15076
15077 IF (l_ert_absorbed_fee_frml IS NOT NULL) THEN
15078 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15079 l_rulv_rec.dnz_chr_id := p_chr_id;
15080 l_rulv_rec.rule_information3 := l_ert_absorbed_fee_frml;
15081 l_rulv_rec.rule_information_category := 'AMAFEE';
15082 l_rulv_rec.std_template_yn := 'N';
15083 l_rulv_rec.warn_yn := 'N';
15084 END IF;
15085
15086 create_rule_group_and_rule(
15087 x_return_status => x_return_status,
15088 x_msg_count => x_msg_count,
15089 x_msg_data => x_msg_data,
15090 p_rgp_id => l_rgp_id,
15091 p_rgpv_rec => l_rgpv_rec,
15092 p_rulv_rec => l_rulv_rec,
15093 x_rgpv_rec => x_rgpv_rec,
15094 x_rulv_rec => x_rulv_rec
15095 );
15096
15097 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15098 raise header_rule_failed;
15099 END IF;
15100
15101 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15102 l_rgp_id := x_rgpv_rec.id;
15103 END IF;
15104
15105 debug_message('------>Rule: AMTEWC/AMAFEE processed');
15106
15107 l_rulv_rec := NULL;
15108
15109 l_ert_expense_fee_frml := p_header_rec.ert_expense_fee_frml;
15110
15111 IF (l_ert_expense_fee_frml IS NULL
15112 AND
15113 p_header_rec.template_number IS NOT NULL) THEN
15114 get_contract_rules(
15115 x_return_status => x_return_status,
15116 x_msg_count => x_msg_count,
15117 x_msg_data => x_msg_data,
15118 p_chr_id => p_template_id,
15119 p_cle_id => NULL,
15120 p_rgd_code => 'AMTEWC',
15121 p_rule_code => 'AMEFEE',
15122 x_rulv_tbl => l_rulv_tbl,
15123 x_rule_count => l_rule_count
15124 );
15125
15126 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15127 RAISE header_rule_failed;
15128 END IF;
15129
15130 IF (l_rule_count > 0) THEN
15131 l_ert_expense_fee_frml := l_rulv_tbl(1).rule_information3;
15132 END IF;
15133 END IF;
15134
15135 IF (l_ert_expense_fee_frml IS NOT NULL) THEN
15136 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15137 l_rulv_rec.dnz_chr_id := p_chr_id;
15138 l_rulv_rec.rule_information3 := l_ert_expense_fee_frml;
15139 l_rulv_rec.rule_information_category := 'AMEFEE';
15140 l_rulv_rec.std_template_yn := 'N';
15141 l_rulv_rec.warn_yn := 'N';
15142 END IF;
15143
15144 create_rule_group_and_rule(
15145 x_return_status => x_return_status,
15146 x_msg_count => x_msg_count,
15147 x_msg_data => x_msg_data,
15148 p_rgp_id => l_rgp_id,
15149 p_rgpv_rec => l_rgpv_rec,
15150 p_rulv_rec => l_rulv_rec,
15151 x_rgpv_rec => x_rgpv_rec,
15152 x_rulv_rec => x_rulv_rec
15153 );
15154
15155 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15156 raise header_rule_failed;
15157 END IF;
15158
15159 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15160 l_rgp_id := x_rgpv_rec.id;
15161 END IF;
15162
15163 debug_message('------>Rule: AMTEWC/AMEFEE processed');
15164
15165 l_rulv_rec := NULL;
15166
15167 l_ert_financed_fee_frml := p_header_rec.ert_financed_fee_frml;
15168
15169 IF (l_ert_financed_fee_frml IS NULL
15170 AND
15171 p_header_rec.template_number IS NOT NULL) THEN
15172 get_contract_rules(
15173 x_return_status => x_return_status,
15174 x_msg_count => x_msg_count,
15175 x_msg_data => x_msg_data,
15176 p_chr_id => p_template_id,
15177 p_cle_id => NULL,
15178 p_rgd_code => 'AMTEWC',
15179 p_rule_code => 'AMFFEE',
15180 x_rulv_tbl => l_rulv_tbl,
15181 x_rule_count => l_rule_count
15182 );
15183
15184 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15185 RAISE header_rule_failed;
15186 END IF;
15187
15188 IF (l_rule_count > 0) THEN
15189 l_ert_financed_fee_frml := l_rulv_tbl(1).rule_information3;
15190 END IF;
15191 END IF;
15192
15193 IF (l_ert_financed_fee_frml IS NOT NULL) THEN
15194 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15195 l_rulv_rec.dnz_chr_id := p_chr_id;
15196 l_rulv_rec.rule_information3 := l_ert_financed_fee_frml;
15197 l_rulv_rec.rule_information_category := 'AMFFEE';
15198 l_rulv_rec.std_template_yn := 'N';
15199 l_rulv_rec.warn_yn := 'N';
15200 END IF;
15201
15202 create_rule_group_and_rule(
15203 x_return_status => x_return_status,
15204 x_msg_count => x_msg_count,
15205 x_msg_data => x_msg_data,
15206 p_rgp_id => l_rgp_id,
15207 p_rgpv_rec => l_rgpv_rec,
15208 p_rulv_rec => l_rulv_rec,
15209 x_rgpv_rec => x_rgpv_rec,
15210 x_rulv_rec => x_rulv_rec
15211 );
15212
15213 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15214 raise header_rule_failed;
15215 END IF;
15216
15217 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15218 l_rgp_id := x_rgpv_rec.id;
15219 END IF;
15220
15221 debug_message('------>Rule: AMTEWC/AMFFEE processed');
15222
15223 l_rulv_rec := NULL;
15224
15225 l_ert_general_fee_frml := p_header_rec.ert_general_fee_frml;
15226
15227 IF (l_ert_general_fee_frml IS NULL
15228 AND
15229 p_header_rec.template_number IS NOT NULL) THEN
15230 get_contract_rules(
15231 x_return_status => x_return_status,
15232 x_msg_count => x_msg_count,
15233 x_msg_data => x_msg_data,
15234 p_chr_id => p_template_id,
15235 p_cle_id => NULL,
15236 p_rgd_code => 'AMTEWC',
15237 p_rule_code => 'AMGFEE',
15238 x_rulv_tbl => l_rulv_tbl,
15239 x_rule_count => l_rule_count
15240 );
15241
15242 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15243 RAISE header_rule_failed;
15244 END IF;
15245
15246 IF (l_rule_count > 0) THEN
15247 l_ert_general_fee_frml := l_rulv_tbl(1).rule_information3;
15248 END IF;
15249 END IF;
15250
15251 IF (l_ert_general_fee_frml IS NOT NULL) THEN
15252 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15253 l_rulv_rec.dnz_chr_id := p_chr_id;
15254 l_rulv_rec.rule_information3 := l_ert_general_fee_frml;
15255 l_rulv_rec.rule_information_category := 'AMGFEE';
15256 l_rulv_rec.std_template_yn := 'N';
15257 l_rulv_rec.warn_yn := 'N';
15258 END IF;
15259
15260 create_rule_group_and_rule(
15261 x_return_status => x_return_status,
15262 x_msg_count => x_msg_count,
15263 x_msg_data => x_msg_data,
15264 p_rgp_id => l_rgp_id,
15265 p_rgpv_rec => l_rgpv_rec,
15266 p_rulv_rec => l_rulv_rec,
15267 x_rgpv_rec => x_rgpv_rec,
15268 x_rulv_rec => x_rulv_rec
15269 );
15270
15271 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15272 raise header_rule_failed;
15273 END IF;
15274
15275 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15276 l_rgp_id := x_rgpv_rec.id;
15277 END IF;
15278
15279 debug_message('------>Rule: AMTEWC/AMGFEE processed');
15280
15281 l_rulv_rec := NULL;
15282
15283 l_ert_income_fee_frml := p_header_rec.ert_income_fee_frml;
15284
15285 IF (l_ert_income_fee_frml IS NULL
15286 AND
15287 p_header_rec.template_number IS NOT NULL) THEN
15288 get_contract_rules(
15289 x_return_status => x_return_status,
15290 x_msg_count => x_msg_count,
15291 x_msg_data => x_msg_data,
15292 p_chr_id => p_template_id,
15293 p_cle_id => NULL,
15294 p_rgd_code => 'AMTEWC',
15295 p_rule_code => 'AMIFEE',
15296 x_rulv_tbl => l_rulv_tbl,
15297 x_rule_count => l_rule_count
15298 );
15299
15300 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15301 RAISE header_rule_failed;
15302 END IF;
15303
15304 IF (l_rule_count > 0) THEN
15305 l_ert_income_fee_frml := l_rulv_tbl(1).rule_information3;
15306 END IF;
15307 END IF;
15308
15309 IF (l_ert_income_fee_frml IS NOT NULL) THEN
15310 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15311 l_rulv_rec.dnz_chr_id := p_chr_id;
15312 l_rulv_rec.rule_information3 := l_ert_income_fee_frml;
15313 l_rulv_rec.rule_information_category := 'AMIFEE';
15314 l_rulv_rec.std_template_yn := 'N';
15315 l_rulv_rec.warn_yn := 'N';
15316 END IF;
15317
15318 create_rule_group_and_rule(
15319 x_return_status => x_return_status,
15320 x_msg_count => x_msg_count,
15321 x_msg_data => x_msg_data,
15322 p_rgp_id => l_rgp_id,
15323 p_rgpv_rec => l_rgpv_rec,
15324 p_rulv_rec => l_rulv_rec,
15325 x_rgpv_rec => x_rgpv_rec,
15326 x_rulv_rec => x_rulv_rec
15327 );
15328
15329 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15330 raise header_rule_failed;
15331 END IF;
15332
15333 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15334 l_rgp_id := x_rgpv_rec.id;
15335 END IF;
15336
15337 debug_message('------>Rule: AMTEWC/AMIFEE processed');
15338
15339 l_rulv_rec := NULL;
15340
15341 l_ert_misc_fee_frml := p_header_rec.ert_misc_fee_frml;
15342
15343 IF (l_ert_misc_fee_frml IS NULL
15344 AND
15345 p_header_rec.template_number IS NOT NULL) THEN
15346 get_contract_rules(
15347 x_return_status => x_return_status,
15348 x_msg_count => x_msg_count,
15349 x_msg_data => x_msg_data,
15350 p_chr_id => p_template_id,
15351 p_cle_id => NULL,
15352 p_rgd_code => 'AMTEWC',
15353 p_rule_code => 'AMMFEE',
15354 x_rulv_tbl => l_rulv_tbl,
15355 x_rule_count => l_rule_count
15356 );
15357
15358 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15359 RAISE header_rule_failed;
15360 END IF;
15361
15362 IF (l_rule_count > 0) THEN
15363 l_ert_misc_fee_frml := l_rulv_tbl(1).rule_information3;
15364 END IF;
15365 END IF;
15366
15367 IF (l_ert_misc_fee_frml IS NOT NULL) THEN
15368 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15369 l_rulv_rec.dnz_chr_id := p_chr_id;
15370 l_rulv_rec.rule_information3 := l_ert_misc_fee_frml;
15371 l_rulv_rec.rule_information_category := 'AMMFEE';
15372 l_rulv_rec.std_template_yn := 'N';
15373 l_rulv_rec.warn_yn := 'N';
15374 END IF;
15375
15376 create_rule_group_and_rule(
15377 x_return_status => x_return_status,
15378 x_msg_count => x_msg_count,
15379 x_msg_data => x_msg_data,
15380 p_rgp_id => l_rgp_id,
15381 p_rgpv_rec => l_rgpv_rec,
15382 p_rulv_rec => l_rulv_rec,
15383 x_rgpv_rec => x_rgpv_rec,
15384 x_rulv_rec => x_rulv_rec
15385 );
15386
15387 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15388 raise header_rule_failed;
15389 END IF;
15390
15391 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15392 l_rgp_id := x_rgpv_rec.id;
15393 END IF;
15394
15395 debug_message('------>Rule: AMTEWC/AMMFEE processed');
15396
15397 l_rulv_rec := NULL;
15398
15399 l_ert_passthru_fee_frml := p_header_rec.ert_passthru_fee_frml;
15400
15401 IF (l_ert_passthru_fee_frml IS NULL
15402 AND
15403 p_header_rec.template_number IS NOT NULL) THEN
15404 get_contract_rules(
15405 x_return_status => x_return_status,
15406 x_msg_count => x_msg_count,
15407 x_msg_data => x_msg_data,
15408 p_chr_id => p_template_id,
15409 p_cle_id => NULL,
15410 p_rgd_code => 'AMTEWC',
15411 p_rule_code => 'AMPFEE',
15412 x_rulv_tbl => l_rulv_tbl,
15413 x_rule_count => l_rule_count
15414 );
15415
15416 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15417 RAISE header_rule_failed;
15418 END IF;
15419
15420 IF (l_rule_count > 0) THEN
15421 l_ert_passthru_fee_frml := l_rulv_tbl(1).rule_information3;
15422 END IF;
15423 END IF;
15424
15425 IF (l_ert_passthru_fee_frml IS NOT NULL) THEN
15426 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15427 l_rulv_rec.dnz_chr_id := p_chr_id;
15428 l_rulv_rec.rule_information3 := l_ert_passthru_fee_frml;
15429 l_rulv_rec.rule_information_category := 'AMPFEE';
15430 l_rulv_rec.std_template_yn := 'N';
15431 l_rulv_rec.warn_yn := 'N';
15432 END IF;
15433
15434 create_rule_group_and_rule(
15435 x_return_status => x_return_status,
15436 x_msg_count => x_msg_count,
15437 x_msg_data => x_msg_data,
15438 p_rgp_id => l_rgp_id,
15439 p_rgpv_rec => l_rgpv_rec,
15440 p_rulv_rec => l_rulv_rec,
15441 x_rgpv_rec => x_rgpv_rec,
15442 x_rulv_rec => x_rulv_rec
15443 );
15444
15445 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15446 raise header_rule_failed;
15447 END IF;
15448
15449 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15450 l_rgp_id := x_rgpv_rec.id;
15451 END IF;
15452
15453 debug_message('------>Rule: AMTEWC/AMPFEE processed');
15454
15455 l_rulv_rec := NULL;
15456
15457 l_ert_rollover_fee_frml := p_header_rec.ert_rollover_fee_frml;
15458
15459 IF (l_ert_rollover_fee_frml IS NULL
15460 AND
15461 p_header_rec.template_number IS NOT NULL) THEN
15462 get_contract_rules(
15463 x_return_status => x_return_status,
15464 x_msg_count => x_msg_count,
15465 x_msg_data => x_msg_data,
15466 p_chr_id => p_template_id,
15467 p_cle_id => NULL,
15468 p_rgd_code => 'AMTEWC',
15469 p_rule_code => 'AMRFEE',
15470 x_rulv_tbl => l_rulv_tbl,
15471 x_rule_count => l_rule_count
15472 );
15473
15474 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15475 RAISE header_rule_failed;
15476 END IF;
15477
15478 IF (l_rule_count > 0) THEN
15479 l_ert_rollover_fee_frml := l_rulv_tbl(1).rule_information3;
15480 END IF;
15481 END IF;
15482
15483 IF (l_ert_rollover_fee_frml IS NOT NULL) THEN
15484 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15485 l_rulv_rec.dnz_chr_id := p_chr_id;
15486 l_rulv_rec.rule_information3 := l_ert_rollover_fee_frml;
15487 l_rulv_rec.rule_information_category := 'AMRFEE';
15488 l_rulv_rec.std_template_yn := 'N';
15489 l_rulv_rec.warn_yn := 'N';
15490 END IF;
15491
15492 create_rule_group_and_rule(
15493 x_return_status => x_return_status,
15494 x_msg_count => x_msg_count,
15495 x_msg_data => x_msg_data,
15496 p_rgp_id => l_rgp_id,
15497 p_rgpv_rec => l_rgpv_rec,
15498 p_rulv_rec => l_rulv_rec,
15499 x_rgpv_rec => x_rgpv_rec,
15500 x_rulv_rec => x_rulv_rec
15501 );
15502
15503 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15504 raise header_rule_failed;
15505 END IF;
15506
15507 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15508 l_rgp_id := x_rgpv_rec.id;
15509 END IF;
15510
15511 debug_message('------>Rule: AMTEWC/AMRFEE processed');
15512 /**** AKP Copied to here for AMTEWC 4067094 ***/
15513
15514 -- Rule Group AMTFWC
15515
15516 l_rgpv_rec := NULL;
15517 l_rgp_id := NULL;
15518 l_rgpv_rec.rgd_code := 'AMTFWC';
15519 l_rgpv_rec.chr_id := p_chr_id;
15520 l_rgpv_rec.dnz_chr_id := p_chr_id;
15521 l_rgpv_rec.cle_id := NULL;
15522 l_rgpv_rec.rgp_type := 'KRG';
15523
15524 l_rulv_rec := NULL;
15525
15526 l_eot_quote_calc_term_option := p_header_rec.eot_quote_calc_term_option;
15527 l_eot_quote_calc_term_formula := p_header_rec.eot_quote_calc_term_formula;
15528
15529 IF (l_eot_quote_calc_term_option IS NULL
15530 OR
15531 l_eot_quote_calc_term_formula IS NULL
15532 AND
15533 p_header_rec.template_number IS NOT NULL) THEN
15534 get_contract_rules(
15535 x_return_status => x_return_status,
15536 x_msg_count => x_msg_count,
15537 x_msg_data => x_msg_data,
15538 p_chr_id => p_template_id,
15539 p_cle_id => NULL,
15540 p_rgd_code => 'AMTFWC',
15541 p_rule_code => 'AMATQC',
15542 x_rulv_tbl => l_rulv_tbl,
15543 x_rule_count => l_rule_count
15544 );
15545
15546 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15547 RAISE header_rule_failed;
15548 END IF;
15549
15550 IF (l_rule_count > 0) THEN
15551 l_eot_quote_calc_term_option := NVL(l_eot_quote_calc_term_option,l_rulv_tbl(1).rule_information1);
15552 l_eot_quote_calc_term_formula := NVL(l_eot_quote_calc_term_formula,l_rulv_tbl(1).rule_information2);
15553 END IF;
15554 END IF;
15555
15556 IF (l_eot_quote_calc_term_option IS NOT NULL) THEN
15557 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15558 l_rulv_rec.dnz_chr_id := p_chr_id;
15559 l_rulv_rec.rule_information1 := l_eot_quote_calc_term_option;
15560 l_rulv_rec.rule_information_category := 'AMATQC';
15561 l_rulv_rec.std_template_yn := 'N';
15562 l_rulv_rec.warn_yn := 'N';
15563 END IF;
15564
15565 IF (l_eot_quote_calc_term_formula IS NOT NULL) THEN
15566 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15567 l_rulv_rec.dnz_chr_id := p_chr_id;
15568 l_rulv_rec.rule_information2 := l_eot_quote_calc_term_formula;
15569 l_rulv_rec.rule_information_category := 'AMATQC';
15570 l_rulv_rec.std_template_yn := 'N';
15571 l_rulv_rec.warn_yn := 'N';
15572 END IF;
15573
15574 create_rule_group_and_rule(
15575 x_return_status => x_return_status,
15576 x_msg_count => x_msg_count,
15577 x_msg_data => x_msg_data,
15578 p_rgp_id => l_rgp_id,
15579 p_rgpv_rec => l_rgpv_rec,
15580 p_rulv_rec => l_rulv_rec,
15581 x_rgpv_rec => x_rgpv_rec,
15582 x_rulv_rec => x_rulv_rec
15583 );
15584
15585 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15586 raise header_rule_failed;
15587 END IF;
15588
15589 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15590 l_rgp_id := x_rgpv_rec.id;
15591 END IF;
15592 debug_message('------>Rule: AMTFWC/AMATQC processed');
15593 l_rulv_rec := NULL;
15594
15595 l_eot_contract_oblig_opt := p_header_rec.eot_contract_oblig_opt;
15596 l_eot_contract_oblig_amount := TO_CHAR(p_header_rec.eot_contract_oblig_amount);
15597 l_eot_contract_oblig_formula := p_header_rec.eot_contract_oblig_formula;
15598 l_eot_contract_oblig_prorate := p_header_rec.eot_contract_oblig_prorate;
15599
15600 IF (l_eot_contract_oblig_opt IS NULL
15601 OR
15602 l_eot_contract_oblig_amount IS NULL
15603 OR
15604 l_eot_contract_oblig_formula IS NULL
15605 OR
15606 l_eot_contract_oblig_prorate IS NULL
15607 AND
15608 p_header_rec.template_number IS NOT NULL) THEN
15609 get_contract_rules(
15610 x_return_status => x_return_status,
15611 x_msg_count => x_msg_count,
15612 x_msg_data => x_msg_data,
15613 p_chr_id => p_template_id,
15614 p_cle_id => NULL,
15615 p_rgd_code => 'AMTFWC',
15616 p_rule_code => 'AMBCOC',
15617 x_rulv_tbl => l_rulv_tbl,
15618 x_rule_count => l_rule_count
15619 );
15620
15621 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15622 RAISE header_rule_failed;
15623 END IF;
15624
15625 IF (l_rule_count > 0) THEN
15626 l_eot_contract_oblig_opt := NVL(l_eot_contract_oblig_opt,l_rulv_tbl(1).rule_information1);
15627 l_eot_contract_oblig_amount := NVL(l_eot_contract_oblig_amount,l_rulv_tbl(1).rule_information2);
15628 l_eot_contract_oblig_formula := NVL(l_eot_contract_oblig_formula,l_rulv_tbl(1).rule_information3);
15629 l_eot_contract_oblig_prorate := NVL(l_eot_contract_oblig_prorate,l_rulv_tbl(1).rule_information4);
15630 END IF;
15631 END IF;
15632
15633 IF (l_eot_contract_oblig_opt IS NOT NULL) THEN
15634 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15635 l_rulv_rec.dnz_chr_id := p_chr_id;
15636 l_rulv_rec.rule_information1 := l_eot_contract_oblig_opt;
15637 l_rulv_rec.rule_information_category := 'AMBCOC';
15638 l_rulv_rec.std_template_yn := 'N';
15639 l_rulv_rec.warn_yn := 'N';
15640 END IF;
15641
15642 IF (l_eot_contract_oblig_amount IS NOT NULL) THEN
15643 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15644 l_rulv_rec.dnz_chr_id := p_chr_id;
15645 l_rulv_rec.rule_information2 := l_eot_contract_oblig_amount;
15646 l_rulv_rec.rule_information_category := 'AMBCOC';
15647 l_rulv_rec.std_template_yn := 'N';
15648 l_rulv_rec.warn_yn := 'N';
15649 END IF;
15650
15651 IF (l_eot_contract_oblig_formula IS NOT NULL) THEN
15652 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15653 l_rulv_rec.dnz_chr_id := p_chr_id;
15654 l_rulv_rec.rule_information3 := l_eot_contract_oblig_formula;
15655 l_rulv_rec.rule_information_category := 'AMBCOC';
15656 l_rulv_rec.std_template_yn := 'N';
15657 l_rulv_rec.warn_yn := 'N';
15658 END IF;
15659
15660 IF (l_eot_contract_oblig_prorate IS NOT NULL) THEN
15661 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15662 l_rulv_rec.dnz_chr_id := p_chr_id;
15663 l_rulv_rec.rule_information4 := l_eot_contract_oblig_prorate;
15664 l_rulv_rec.rule_information_category := 'AMBCOC';
15665 l_rulv_rec.std_template_yn := 'N';
15666 l_rulv_rec.warn_yn := 'N';
15667 END IF;
15668
15669 create_rule_group_and_rule(
15670 x_return_status => x_return_status,
15671 x_msg_count => x_msg_count,
15672 x_msg_data => x_msg_data,
15673 p_rgp_id => l_rgp_id,
15674 p_rgpv_rec => l_rgpv_rec,
15675 p_rulv_rec => l_rulv_rec,
15676 x_rgpv_rec => x_rgpv_rec,
15677 x_rulv_rec => x_rulv_rec
15678 );
15679
15680 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15681 raise header_rule_failed;
15682 END IF;
15683
15684 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15685 l_rgp_id := x_rgpv_rec.id;
15686 END IF;
15687 debug_message('------>Rule: AMTFWC/AMBCOC processed');
15688 l_rulv_rec := NULL;
15689
15690 l_eot_disc_rate_opt := p_header_rec.eot_disc_rate_opt;
15691 l_eot_disc_rate_amount := TO_CHAR(p_header_rec.eot_disc_rate_amount);
15692 l_eot_disc_rate_formula := p_header_rec.eot_disc_rate_formula;
15693 l_eot_disc_rate_prorate := p_header_rec.eot_disc_rate_prorate;
15694
15695 IF (l_eot_disc_rate_opt IS NULL
15696 OR
15697 l_eot_disc_rate_amount IS NULL
15698 OR
15699 l_eot_disc_rate_formula IS NULL
15700 OR
15701 l_eot_disc_rate_prorate IS NULL
15702 AND
15703 p_header_rec.template_number IS NOT NULL) THEN
15704 get_contract_rules(
15705 x_return_status => x_return_status,
15706 x_msg_count => x_msg_count,
15707 x_msg_data => x_msg_data,
15708 p_chr_id => p_template_id,
15709 p_cle_id => NULL,
15710 p_rgd_code => 'AMTFWC',
15711 p_rule_code => 'AMCQDR',
15712 x_rulv_tbl => l_rulv_tbl,
15713 x_rule_count => l_rule_count
15714 );
15715
15716 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15717 RAISE header_rule_failed;
15718 END IF;
15719
15720 IF (l_rule_count > 0) THEN
15721 l_eot_disc_rate_opt := NVL(l_eot_disc_rate_opt,l_rulv_tbl(1).rule_information1);
15722 l_eot_disc_rate_amount := NVL(l_eot_disc_rate_amount,l_rulv_tbl(1).rule_information2);
15723 l_eot_disc_rate_formula := NVL(l_eot_disc_rate_formula,l_rulv_tbl(1).rule_information3);
15724 l_eot_disc_rate_prorate := NVL(l_eot_disc_rate_prorate,l_rulv_tbl(1).rule_information4);
15725 END IF;
15726 END IF;
15727
15728 IF (l_eot_disc_rate_opt IS NOT NULL) THEN
15729 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15730 l_rulv_rec.dnz_chr_id := p_chr_id;
15731 l_rulv_rec.rule_information1 := l_eot_disc_rate_opt;
15732 l_rulv_rec.rule_information_category := 'AMCQDR';
15733 l_rulv_rec.std_template_yn := 'N';
15734 l_rulv_rec.warn_yn := 'N';
15735 END IF;
15736
15737 IF (l_eot_disc_rate_amount IS NOT NULL) THEN
15738 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15739 l_rulv_rec.dnz_chr_id := p_chr_id;
15740 l_rulv_rec.rule_information2 := l_eot_disc_rate_amount;
15741 l_rulv_rec.rule_information_category := 'AMCQDR';
15742 l_rulv_rec.std_template_yn := 'N';
15743 l_rulv_rec.warn_yn := 'N';
15744 END IF;
15745
15746 IF (l_eot_disc_rate_formula IS NOT NULL) THEN
15747 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15748 l_rulv_rec.dnz_chr_id := p_chr_id;
15749 l_rulv_rec.rule_information3 := l_eot_disc_rate_formula;
15750 l_rulv_rec.rule_information_category := 'AMCQDR';
15751 l_rulv_rec.std_template_yn := 'N';
15752 l_rulv_rec.warn_yn := 'N';
15753 END IF;
15754
15755 IF (l_eot_disc_rate_prorate IS NOT NULL) THEN
15756 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15757 l_rulv_rec.dnz_chr_id := p_chr_id;
15758 l_rulv_rec.rule_information4 := l_eot_disc_rate_prorate;
15759 l_rulv_rec.rule_information_category := 'AMCQDR';
15760 l_rulv_rec.std_template_yn := 'N';
15761 l_rulv_rec.warn_yn := 'N';
15762 END IF;
15763
15764 create_rule_group_and_rule(
15765 x_return_status => x_return_status,
15766 x_msg_count => x_msg_count,
15767 x_msg_data => x_msg_data,
15768 p_rgp_id => l_rgp_id,
15769 p_rgpv_rec => l_rgpv_rec,
15770 p_rulv_rec => l_rulv_rec,
15771 x_rgpv_rec => x_rgpv_rec,
15772 x_rulv_rec => x_rulv_rec
15773 );
15774
15775 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15776 raise header_rule_failed;
15777 END IF;
15778
15779 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15780 l_rgp_id := x_rgpv_rec.id;
15781 END IF;
15782 debug_message('------>Rule: AMTFWC/AMCQDR processed');
15783 l_rulv_rec := NULL;
15784
15785 l_eot_quote_fee_opt := p_header_rec.eot_quote_fee_opt;
15786 l_eot_quote_fee_amount := TO_CHAR(p_header_rec.eot_quote_fee_amount);
15787 l_eot_quote_fee_formula := p_header_rec.eot_quote_fee_formula;
15788 l_eot_quote_fee_prorate := p_header_rec.eot_quote_fee_prorate;
15789
15790 IF (l_eot_quote_fee_opt IS NULL
15791 OR
15792 l_eot_quote_fee_amount IS NULL
15793 OR
15794 l_eot_quote_fee_formula IS NULL
15795 OR
15796 l_eot_quote_fee_prorate IS NULL
15797 AND
15798 p_header_rec.template_number IS NOT NULL) THEN
15799 get_contract_rules(
15800 x_return_status => x_return_status,
15801 x_msg_count => x_msg_count,
15802 x_msg_data => x_msg_data,
15803 p_chr_id => p_template_id,
15804 p_cle_id => NULL,
15805 p_rgd_code => 'AMTFWC',
15806 p_rule_code => 'AMCQFE',
15807 x_rulv_tbl => l_rulv_tbl,
15808 x_rule_count => l_rule_count
15809 );
15810
15811 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15812 RAISE header_rule_failed;
15813 END IF;
15814
15815 IF (l_rule_count > 0) THEN
15816 l_eot_quote_fee_opt := NVL(l_eot_quote_fee_opt,l_rulv_tbl(1).rule_information1);
15817 l_eot_quote_fee_amount := NVL(l_eot_quote_fee_amount,l_rulv_tbl(1).rule_information2);
15818 l_eot_quote_fee_formula := NVL(l_eot_quote_fee_formula,l_rulv_tbl(1).rule_information3);
15819 l_eot_quote_fee_prorate := NVL(l_eot_quote_fee_prorate,l_rulv_tbl(1).rule_information4);
15820 END IF;
15821 END IF;
15822
15823 IF (l_eot_quote_fee_opt IS NOT NULL) THEN
15824 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15825 l_rulv_rec.dnz_chr_id := p_chr_id;
15826 l_rulv_rec.rule_information1 := l_eot_quote_fee_opt;
15827 l_rulv_rec.rule_information_category := 'AMCQFE';
15828 l_rulv_rec.std_template_yn := 'N';
15829 l_rulv_rec.warn_yn := 'N';
15830 END IF;
15831
15832 IF (l_eot_quote_fee_amount IS NOT NULL) THEN
15833 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15834 l_rulv_rec.dnz_chr_id := p_chr_id;
15835 l_rulv_rec.rule_information2 := l_eot_quote_fee_amount;
15836 l_rulv_rec.rule_information_category := 'AMCQFE';
15837 l_rulv_rec.std_template_yn := 'N';
15838 l_rulv_rec.warn_yn := 'N';
15839 END IF;
15840
15841 IF (l_eot_quote_fee_formula IS NOT NULL) THEN
15842 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15843 l_rulv_rec.dnz_chr_id := p_chr_id;
15844 l_rulv_rec.rule_information3 := l_eot_quote_fee_formula;
15845 l_rulv_rec.rule_information_category := 'AMCQFE';
15846 l_rulv_rec.std_template_yn := 'N';
15847 l_rulv_rec.warn_yn := 'N';
15848 END IF;
15849
15850 IF (l_eot_quote_fee_prorate IS NOT NULL) THEN
15851 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15852 l_rulv_rec.dnz_chr_id := p_chr_id;
15853 l_rulv_rec.rule_information4 := l_eot_quote_fee_prorate;
15854 l_rulv_rec.rule_information_category := 'AMCQFE';
15855 l_rulv_rec.std_template_yn := 'N';
15856 l_rulv_rec.warn_yn := 'N';
15857 END IF;
15858
15859 create_rule_group_and_rule(
15860 x_return_status => x_return_status,
15861 x_msg_count => x_msg_count,
15862 x_msg_data => x_msg_data,
15863 p_rgp_id => l_rgp_id,
15864 p_rgpv_rec => l_rgpv_rec,
15865 p_rulv_rec => l_rulv_rec,
15866 x_rgpv_rec => x_rgpv_rec,
15867 x_rulv_rec => x_rulv_rec
15868 );
15869
15870 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15871 raise header_rule_failed;
15872 END IF;
15873
15874 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15875 l_rgp_id := x_rgpv_rec.id;
15876 END IF;
15877 debug_message('------>Rule: AMTFWC/AMCQFE processed');
15878 l_rulv_rec := NULL;
15879
15880 l_eot_return_fee_option := p_header_rec.eot_return_fee_option;
15881 l_eot_return_fee_amount := TO_CHAR(p_header_rec.eot_return_fee_amount);
15882 l_eot_return_fee_formula := p_header_rec.eot_return_fee_formula;
15883 l_eot_return_fee_prorate := p_header_rec.eot_return_fee_prorate;
15884
15885 IF (l_eot_return_fee_option IS NULL
15886 OR
15887 l_eot_return_fee_amount IS NULL
15888 OR
15889 l_eot_return_fee_formula IS NULL
15890 OR
15891 l_eot_return_fee_prorate IS NULL
15892 AND
15893 p_header_rec.template_number IS NOT NULL) THEN
15894 get_contract_rules(
15895 x_return_status => x_return_status,
15896 x_msg_count => x_msg_count,
15897 x_msg_data => x_msg_data,
15898 p_chr_id => p_template_id,
15899 p_cle_id => NULL,
15900 p_rgd_code => 'AMTFWC',
15901 p_rule_code => 'AMCRFE',
15902 x_rulv_tbl => l_rulv_tbl,
15903 x_rule_count => l_rule_count
15904 );
15905
15906 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15907 RAISE header_rule_failed;
15908 END IF;
15909
15910 IF (l_rule_count > 0) THEN
15911 l_eot_return_fee_option := NVL(l_eot_return_fee_option,l_rulv_tbl(1).rule_information1);
15912 l_eot_return_fee_amount := NVL(l_eot_return_fee_amount,l_rulv_tbl(1).rule_information2);
15913 l_eot_return_fee_formula := NVL(l_eot_return_fee_formula,l_rulv_tbl(1).rule_information3);
15914 l_eot_return_fee_prorate := NVL(l_eot_return_fee_prorate,l_rulv_tbl(1).rule_information4);
15915 END IF;
15916 END IF;
15917
15918 IF (l_eot_return_fee_option IS NOT NULL) THEN
15919 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15920 l_rulv_rec.dnz_chr_id := p_chr_id;
15921 l_rulv_rec.rule_informaTion1 := l_eot_return_fee_option;
15922 l_rulv_rec.rule_information_category := 'AMCRFE';
15923 l_rulv_rec.std_template_yn := 'N';
15924 l_rulv_rec.warn_yn := 'N';
15925 END IF;
15926
15927 IF (l_eot_return_fee_amount IS NOT NULL) THEN
15928 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15929 l_rulv_rec.dnz_chr_id := p_chr_id;
15930 l_rulv_rec.rule_information2 := l_eot_return_fee_amount;
15931 l_rulv_rec.rule_information_category := 'AMCRFE';
15932 l_rulv_rec.std_template_yn := 'N';
15933 l_rulv_rec.warn_yn := 'N';
15934 END IF;
15935
15936 IF (l_eot_return_fee_formula IS NOT NULL) THEN
15937 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15938 l_rulv_rec.dnz_chr_id := p_chr_id;
15939 l_rulv_rec.rule_information3 := l_eot_return_fee_formula;
15940 l_rulv_rec.rule_information_category := 'AMCRFE';
15941 l_rulv_rec.std_template_yn := 'N';
15942 l_rulv_rec.warn_yn := 'N';
15943 END IF;
15944
15945 IF (l_eot_return_fee_prorate IS NOT NULL) THEN
15946 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15947 l_rulv_rec.dnz_chr_id := p_chr_id;
15948 l_rulv_rec.rule_information4 := l_eot_return_fee_prorate;
15949 l_rulv_rec.rule_information_category := 'AMCRFE';
15950 l_rulv_rec.std_template_yn := 'N';
15951 l_rulv_rec.warn_yn := 'N';
15952 END IF;
15953
15954 create_rule_group_and_rule(
15955 x_return_status => x_return_status,
15956 x_msg_count => x_msg_count,
15957 x_msg_data => x_msg_data,
15958 p_rgp_id => l_rgp_id,
15959 p_rgpv_rec => l_rgpv_rec,
15960 p_rulv_rec => l_rulv_rec,
15961 x_rgpv_rec => x_rgpv_rec,
15962 x_rulv_rec => x_rulv_rec
15963 );
15964
15965 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15966 raise header_rule_failed;
15967 END IF;
15968
15969 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15970 l_rgp_id := x_rgpv_rec.id;
15971 END IF;
15972 debug_message('------>Rule: AMTFWC/AMCRFE processed');
15973 l_rulv_rec := NULL;
15974
15975 l_eot_roll_inctv_option := p_header_rec.eot_roll_inctv_option;
15976 l_eot_roll_inctv_amount := TO_CHAR(p_header_rec.eot_roll_inctv_amount);
15977 l_eot_roll_inctv_formula := p_header_rec.eot_roll_inctv_formula;
15978 l_eot_roll_inctv_prorate := p_header_rec.eot_roll_inctv_prorate;
15979
15980 IF (l_eot_roll_inctv_option IS NULL
15981 OR
15982 l_eot_roll_inctv_amount IS NULL
15983 OR
15984 l_eot_roll_inctv_formula IS NULL
15985 OR
15986 l_eot_roll_inctv_prorate IS NULL
15987 AND
15988 p_header_rec.template_number IS NOT NULL) THEN
15989 get_contract_rules(
15990 x_return_status => x_return_status,
15991 x_msg_count => x_msg_count,
15992 x_msg_data => x_msg_data,
15993 p_chr_id => p_template_id,
15994 p_cle_id => NULL,
15995 p_rgd_code => 'AMTFWC',
15996 p_rule_code => 'AMCRIN',
15997 x_rulv_tbl => l_rulv_tbl,
15998 x_rule_count => l_rule_count
15999 );
16000
16001 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16002 RAISE header_rule_failed;
16003 END IF;
16004
16005 IF (l_rule_count > 0) THEN
16006 l_eot_roll_inctv_option := NVL(l_eot_roll_inctv_option,l_rulv_tbl(1).rule_information1);
16007 l_eot_roll_inctv_amount := NVL(l_eot_roll_inctv_amount,l_rulv_tbl(1).rule_information2);
16008 l_eot_roll_inctv_formula := NVL(l_eot_roll_inctv_formula,l_rulv_tbl(1).rule_information3);
16009 l_eot_roll_inctv_prorate := NVL(l_eot_roll_inctv_prorate,l_rulv_tbl(1).rule_information4);
16010 END IF;
16011 END IF;
16012
16013 IF (l_eot_roll_inctv_option IS NOT NULL) THEN
16014 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16015 l_rulv_rec.dnz_chr_id := p_chr_id;
16016 l_rulv_rec.rule_informaTion1 := l_eot_roll_inctv_option;
16017 l_rulv_rec.rule_information_category := 'AMCRIN';
16018 l_rulv_rec.std_template_yn := 'N';
16019 l_rulv_rec.warn_yn := 'N';
16020 END IF;
16021
16022 IF (l_eot_roll_inctv_amount IS NOT NULL) THEN
16023 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16024 l_rulv_rec.dnz_chr_id := p_chr_id;
16025 l_rulv_rec.rule_information2 := l_eot_roll_inctv_amount;
16026 l_rulv_rec.rule_information_category := 'AMCRIN';
16027 l_rulv_rec.std_template_yn := 'N';
16028 l_rulv_rec.warn_yn := 'N';
16029 END IF;
16030
16031 IF (l_eot_roll_inctv_formula IS NOT NULL) THEN
16032 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16033 l_rulv_rec.dnz_chr_id := p_chr_id;
16034 l_rulv_rec.rule_information3 := l_eot_roll_inctv_formula;
16035 l_rulv_rec.rule_information_category := 'AMCRIN';
16036 l_rulv_rec.std_template_yn := 'N';
16037 l_rulv_rec.warn_yn := 'N';
16038 END IF;
16039
16040 IF (l_eot_roll_inctv_prorate IS NOT NULL) THEN
16041 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16042 l_rulv_rec.dnz_chr_id := p_chr_id;
16043 l_rulv_rec.rule_information4 := l_eot_roll_inctv_prorate;
16044 l_rulv_rec.rule_information_category := 'AMCRIN';
16045 l_rulv_rec.std_template_yn := 'N';
16046 l_rulv_rec.warn_yn := 'N';
16047 END IF;
16048
16049 create_rule_group_and_rule(
16050 x_return_status => x_return_status,
16051 x_msg_count => x_msg_count,
16052 x_msg_data => x_msg_data,
16053 p_rgp_id => l_rgp_id,
16054 p_rgpv_rec => l_rgpv_rec,
16055 p_rulv_rec => l_rulv_rec,
16056 x_rgpv_rec => x_rgpv_rec,
16057 x_rulv_rec => x_rulv_rec
16058 );
16059
16060 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16061 raise header_rule_failed;
16062 END IF;
16063
16064 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16065 l_rgp_id := x_rgpv_rec.id;
16066 END IF;
16067 debug_message('------>Rule: AMTFWC/AMCRIN processed');
16068 l_rulv_rec := NULL;
16069
16070 l_eot_secu_dep_dispo_option := p_header_rec.eot_secu_dep_dispo_option;
16071 l_eot_secu_dep_dispo_amount := TO_CHAR(p_header_rec.eot_secu_dep_dispo_amount);
16072 l_eot_secu_dep_dispo_formula := p_header_rec.eot_secu_dep_dispo_formula;
16073 l_eot_secu_dep_dispo_prorate := p_header_rec.eot_secu_dep_dispo_prorate;
16074
16075 IF (l_eot_secu_dep_dispo_option IS NULL
16076 OR
16077 l_eot_secu_dep_dispo_amount IS NULL
16078 OR
16079 l_eot_secu_dep_dispo_formula IS NULL
16080 OR
16081 l_eot_secu_dep_dispo_prorate IS NULL
16082 AND
16083 p_header_rec.template_number IS NOT NULL) THEN
16084 get_contract_rules(
16085 x_return_status => x_return_status,
16086 x_msg_count => x_msg_count,
16087 x_msg_data => x_msg_data,
16088 p_chr_id => p_template_id,
16089 p_cle_id => NULL,
16090 p_rgd_code => 'AMTFWC',
16091 p_rule_code => 'AMCSDD',
16092 x_rulv_tbl => l_rulv_tbl,
16093 x_rule_count => l_rule_count
16094 );
16095
16096 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16097 RAISE header_rule_failed;
16098 END IF;
16099
16100 IF (l_rule_count > 0) THEN
16101 l_eot_secu_dep_dispo_option := NVL(l_eot_secu_dep_dispo_option,l_rulv_tbl(1).rule_information1);
16102 l_eot_secu_dep_dispo_amount := NVL(l_eot_secu_dep_dispo_amount,l_rulv_tbl(1).rule_information2);
16103 l_eot_secu_dep_dispo_formula := NVL(l_eot_secu_dep_dispo_formula,l_rulv_tbl(1).rule_information3);
16104 l_eot_secu_dep_dispo_prorate := NVL(l_eot_secu_dep_dispo_prorate,l_rulv_tbl(1).rule_information4);
16105 END IF;
16106 END IF;
16107
16108 IF (l_eot_secu_dep_dispo_option IS NOT NULL) THEN
16109 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16110 l_rulv_rec.dnz_chr_id := p_chr_id;
16111 l_rulv_rec.rule_informaTion1 := l_eot_secu_dep_dispo_option;
16112 l_rulv_rec.rule_information_category := 'AMCSDD';
16113 l_rulv_rec.std_template_yn := 'N';
16114 l_rulv_rec.warn_yn := 'N';
16115 END IF;
16116
16117 IF (l_eot_secu_dep_dispo_amount IS NOT NULL) THEN
16118 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16119 l_rulv_rec.dnz_chr_id := p_chr_id;
16120 l_rulv_rec.rule_information2 := l_eot_secu_dep_dispo_amount;
16121 l_rulv_rec.rule_information_category := 'AMCSDD';
16122 l_rulv_rec.std_template_yn := 'N';
16123 l_rulv_rec.warn_yn := 'N';
16124 END IF;
16125
16126 IF (l_eot_secu_dep_dispo_formula IS NOT NULL) THEN
16127 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16128 l_rulv_rec.dnz_chr_id := p_chr_id;
16129 l_rulv_rec.rule_information3 := l_eot_secu_dep_dispo_formula;
16130 l_rulv_rec.rule_information_category := 'AMCSDD';
16131 l_rulv_rec.std_template_yn := 'N';
16132 l_rulv_rec.warn_yn := 'N';
16133 END IF;
16134
16135 IF (l_eot_secu_dep_dispo_prorate IS NOT NULL) THEN
16136 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16137 l_rulv_rec.dnz_chr_id := p_chr_id;
16138 l_rulv_rec.rule_information4 := l_eot_secu_dep_dispo_prorate;
16139 l_rulv_rec.rule_information_category := 'AMCSDD';
16140 l_rulv_rec.std_template_yn := 'N';
16141 l_rulv_rec.warn_yn := 'N';
16142 END IF;
16143
16144 create_rule_group_and_rule(
16145 x_return_status => x_return_status,
16146 x_msg_count => x_msg_count,
16147 x_msg_data => x_msg_data,
16148 p_rgp_id => l_rgp_id,
16149 p_rgpv_rec => l_rgpv_rec,
16150 p_rulv_rec => l_rulv_rec,
16151 x_rgpv_rec => x_rgpv_rec,
16152 x_rulv_rec => x_rulv_rec
16153 );
16154
16155 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16156 raise header_rule_failed;
16157 END IF;
16158
16159 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16160 l_rgp_id := x_rgpv_rec.id;
16161 END IF;
16162 debug_message('------>Rule: AMTFWC/AMCSDD processed');
16163 l_rulv_rec := NULL;
16164
16165 l_eot_term_penalty_option := p_header_rec.eot_term_penalty_option;
16166 l_eot_term_penalty_amount := TO_CHAR(p_header_rec.eot_term_penalty_amount);
16167 l_eot_term_penalty_formula := p_header_rec.eot_term_penalty_formula;
16168 l_eot_term_penalty_prorate := p_header_rec.eot_term_penalty_prorate;
16169 l_eot_term_penalty_cap_option := p_header_rec.eot_term_penalty_cap_option;
16170 l_eot_term_penalty_cap_amount := TO_CHAR(p_header_rec.eot_term_penalty_cap_amount);
16171 l_eot_term_penalty_cap_formula := p_header_rec.eot_term_penalty_cap_formula;
16172
16173 IF (l_eot_term_penalty_option IS NULL
16174 OR
16175 l_eot_term_penalty_amount IS NULL
16176 OR
16177 l_eot_term_penalty_formula IS NULL
16178 OR
16179 l_eot_term_penalty_prorate IS NULL
16180 OR
16181 l_eot_term_penalty_cap_option IS NULL
16182 OR
16183 l_eot_term_penalty_cap_amount IS NULL
16184 OR
16185 l_eot_term_penalty_cap_formula IS NULL
16186 AND
16187 p_header_rec.template_number IS NOT NULL) THEN
16188 get_contract_rules(
16189 x_return_status => x_return_status,
16190 x_msg_count => x_msg_count,
16191 x_msg_data => x_msg_data,
16192 p_chr_id => p_template_id,
16193 p_cle_id => NULL,
16194 p_rgd_code => 'AMTFWC',
16195 p_rule_code => 'AMCTPE',
16196 x_rulv_tbl => l_rulv_tbl,
16197 x_rule_count => l_rule_count
16198 );
16199
16200 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16201 RAISE header_rule_failed;
16202 END IF;
16203
16204 IF (l_rule_count > 0) THEN
16205 l_eot_term_penalty_option := NVL(l_eot_term_penalty_option,l_rulv_tbl(1).rule_information1);
16206 l_eot_term_penalty_amount := NVL(l_eot_term_penalty_amount,l_rulv_tbl(1).rule_information2);
16207 l_eot_term_penalty_formula := NVL(l_eot_term_penalty_formula,l_rulv_tbl(1).rule_information3);
16208 l_eot_term_penalty_prorate := NVL(l_eot_term_penalty_prorate,l_rulv_tbl(1).rule_information4);
16209 l_eot_term_penalty_cap_option := NVL(l_eot_term_penalty_cap_option,l_rulv_tbl(1).rule_information5);
16210 l_eot_term_penalty_cap_amount := NVL(l_eot_term_penalty_cap_amount,l_rulv_tbl(1).rule_information6);
16211 l_eot_term_penalty_cap_formula := NVL(l_eot_term_penalty_cap_formula,l_rulv_tbl(1).rule_information7);
16212 END IF;
16213 END IF;
16214
16215 IF (l_eot_term_penalty_option IS NOT NULL) THEN
16216 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16217 l_rulv_rec.dnz_chr_id := p_chr_id;
16218 l_rulv_rec.rule_informaTion1 := l_eot_term_penalty_option;
16219 l_rulv_rec.rule_information_category := 'AMCTPE';
16220 l_rulv_rec.std_template_yn := 'N';
16221 l_rulv_rec.warn_yn := 'N';
16222 END IF;
16223
16224 IF (l_eot_term_penalty_amount IS NOT NULL) THEN
16225 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16226 l_rulv_rec.dnz_chr_id := p_chr_id;
16227 l_rulv_rec.rule_information2 := l_eot_term_penalty_amount;
16228 l_rulv_rec.rule_information_category := 'AMCTPE';
16229 l_rulv_rec.std_template_yn := 'N';
16230 l_rulv_rec.warn_yn := 'N';
16231 END IF;
16232
16233 IF (l_eot_term_penalty_formula IS NOT NULL) THEN
16234 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16235 l_rulv_rec.dnz_chr_id := p_chr_id;
16236 l_rulv_rec.rule_information3 := l_eot_term_penalty_formula;
16237 l_rulv_rec.rule_information_category := 'AMCTPE';
16238 l_rulv_rec.std_template_yn := 'N';
16239 l_rulv_rec.warn_yn := 'N';
16240 END IF;
16241
16242 IF (l_eot_term_penalty_prorate IS NOT NULL) THEN
16243 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16244 l_rulv_rec.dnz_chr_id := p_chr_id;
16245 l_rulv_rec.rule_information4 := l_eot_term_penalty_prorate;
16246 l_rulv_rec.rule_information_category := 'AMCTPE';
16247 l_rulv_rec.std_template_yn := 'N';
16248 l_rulv_rec.warn_yn := 'N';
16249 END IF;
16250
16251 IF (l_eot_term_penalty_cap_option IS NOT NULL) THEN
16252 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16253 l_rulv_rec.dnz_chr_id := p_chr_id;
16254 l_rulv_rec.rule_informaTion5 := l_eot_term_penalty_cap_option;
16255 l_rulv_rec.rule_information_category := 'AMCTPE';
16256 l_rulv_rec.std_template_yn := 'N';
16257 l_rulv_rec.warn_yn := 'N';
16258 END IF;
16259
16260 IF (l_eot_term_penalty_cap_amount IS NOT NULL) THEN
16261 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16262 l_rulv_rec.dnz_chr_id := p_chr_id;
16263 l_rulv_rec.rule_information6 := l_eot_term_penalty_cap_amount;
16264 l_rulv_rec.rule_information_category := 'AMCTPE';
16265 l_rulv_rec.std_template_yn := 'N';
16266 l_rulv_rec.warn_yn := 'N';
16267 END IF;
16268
16269 IF (l_eot_term_penalty_cap_formula IS NOT NULL) THEN
16270 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16271 l_rulv_rec.dnz_chr_id := p_chr_id;
16272 l_rulv_rec.rule_information7 := l_eot_term_penalty_cap_formula;
16273 l_rulv_rec.rule_information_category := 'AMCTPE';
16274 l_rulv_rec.std_template_yn := 'N';
16275 l_rulv_rec.warn_yn := 'N';
16276 END IF;
16277
16278 create_rule_group_and_rule(
16279 x_return_status => x_return_status,
16280 x_msg_count => x_msg_count,
16281 x_msg_data => x_msg_data,
16282 p_rgp_id => l_rgp_id,
16283 p_rgpv_rec => l_rgpv_rec,
16284 p_rulv_rec => l_rulv_rec,
16285 x_rgpv_rec => x_rgpv_rec,
16286 x_rulv_rec => x_rulv_rec
16287 );
16288
16289 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16290 raise header_rule_failed;
16291 END IF;
16292
16293 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16294 l_rgp_id := x_rgpv_rec.id;
16295 END IF;
16296 debug_message('------>Rule: AMTFWC/AMCTPE processed');
16297 l_rulv_rec := NULL;
16298
16299 l_eot_est_prop_tax_option := p_header_rec.eot_est_prop_tax_option;
16300 l_eot_est_prop_tax_amount := TO_CHAR(p_header_rec.eot_est_prop_tax_amount);
16301 l_eot_est_prop_tax_formula := p_header_rec.eot_est_prop_tax_formula;
16302 l_eot_est_prop_tax_prorate := p_header_rec.eot_est_prop_tax_prorate;
16303
16304 IF (l_eot_est_prop_tax_option IS NULL
16305 OR
16306 l_eot_est_prop_tax_amount IS NULL
16307 OR
16308 l_eot_est_prop_tax_formula IS NULL
16309 OR
16310 l_eot_est_prop_tax_prorate IS NULL
16311 AND
16312 p_header_rec.template_number IS NOT NULL) THEN
16313 get_contract_rules(
16314 x_return_status => x_return_status,
16315 x_msg_count => x_msg_count,
16316 x_msg_data => x_msg_data,
16317 p_chr_id => p_template_id,
16318 p_cle_id => NULL,
16319 p_rgd_code => 'AMTFWC',
16320 p_rule_code => 'AMPRTX',
16321 x_rulv_tbl => l_rulv_tbl,
16322 x_rule_count => l_rule_count
16323 );
16324
16325 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16326 RAISE header_rule_failed;
16327 END IF;
16328
16329 IF (l_rule_count > 0) THEN
16330 l_eot_est_prop_tax_option := NVL(l_eot_est_prop_tax_option,l_rulv_tbl(1).rule_information1);
16331 l_eot_est_prop_tax_amount := NVL(l_eot_est_prop_tax_amount,l_rulv_tbl(1).rule_information2);
16332 l_eot_est_prop_tax_formula := NVL(l_eot_est_prop_tax_formula,l_rulv_tbl(1).rule_information3);
16333 l_eot_est_prop_tax_prorate := NVL(l_eot_est_prop_tax_prorate,l_rulv_tbl(1).rule_information4);
16334 END IF;
16335 END IF;
16336
16337 IF (l_eot_est_prop_tax_option IS NOT NULL) THEN
16338 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16339 l_rulv_rec.dnz_chr_id := p_chr_id;
16340 l_rulv_rec.rule_informaTion1 := l_eot_est_prop_tax_option;
16341 l_rulv_rec.rule_information_category := 'AMPRTX';
16342 l_rulv_rec.std_template_yn := 'N';
16343 l_rulv_rec.warn_yn := 'N';
16344 END IF;
16345
16346 IF (l_eot_est_prop_tax_amount IS NOT NULL) THEN
16347 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16348 l_rulv_rec.dnz_chr_id := p_chr_id;
16349 l_rulv_rec.rule_information2 := l_eot_est_prop_tax_amount;
16350 l_rulv_rec.rule_information_category := 'AMPRTX';
16351 l_rulv_rec.std_template_yn := 'N';
16352 l_rulv_rec.warn_yn := 'N';
16353 END IF;
16354
16355 IF (l_eot_est_prop_tax_formula IS NOT NULL) THEN
16356 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16357 l_rulv_rec.dnz_chr_id := p_chr_id;
16358 l_rulv_rec.rule_information3 := l_eot_est_prop_tax_formula;
16359 l_rulv_rec.rule_information_category := 'AMPRTX';
16360 l_rulv_rec.std_template_yn := 'N';
16361 l_rulv_rec.warn_yn := 'N';
16362 END IF;
16363
16364 IF (l_eot_est_prop_tax_prorate IS NOT NULL) THEN
16365 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16366 l_rulv_rec.dnz_chr_id := p_chr_id;
16367 l_rulv_rec.rule_information4 := l_eot_est_prop_tax_prorate;
16368 l_rulv_rec.rule_information_category := 'AMPRTX';
16369 l_rulv_rec.std_template_yn := 'N';
16370 l_rulv_rec.warn_yn := 'N';
16371 END IF;
16372
16373 create_rule_group_and_rule(
16374 x_return_status => x_return_status,
16375 x_msg_count => x_msg_count,
16376 x_msg_data => x_msg_data,
16377 p_rgp_id => l_rgp_id,
16378 p_rgpv_rec => l_rgpv_rec,
16379 p_rulv_rec => l_rulv_rec,
16380 x_rgpv_rec => x_rgpv_rec,
16381 x_rulv_rec => x_rulv_rec
16382 );
16383
16384 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16385 raise header_rule_failed;
16386 END IF;
16387
16388 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16389 l_rgp_id := x_rgpv_rec.id;
16390 END IF;
16391 debug_message('------>Rule: AMTFWC/AMPRTX processed');
16392 l_rulv_rec := NULL;
16393
16394 l_eot_contr_fees_option := p_header_rec.eot_contr_fees_option;
16395
16396 IF (l_eot_contr_fees_option IS NULL
16397 AND
16398 p_header_rec.template_number IS NOT NULL) THEN
16399 get_contract_rules(
16400 x_return_status => x_return_status,
16401 x_msg_count => x_msg_count,
16402 x_msg_data => x_msg_data,
16403 p_chr_id => p_template_id,
16404 p_cle_id => NULL,
16405 p_rgd_code => 'AMTFWC',
16406 p_rule_code => 'AMYFEE',
16407 x_rulv_tbl => l_rulv_tbl,
16408 x_rule_count => l_rule_count
16409 );
16410
16411 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16412 RAISE header_rule_failed;
16413 END IF;
16414
16415 IF (l_rule_count > 0) THEN
16416 l_eot_contr_fees_option := NVL(l_eot_contr_fees_option,l_rulv_tbl(1).rule_information1);
16417 END IF;
16418 END IF;
16419
16420 IF (l_eot_contr_fees_option IS NOT NULL) THEN
16421 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16422 l_rulv_rec.dnz_chr_id := p_chr_id;
16423 l_rulv_rec.rule_information1 := l_eot_contr_fees_option;
16424 l_rulv_rec.rule_information_category := 'AMYFEE';
16425 l_rulv_rec.std_template_yn := 'N';
16426 l_rulv_rec.warn_yn := 'N';
16427 END IF;
16428
16429 create_rule_group_and_rule(
16430 x_return_status => x_return_status,
16431 x_msg_count => x_msg_count,
16432 x_msg_data => x_msg_data,
16433 p_rgp_id => l_rgp_id,
16434 p_rgpv_rec => l_rgpv_rec,
16435 p_rulv_rec => l_rulv_rec,
16436 x_rgpv_rec => x_rgpv_rec,
16437 x_rulv_rec => x_rulv_rec
16438 );
16439
16440 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16441 raise header_rule_failed;
16442 END IF;
16443
16444 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16445 l_rgp_id := x_rgpv_rec.id;
16446 END IF;
16447 debug_message('------>Rule: AMTFWC/AMYFEE processed');
16448 l_rulv_rec := NULL;
16449
16450 l_eot_outstnd_bal_option := p_header_rec.eot_outstnd_bal_option;
16451
16452 IF (l_eot_outstnd_bal_option IS NULL
16453 AND
16454 p_header_rec.template_number IS NOT NULL) THEN
16455 get_contract_rules(
16456 x_return_status => x_return_status,
16457 x_msg_count => x_msg_count,
16458 x_msg_data => x_msg_data,
16459 p_chr_id => p_template_id,
16460 p_cle_id => NULL,
16461 p_rgd_code => 'AMTFWC',
16462 p_rule_code => 'AMYOUB',
16463 x_rulv_tbl => l_rulv_tbl,
16464 x_rule_count => l_rule_count
16465 );
16466
16467 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16468 RAISE header_rule_failed;
16469 END IF;
16470
16471 IF (l_rule_count > 0) THEN
16472 l_eot_outstnd_bal_option := l_rulv_tbl(1).rule_information1;
16473 END IF;
16474 END IF;
16475
16476 IF (l_eot_outstnd_bal_option IS NOT NULL) THEN
16477 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16478 l_rulv_rec.dnz_chr_id := p_chr_id;
16479 l_rulv_rec.rule_information1 := l_eot_outstnd_bal_option;
16480 l_rulv_rec.rule_information_category := 'AMYOUB';
16481 l_rulv_rec.std_template_yn := 'N';
16482 l_rulv_rec.warn_yn := 'N';
16483 END IF;
16484
16485 create_rule_group_and_rule(
16486 x_return_status => x_return_status,
16487 x_msg_count => x_msg_count,
16488 x_msg_data => x_msg_data,
16489 p_rgp_id => l_rgp_id,
16490 p_rgpv_rec => l_rgpv_rec,
16491 p_rulv_rec => l_rulv_rec,
16492 x_rgpv_rec => x_rgpv_rec,
16493 x_rulv_rec => x_rulv_rec
16494 );
16495
16496 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16497 raise header_rule_failed;
16498 END IF;
16499
16500 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16501 l_rgp_id := x_rgpv_rec.id;
16502 END IF;
16503 debug_message('------>Rule: AMTFWC/AMYOUB processed');
16504 l_rulv_rec := NULL;
16505
16506 l_eot_serv_mant_option := p_header_rec.eot_serv_mant_option;
16507 l_eot_serv_mant_frml := p_header_rec.eot_serv_mant_frml;
16508
16509 IF ((l_eot_serv_mant_option IS NULL
16510 OR
16511 l_eot_serv_mant_frml IS NULL
16512 )
16513 AND
16514 p_header_rec.template_number IS NOT NULL) THEN
16515 get_contract_rules(
16516 x_return_status => x_return_status,
16517 x_msg_count => x_msg_count,
16518 x_msg_data => x_msg_data,
16519 p_chr_id => p_template_id,
16520 p_cle_id => NULL,
16521 p_rgd_code => 'AMTFWC',
16522 p_rule_code => 'AMYSAM',
16523 x_rulv_tbl => l_rulv_tbl,
16524 x_rule_count => l_rule_count
16525 );
16526
16527 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16528 RAISE header_rule_failed;
16529 END IF;
16530
16531 IF (l_rule_count > 0) THEN
16532 l_eot_serv_mant_option := NVL(l_eot_serv_mant_option,l_rulv_tbl(1).rule_information1);
16533 l_eot_serv_mant_frml := NVL(l_eot_serv_mant_frml,l_rulv_tbl(1).rule_information2);
16534 END IF;
16535 END IF;
16536
16537 IF (l_eot_serv_mant_option IS NOT NULL) THEN
16538 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16539 l_rulv_rec.dnz_chr_id := p_chr_id;
16540 l_rulv_rec.rule_information1 := l_eot_serv_mant_option;
16541 l_rulv_rec.rule_information_category := 'AMYSAM';
16542 l_rulv_rec.std_template_yn := 'N';
16543 l_rulv_rec.warn_yn := 'N';
16544 END IF;
16545
16546 IF (l_eot_serv_mant_frml IS NOT NULL) THEN
16547 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16548 l_rulv_rec.dnz_chr_id := p_chr_id;
16549 l_rulv_rec.rule_information2 := l_eot_serv_mant_frml;
16550 l_rulv_rec.rule_information_category := 'AMYSAM';
16551 l_rulv_rec.std_template_yn := 'N';
16552 l_rulv_rec.warn_yn := 'N';
16553 END IF;
16554
16555 create_rule_group_and_rule(
16556 x_return_status => x_return_status,
16557 x_msg_count => x_msg_count,
16558 x_msg_data => x_msg_data,
16559 p_rgp_id => l_rgp_id,
16560 p_rgpv_rec => l_rgpv_rec,
16561 p_rulv_rec => l_rulv_rec,
16562 x_rgpv_rec => x_rgpv_rec,
16563 x_rulv_rec => x_rulv_rec
16564 );
16565
16566 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16567 raise header_rule_failed;
16568 END IF;
16569
16570 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16571 l_rgp_id := x_rgpv_rec.id;
16572 END IF;
16573
16574 debug_message('------>Rule: AMTFWC/AMYSAM processed');
16575
16576 /**** AKP Copied from here for AMTFWC 4067094 ***/
16577 l_rulv_rec := NULL;
16578
16579 l_eot_absorbed_fee_frml := p_header_rec.eot_absorbed_fee_frml;
16580
16581 IF (l_eot_absorbed_fee_frml IS NULL
16582 AND
16583 p_header_rec.template_number IS NOT NULL) THEN
16584 get_contract_rules(
16585 x_return_status => x_return_status,
16586 x_msg_count => x_msg_count,
16587 x_msg_data => x_msg_data,
16588 p_chr_id => p_template_id,
16589 p_cle_id => NULL,
16590 p_rgd_code => 'AMTFWC',
16591 p_rule_code => 'AMAFEE',
16592 x_rulv_tbl => l_rulv_tbl,
16593 x_rule_count => l_rule_count
16594 );
16595
16596 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16597 RAISE header_rule_failed;
16598 END IF;
16599
16600 IF (l_rule_count > 0) THEN
16601 l_eot_absorbed_fee_frml := l_rulv_tbl(1).rule_information3;
16602 END IF;
16603 END IF;
16604
16605 IF (l_eot_absorbed_fee_frml IS NOT NULL) THEN
16606 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16607 l_rulv_rec.dnz_chr_id := p_chr_id;
16608 l_rulv_rec.rule_information3 := l_eot_absorbed_fee_frml;
16609 l_rulv_rec.rule_information_category := 'AMAFEE';
16610 l_rulv_rec.std_template_yn := 'N';
16611 l_rulv_rec.warn_yn := 'N';
16612 END IF;
16613
16614 create_rule_group_and_rule(
16615 x_return_status => x_return_status,
16616 x_msg_count => x_msg_count,
16617 x_msg_data => x_msg_data,
16618 p_rgp_id => l_rgp_id,
16619 p_rgpv_rec => l_rgpv_rec,
16620 p_rulv_rec => l_rulv_rec,
16621 x_rgpv_rec => x_rgpv_rec,
16622 x_rulv_rec => x_rulv_rec
16623 );
16624
16625 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16626 raise header_rule_failed;
16627 END IF;
16628
16629 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16630 l_rgp_id := x_rgpv_rec.id;
16631 END IF;
16632
16633 debug_message('------>Rule: AMTFWC/AMAFEE processed');
16634
16635 l_rulv_rec := NULL;
16636
16637 l_eot_expense_fee_frml := p_header_rec.eot_expense_fee_frml;
16638
16639 IF (l_eot_expense_fee_frml IS NULL
16640 AND
16641 p_header_rec.template_number IS NOT NULL) THEN
16642 get_contract_rules(
16643 x_return_status => x_return_status,
16644 x_msg_count => x_msg_count,
16645 x_msg_data => x_msg_data,
16646 p_chr_id => p_template_id,
16647 p_cle_id => NULL,
16648 p_rgd_code => 'AMTFWC',
16649 p_rule_code => 'AMEFEE',
16650 x_rulv_tbl => l_rulv_tbl,
16651 x_rule_count => l_rule_count
16652 );
16653
16654 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16655 RAISE header_rule_failed;
16656 END IF;
16657
16658 IF (l_rule_count > 0) THEN
16659 l_eot_expense_fee_frml := l_rulv_tbl(1).rule_information3;
16660 END IF;
16661 END IF;
16662
16663 IF (l_eot_expense_fee_frml IS NOT NULL) THEN
16664 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16665 l_rulv_rec.dnz_chr_id := p_chr_id;
16666 l_rulv_rec.rule_information3 := l_eot_expense_fee_frml;
16667 l_rulv_rec.rule_information_category := 'AMEFEE';
16668 l_rulv_rec.std_template_yn := 'N';
16669 l_rulv_rec.warn_yn := 'N';
16670 END IF;
16671
16672 create_rule_group_and_rule(
16673 x_return_status => x_return_status,
16674 x_msg_count => x_msg_count,
16675 x_msg_data => x_msg_data,
16676 p_rgp_id => l_rgp_id,
16677 p_rgpv_rec => l_rgpv_rec,
16678 p_rulv_rec => l_rulv_rec,
16679 x_rgpv_rec => x_rgpv_rec,
16680 x_rulv_rec => x_rulv_rec
16681 );
16682
16683 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16684 raise header_rule_failed;
16685 END IF;
16686
16687 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16688 l_rgp_id := x_rgpv_rec.id;
16689 END IF;
16690
16691 debug_message('------>Rule: AMTFWC/AMEFEE processed');
16692
16693 l_rulv_rec := NULL;
16694
16695 l_eot_financed_fee_frml := p_header_rec.eot_financed_fee_frml;
16696
16697 IF (l_eot_financed_fee_frml IS NULL
16698 AND
16699 p_header_rec.template_number IS NOT NULL) THEN
16700 get_contract_rules(
16701 x_return_status => x_return_status,
16702 x_msg_count => x_msg_count,
16703 x_msg_data => x_msg_data,
16704 p_chr_id => p_template_id,
16705 p_cle_id => NULL,
16706 p_rgd_code => 'AMTFWC',
16707 p_rule_code => 'AMFFEE',
16708 x_rulv_tbl => l_rulv_tbl,
16709 x_rule_count => l_rule_count
16710 );
16711
16712 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16713 RAISE header_rule_failed;
16714 END IF;
16715
16716 IF (l_rule_count > 0) THEN
16717 l_eot_financed_fee_frml := l_rulv_tbl(1).rule_information3;
16718 END IF;
16719 END IF;
16720
16721 IF (l_eot_financed_fee_frml IS NOT NULL) THEN
16722 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16723 l_rulv_rec.dnz_chr_id := p_chr_id;
16724 l_rulv_rec.rule_information3 := l_eot_financed_fee_frml;
16725 l_rulv_rec.rule_information_category := 'AMFFEE';
16726 l_rulv_rec.std_template_yn := 'N';
16727 l_rulv_rec.warn_yn := 'N';
16728 END IF;
16729
16730 create_rule_group_and_rule(
16731 x_return_status => x_return_status,
16732 x_msg_count => x_msg_count,
16733 x_msg_data => x_msg_data,
16734 p_rgp_id => l_rgp_id,
16735 p_rgpv_rec => l_rgpv_rec,
16736 p_rulv_rec => l_rulv_rec,
16737 x_rgpv_rec => x_rgpv_rec,
16738 x_rulv_rec => x_rulv_rec
16739 );
16740
16741 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16742 raise header_rule_failed;
16743 END IF;
16744
16745 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16746 l_rgp_id := x_rgpv_rec.id;
16747 END IF;
16748
16749 debug_message('------>Rule: AMTFWC/AMFFEE processed');
16750
16751 l_rulv_rec := NULL;
16752
16753 l_eot_general_fee_frml := p_header_rec.eot_general_fee_frml;
16754
16755 IF (l_eot_general_fee_frml IS NULL
16756 AND
16757 p_header_rec.template_number IS NOT NULL) THEN
16758 get_contract_rules(
16759 x_return_status => x_return_status,
16760 x_msg_count => x_msg_count,
16761 x_msg_data => x_msg_data,
16762 p_chr_id => p_template_id,
16763 p_cle_id => NULL,
16764 p_rgd_code => 'AMTFWC',
16765 p_rule_code => 'AMGFEE',
16766 x_rulv_tbl => l_rulv_tbl,
16767 x_rule_count => l_rule_count
16768 );
16769
16770 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16771 RAISE header_rule_failed;
16772 END IF;
16773
16774 IF (l_rule_count > 0) THEN
16775 l_eot_general_fee_frml := l_rulv_tbl(1).rule_information3;
16776 END IF;
16777 END IF;
16778
16779 IF (l_eot_general_fee_frml IS NOT NULL) THEN
16780 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16781 l_rulv_rec.dnz_chr_id := p_chr_id;
16782 l_rulv_rec.rule_information3 := l_eot_general_fee_frml;
16783 l_rulv_rec.rule_information_category := 'AMGFEE';
16784 l_rulv_rec.std_template_yn := 'N';
16785 l_rulv_rec.warn_yn := 'N';
16786 END IF;
16787
16788 create_rule_group_and_rule(
16789 x_return_status => x_return_status,
16790 x_msg_count => x_msg_count,
16791 x_msg_data => x_msg_data,
16792 p_rgp_id => l_rgp_id,
16793 p_rgpv_rec => l_rgpv_rec,
16794 p_rulv_rec => l_rulv_rec,
16795 x_rgpv_rec => x_rgpv_rec,
16796 x_rulv_rec => x_rulv_rec
16797 );
16798
16799 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16800 raise header_rule_failed;
16801 END IF;
16802
16803 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16804 l_rgp_id := x_rgpv_rec.id;
16805 END IF;
16806
16807 debug_message('------>Rule: AMTFWC/AMGFEE processed');
16808
16809 l_rulv_rec := NULL;
16810
16811 l_eot_income_fee_frml := p_header_rec.eot_income_fee_frml;
16812
16813 IF (l_eot_income_fee_frml IS NULL
16814 AND
16815 p_header_rec.template_number IS NOT NULL) THEN
16816 get_contract_rules(
16817 x_return_status => x_return_status,
16818 x_msg_count => x_msg_count,
16819 x_msg_data => x_msg_data,
16820 p_chr_id => p_template_id,
16821 p_cle_id => NULL,
16822 p_rgd_code => 'AMTFWC',
16823 p_rule_code => 'AMIFEE',
16824 x_rulv_tbl => l_rulv_tbl,
16825 x_rule_count => l_rule_count
16826 );
16827
16828 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16829 RAISE header_rule_failed;
16830 END IF;
16831
16832 IF (l_rule_count > 0) THEN
16833 l_eot_income_fee_frml := l_rulv_tbl(1).rule_information3;
16834 END IF;
16835 END IF;
16836
16837 IF (l_eot_income_fee_frml IS NOT NULL) THEN
16838 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16839 l_rulv_rec.dnz_chr_id := p_chr_id;
16840 l_rulv_rec.rule_information3 := l_eot_income_fee_frml;
16841 l_rulv_rec.rule_information_category := 'AMIFEE';
16842 l_rulv_rec.std_template_yn := 'N';
16843 l_rulv_rec.warn_yn := 'N';
16844 END IF;
16845
16846 create_rule_group_and_rule(
16847 x_return_status => x_return_status,
16848 x_msg_count => x_msg_count,
16849 x_msg_data => x_msg_data,
16850 p_rgp_id => l_rgp_id,
16851 p_rgpv_rec => l_rgpv_rec,
16852 p_rulv_rec => l_rulv_rec,
16853 x_rgpv_rec => x_rgpv_rec,
16854 x_rulv_rec => x_rulv_rec
16855 );
16856
16857 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16858 raise header_rule_failed;
16859 END IF;
16860
16861 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16862 l_rgp_id := x_rgpv_rec.id;
16863 END IF;
16864
16865 debug_message('------>Rule: AMTFWC/AMIFEE processed');
16866
16867 l_rulv_rec := NULL;
16868
16869 l_eot_misc_fee_frml := p_header_rec.eot_misc_fee_frml;
16870
16871 IF (l_eot_misc_fee_frml IS NULL
16872 AND
16873 p_header_rec.template_number IS NOT NULL) THEN
16874 get_contract_rules(
16875 x_return_status => x_return_status,
16876 x_msg_count => x_msg_count,
16877 x_msg_data => x_msg_data,
16878 p_chr_id => p_template_id,
16879 p_cle_id => NULL,
16880 p_rgd_code => 'AMTFWC',
16881 p_rule_code => 'AMMFEE',
16882 x_rulv_tbl => l_rulv_tbl,
16883 x_rule_count => l_rule_count
16884 );
16885
16886 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16887 RAISE header_rule_failed;
16888 END IF;
16889
16890 IF (l_rule_count > 0) THEN
16891 l_eot_misc_fee_frml := l_rulv_tbl(1).rule_information3;
16892 END IF;
16893 END IF;
16894
16895 IF (l_eot_misc_fee_frml IS NOT NULL) THEN
16896 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16897 l_rulv_rec.dnz_chr_id := p_chr_id;
16898 l_rulv_rec.rule_information3 := l_eot_misc_fee_frml;
16899 l_rulv_rec.rule_information_category := 'AMMFEE';
16900 l_rulv_rec.std_template_yn := 'N';
16901 l_rulv_rec.warn_yn := 'N';
16902 END IF;
16903
16904 create_rule_group_and_rule(
16905 x_return_status => x_return_status,
16906 x_msg_count => x_msg_count,
16907 x_msg_data => x_msg_data,
16908 p_rgp_id => l_rgp_id,
16909 p_rgpv_rec => l_rgpv_rec,
16910 p_rulv_rec => l_rulv_rec,
16911 x_rgpv_rec => x_rgpv_rec,
16912 x_rulv_rec => x_rulv_rec
16913 );
16914
16915 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16916 raise header_rule_failed;
16917 END IF;
16918
16919 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16920 l_rgp_id := x_rgpv_rec.id;
16921 END IF;
16922
16923 debug_message('------>Rule: AMTFWC/AMMFEE processed');
16924
16925 l_rulv_rec := NULL;
16926
16927 l_eot_passthru_fee_frml := p_header_rec.eot_passthru_fee_frml;
16928
16929 IF (l_eot_passthru_fee_frml IS NULL
16930 AND
16931 p_header_rec.template_number IS NOT NULL) THEN
16932 get_contract_rules(
16933 x_return_status => x_return_status,
16934 x_msg_count => x_msg_count,
16935 x_msg_data => x_msg_data,
16936 p_chr_id => p_template_id,
16937 p_cle_id => NULL,
16938 p_rgd_code => 'AMTFWC',
16939 p_rule_code => 'AMPFEE',
16940 x_rulv_tbl => l_rulv_tbl,
16941 x_rule_count => l_rule_count
16942 );
16943
16944 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16945 RAISE header_rule_failed;
16946 END IF;
16947
16948 IF (l_rule_count > 0) THEN
16949 l_eot_passthru_fee_frml := l_rulv_tbl(1).rule_information3;
16950 END IF;
16951 END IF;
16952
16953 IF (l_eot_passthru_fee_frml IS NOT NULL) THEN
16954 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16955 l_rulv_rec.dnz_chr_id := p_chr_id;
16956 l_rulv_rec.rule_information3 := l_eot_passthru_fee_frml;
16957 l_rulv_rec.rule_information_category := 'AMPFEE';
16958 l_rulv_rec.std_template_yn := 'N';
16959 l_rulv_rec.warn_yn := 'N';
16960 END IF;
16961
16962 create_rule_group_and_rule(
16963 x_return_status => x_return_status,
16964 x_msg_count => x_msg_count,
16965 x_msg_data => x_msg_data,
16966 p_rgp_id => l_rgp_id,
16967 p_rgpv_rec => l_rgpv_rec,
16968 p_rulv_rec => l_rulv_rec,
16969 x_rgpv_rec => x_rgpv_rec,
16970 x_rulv_rec => x_rulv_rec
16971 );
16972
16973 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16974 raise header_rule_failed;
16975 END IF;
16976
16977 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16978 l_rgp_id := x_rgpv_rec.id;
16979 END IF;
16980
16981 debug_message('------>Rule: AMTFWC/AMPFEE processed');
16982
16983 l_rulv_rec := NULL;
16984
16985 l_eot_rollover_fee_frml := p_header_rec.eot_rollover_fee_frml;
16986
16987 IF (l_eot_rollover_fee_frml IS NULL
16988 AND
16989 p_header_rec.template_number IS NOT NULL) THEN
16990 get_contract_rules(
16991 x_return_status => x_return_status,
16992 x_msg_count => x_msg_count,
16993 x_msg_data => x_msg_data,
16994 p_chr_id => p_template_id,
16995 p_cle_id => NULL,
16996 p_rgd_code => 'AMTFWC',
16997 p_rule_code => 'AMRFEE',
16998 x_rulv_tbl => l_rulv_tbl,
16999 x_rule_count => l_rule_count
17000 );
17001
17002 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17003 RAISE header_rule_failed;
17004 END IF;
17005
17006 IF (l_rule_count > 0) THEN
17007 l_eot_rollover_fee_frml := l_rulv_tbl(1).rule_information3;
17008 END IF;
17009 END IF;
17010
17011 IF (l_eot_rollover_fee_frml IS NOT NULL) THEN
17012 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17013 l_rulv_rec.dnz_chr_id := p_chr_id;
17014 l_rulv_rec.rule_information3 := l_eot_rollover_fee_frml;
17015 l_rulv_rec.rule_information_category := 'AMRFEE';
17016 l_rulv_rec.std_template_yn := 'N';
17017 l_rulv_rec.warn_yn := 'N';
17018 END IF;
17019
17020 create_rule_group_and_rule(
17021 x_return_status => x_return_status,
17022 x_msg_count => x_msg_count,
17023 x_msg_data => x_msg_data,
17024 p_rgp_id => l_rgp_id,
17025 p_rgpv_rec => l_rgpv_rec,
17026 p_rulv_rec => l_rulv_rec,
17027 x_rgpv_rec => x_rgpv_rec,
17028 x_rulv_rec => x_rulv_rec
17029 );
17030
17031 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17032 raise header_rule_failed;
17033 END IF;
17034
17035 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17036 l_rgp_id := x_rgpv_rec.id;
17037 END IF;
17038
17039 debug_message('------>Rule: AMTFWC/AMRFEE processed');
17040 /**** AKP Copied to here for AMTFWC 4067094 ***/
17041
17042 /*
17043 * Adding Lien and Title Rules at contract header
17044 *
17045 */
17046 -- Rule Group LAAFLG
17047
17048 l_rgpv_rec := NULL;
17049 l_rgp_id := NULL;
17050 l_rgpv_rec.rgd_code := 'LAAFLG';
17051 l_rgpv_rec.chr_id := p_chr_id;
17052 l_rgpv_rec.dnz_chr_id := p_chr_id;
17053 l_rgpv_rec.cle_id := NULL;
17054 l_rgpv_rec.rgp_type := 'KRG';
17055
17056 l_rulv_rec := NULL;
17057
17058 IF (p_header_rec.lien_holder_name IS NOT NULL
17059 OR
17060 p_header_rec.lien_holder_id IS NOT NULL) THEN
17061
17062 l_lien_holder_id := get_lien_holder(
17063 x_return_status => x_return_status,
17064 p_lien_holder_name => p_header_rec.lien_holder_name,
17065 p_lien_holder_id => p_header_rec.lien_holder_id
17066 );
17067 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17068 okl_api.set_message(
17069 G_APP_NAME,
17070 G_INVALID_VALUE,
17071 'CONTRACT_NUM',
17072 p_header_rec.contract_number_old,
17073 'COL_NAME',
17074 'LIEN_HOLDER_NAME, ID',
17075 'COL_VALUE',
17076 p_header_rec.lien_holder_name||', '||p_header_rec.lien_holder_id
17077 );
17078 RAISE header_rule_failed;
17079 END IF;
17080
17081 END IF;
17082
17083 l_lien_type := p_header_rec.lien_type;
17084 l_filing_number := p_header_rec.filing_number;
17085 l_filing_date := get_canonicaL_date(p_header_rec.filing_date);
17086 l_filing_status := p_header_rec.filing_status ;
17087 l_jurisdiction := p_header_rec.jurisdiction ;
17088 l_sub_jurisdiction := p_header_rec.sub_jurisdiction ;
17089 l_lien_expiration_date := get_canonicaL_date(p_header_rec.lien_expiration_date);
17090 l_lien_continuation_number := p_header_rec.lien_continuation_number;
17091 l_lien_continuation_date := get_canonicaL_date(p_header_rec.lien_continuation_date);
17092
17093 IF (l_lien_type IS NULL
17094 OR
17095 l_filing_number IS NULL
17096 OR
17097 l_filing_date IS NULL
17098 OR
17099 l_filing_status IS NULL
17100 OR
17101 l_lien_holder_id IS NULL
17102 OR
17103 l_jurisdiction IS NULL
17104 OR
17105 l_sub_jurisdiction IS NULL
17106 OR
17107 l_lien_expiration_date IS NULL
17108 OR
17109 l_lien_continuation_number IS NULL
17110 OR
17111 l_lien_continuation_date IS NULL
17112 AND
17113 p_header_rec.template_number IS NOT NULL) THEN
17114
17115 get_contract_rules(
17116 x_return_status => x_return_status,
17117 x_msg_count => x_msg_count,
17118 x_msg_data => x_msg_data,
17119 p_chr_id => p_template_id,
17120 p_cle_id => NULL,
17121 p_rgd_code => 'LAAFLG',
17122 p_rule_code => 'LAFLLN',
17123 x_rulv_tbl => l_rulv_tbl,
17124 x_rule_count => l_rule_count
17125 );
17126
17127 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17128 RAISE header_rule_failed;
17129 END IF;
17130
17131 IF (l_rule_count > 0) THEN
17132 l_lien_type := NVL(l_lien_type, l_Rulv_tbl(1).rule_information1);
17133 l_filing_number := NVL(l_filing_number, l_rulv_tbl(1).rule_information2);
17134 l_filing_date := NVL(l_filing_date, l_rulv_tbl(1).rule_information3);
17135 l_filing_status := NVL(l_filing_status, l_rulv_tbl(1).rule_information4);
17136 l_jurisdiction := NVL(l_jurisdiction, l_rulv_tbl(1).rule_information5);
17137 l_sub_jurisdiction := NVL(l_sub_jurisdiction, l_rulv_tbl(1).rule_information6);
17138 l_lien_expiration_date := NVL(l_lien_expiration_date, l_rulv_tbl(1).rule_information7);
17139 l_lien_continuation_number := NVL(l_lien_continuation_number, l_rulv_tbl(1).rule_information8);
17140 l_lien_continuation_date := NVL(l_lien_continuation_date, l_rulv_tbl(1).rule_information9);
17141 l_lien_holder_id := NVL(l_lien_holder_id, l_rulv_tbl(1).object1_id1);
17142 END IF;
17143 END IF;
17144
17145 IF (l_lien_type IS NOT NULL) THEN
17146 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17147 l_rulv_rec.dnz_chr_id := p_chr_id;
17148 l_rulv_rec.rule_information1 := l_lien_type;
17149 l_rulv_rec.rule_information_category := 'LAFLLN';
17150 l_rulv_rec.std_template_yn := 'N';
17151 l_rulv_rec.warn_yn := 'N';
17152 END IF;
17153
17154 IF (l_filing_number IS NOT NULL) THEN
17155 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17156 l_rulv_rec.dnz_chr_id := p_chr_id;
17157 l_rulv_rec.rule_information2 := l_filing_number;
17158 l_rulv_rec.rule_information_category := 'LAFLLN';
17159 l_rulv_rec.std_template_yn := 'N';
17160 l_rulv_rec.warn_yn := 'N';
17161 END IF;
17162
17163 IF (l_filing_date IS NOT NULL) THEN
17164 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17165 l_rulv_rec.dnz_chr_id := p_chr_id;
17166 l_rulv_rec.rule_information3 := l_filing_date;
17167 l_rulv_rec.rule_information_category := 'LAFLLN';
17168 l_rulv_rec.std_template_yn := 'N';
17169 l_rulv_rec.warn_yn := 'N';
17170 END IF;
17171
17172 IF (l_filing_status IS NOT NULL) THEN
17173 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17174 l_rulv_rec.dnz_chr_id := p_chr_id;
17175 l_rulv_rec.rule_information4 := l_filing_status;
17176 l_rulv_rec.rule_information_category := 'LAFLLN';
17177 l_rulv_rec.std_template_yn := 'N';
17178 l_rulv_rec.warn_yn := 'N';
17179 END IF;
17180
17181 IF (l_jurisdiction IS NOT NULL) THEN
17182 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17183 l_rulv_rec.dnz_chr_id := p_chr_id;
17184 l_rulv_rec.rule_information5 := l_jurisdiction;
17185 l_rulv_rec.rule_information_category := 'LAFLLN';
17186 l_rulv_rec.std_template_yn := 'N';
17187 l_rulv_rec.warn_yn := 'N';
17188 END IF;
17189
17190 IF (l_sub_jurisdiction IS NOT NULL) THEN
17191 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17192 l_rulv_rec.dnz_chr_id := p_chr_id;
17193 l_rulv_rec.rule_information6 := l_sub_jurisdiction;
17194 l_rulv_rec.rule_information_category := 'LAFLLN';
17195 l_rulv_rec.std_template_yn := 'N';
17196 l_rulv_rec.warn_yn := 'N';
17197 END IF;
17198
17199 IF (l_lien_expiration_date IS NOT NULL) THEN
17200 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17201 l_rulv_rec.dnz_chr_id := p_chr_id;
17202 l_rulv_rec.rule_information7 := l_lien_expiration_date;
17203 l_rulv_rec.rule_information_category := 'LAFLLN';
17204 l_rulv_rec.std_template_yn := 'N';
17205 l_rulv_rec.warn_yn := 'N';
17206 END IF;
17207
17208 IF (l_lien_continuation_number IS NOT NULL) THEN
17209 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17210 l_rulv_rec.dnz_chr_id := p_chr_id;
17211 l_rulv_rec.rule_information8 := l_lien_continuation_number;
17212 l_rulv_rec.rule_information_category := 'LAFLLN';
17213 l_rulv_rec.std_template_yn := 'N';
17214 l_rulv_rec.warn_yn := 'N';
17215 END IF;
17216
17217 IF (l_lien_continuation_date IS NOT NULL) THEN
17218 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17219 l_rulv_rec.dnz_chr_id := p_chr_id;
17220 l_rulv_rec.rule_information9 := l_lien_continuation_date;
17221 l_rulv_rec.rule_information_category := 'LAFLLN';
17222 l_rulv_rec.std_template_yn := 'N';
17223 l_rulv_rec.warn_yn := 'N';
17224 END IF;
17225
17226 IF (l_lien_holder_id IS NOT NULL) THEN
17227 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17228 l_rulv_rec.dnz_chr_id := p_chr_id;
17229 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
17230 l_rulv_rec.object1_id1 := l_lien_holder_id;
17231 l_rulv_rec.object1_id2 := '#';
17232 l_rulv_rec.rule_information_category := 'LAFLLN';
17233 l_rulv_rec.std_template_yn := 'N';
17234 l_rulv_rec.warn_yn := 'N';
17235 END IF;
17236
17237 create_rule_group_and_rule(
17238 x_return_status => x_return_status,
17239 x_msg_count => x_msg_count,
17240 x_msg_data => x_msg_data,
17241 p_rgp_id => l_rgp_id,
17242 p_rgpv_rec => l_rgpv_rec,
17243 p_rulv_rec => l_rulv_rec,
17244 x_rgpv_rec => x_rgpv_rec,
17245 x_rulv_rec => x_rulv_rec
17246 );
17247
17248 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17249 raise header_rule_failed;
17250 END IF;
17251
17252 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17253 l_rgp_id := x_rgpv_rec.id;
17254 END IF;
17255 debug_message('------>Rule: LAAFLG/LAFLLN processed');
17256 l_rulv_rec := NULL;
17257
17258 l_title_type := p_header_rec.title_type ;
17259 l_title_issuer_name := p_header_rec.title_issuer_name ;
17260 l_title_issuer_id := p_header_rec.title_issuer_id ;
17261 l_title_date := get_canonicaL_date(p_header_rec.title_date);
17262 l_title_number := p_header_rec.title_number ;
17263 l_registration_number := p_header_rec.registration_number ;
17264 l_location := p_header_rec.location ;
17265 l_title_custodian_name := p_header_rec.title_custodian_name ;
17266 l_title_custodian_id := p_header_rec.title_custodian_id ;
17267 l_payee_site := p_header_rec.payee_site ;
17268 l_registration_location := p_header_rec.registration_location ;
17269 l_reg_expiration_date := get_canonicaL_date(p_header_rec.reg_expiration_date);
17270
17271 x_title_issuer_id := NULL;
17272 IF (l_title_issuer_name IS NOT NULL
17273 OR
17274 l_title_issuer_id IS NOT NULL) THEN
17275
17276 get_party_id(
17277 x_return_status => x_return_status,
17278 x_msg_count => x_msg_count,
17279 x_msg_data => x_msg_data,
17280 p_contract_number => p_header_rec.contract_number_old,
17281 p_line_number => NULL,
17282 p_party_id => l_title_issuer_id,
17283 p_party_number => l_title_issuer_name,
17284 x_party_id => x_title_issuer_id
17285 );
17286
17287 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17288 RAISE header_rule_failed;
17289 END IF;
17290 END IF;
17291
17292 x_title_custodian_id := NULL;
17293 IF (l_title_custodian_name IS NOT NULL
17294 OR
17295 l_title_custodian_id IS NOT NULL) THEN
17296
17297 get_party_id(
17298 x_return_status => x_return_status,
17299 x_msg_count => x_msg_count,
17300 x_msg_data => x_msg_data,
17301 p_contract_number => p_header_rec.contract_number_old,
17302 p_line_number => NULL,
17303 p_party_id => l_title_custodian_id,
17304 p_party_number => l_title_custodian_name,
17305 x_party_id => x_title_custodian_id
17306 );
17307
17308 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17309 RAISE header_rule_failed;
17310 END IF;
17311 END IF;
17312
17313 IF (l_title_type IS NULL
17314 OR
17315 x_title_issuer_id IS NULL
17316 OR
17317 l_title_date IS NULL
17318 OR
17319 l_title_number IS NULL
17320 OR
17321 l_registration_number IS NULL
17322 OR
17323 l_location IS NULL
17324 OR
17325 x_title_custodian_id IS NULL
17326 OR
17327 l_payee_site IS NULL
17328 OR
17329 l_registration_location IS NULL
17330 OR
17331 l_reg_expiration_date IS NULL
17332 AND
17333 p_header_rec.template_number IS NOT NULL) THEN
17334 get_contract_rules(
17335 x_return_status => x_return_status,
17336 x_msg_count => x_msg_count,
17337 x_msg_data => x_msg_data,
17338 p_chr_id => p_template_id,
17339 p_cle_id => NULL,
17340 p_rgd_code => 'LAAFLG',
17341 p_rule_code => 'LAFLTL',
17342 x_rulv_tbl => l_rulv_tbl,
17343 x_rule_count => l_rule_count
17344 );
17345
17346 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17347 RAISE header_rule_failed;
17348 END IF;
17349
17350 IF (l_rule_count > 0) THEN
17351 l_title_type := NVL(l_title_type, l_rulv_tbl(1).rule_information1);
17352 l_title_issuer_id := NVL(x_title_issuer_id, l_rulv_tbl(1).object1_id1);
17353 l_title_date := NVL(l_title_date, l_rulv_tbl(1).rule_information2);
17354 l_title_number := NVL(l_title_number, l_rulv_tbl(1).rule_information3);
17355 l_registration_number := NVL(l_registration_number, l_rulv_tbl(1).rule_information4);
17356 l_location := NVL(l_location, l_rulv_tbl(1).rule_information5);
17357 l_title_custodian_id := NVL(x_title_custodian_id, l_rulv_tbl(1).object2_id1);
17358 l_payee_site := NVL(l_payee_site, l_rulv_tbl(1).rule_information6);
17359 l_registration_location := NVL(l_registration_location, l_rulv_tbl(1).rule_information7);
17360 l_reg_expiration_date := NVL(l_reg_expiration_date, l_rulv_tbl(1).rule_information8);
17361 END IF;
17362 END IF;
17363
17364 IF (l_title_type IS NOT NULL) THEN
17365 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17366 l_rulv_rec.dnz_chr_id := p_chr_id;
17367 l_rulv_rec.rule_information1 := l_title_type;
17368 l_rulv_rec.rule_information_category := 'LAFLTL';
17369 l_rulv_rec.std_template_yn := 'N';
17370 l_rulv_rec.warn_yn := 'N';
17371 END IF;
17372
17373 IF (l_title_date IS NOT NULL) THEN
17374 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17375 l_rulv_rec.dnz_chr_id := p_chr_id;
17376 l_rulv_rec.rule_information2 := l_title_date;
17377 l_rulv_rec.rule_information_category := 'LAFLTL';
17378 l_rulv_rec.std_template_yn := 'N';
17379 l_rulv_rec.warn_yn := 'N';
17380 END IF;
17381
17382 IF (l_title_number IS NOT NULL) THEN
17383 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17384 l_rulv_rec.dnz_chr_id := p_chr_id;
17385 l_rulv_rec.rule_information3 := l_title_number;
17386 l_rulv_rec.rule_information_category := 'LAFLTL';
17387 l_rulv_rec.std_template_yn := 'N';
17388 l_rulv_rec.warn_yn := 'N';
17389 END IF;
17390
17391 IF (l_registration_number IS NOT NULL) THEN
17392 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17393 l_rulv_rec.dnz_chr_id := p_chr_id;
17394 l_rulv_rec.rule_information4 := l_registration_number;
17395 l_rulv_rec.rule_information_category := 'LAFLTL';
17396 l_rulv_rec.std_template_yn := 'N';
17397 l_rulv_rec.warn_yn := 'N';
17398 END IF;
17399
17400 IF (l_location IS NOT NULL) THEN
17401 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17402 l_rulv_rec.dnz_chr_id := p_chr_id;
17403 l_rulv_rec.rule_information5 := l_location;
17404 l_rulv_rec.rule_information_category := 'LAFLTL';
17405 l_rulv_rec.std_template_yn := 'N';
17406 l_rulv_rec.warn_yn := 'N';
17407 END IF;
17408
17409 IF (l_payee_site IS NOT NULL) THEN
17410 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17411 l_rulv_rec.dnz_chr_id := p_chr_id;
17412 l_rulv_rec.rule_information6 := l_payee_site;
17413 l_rulv_rec.rule_information_category := 'LAFLTL';
17414 l_rulv_rec.std_template_yn := 'N';
17415 l_rulv_rec.warn_yn := 'N';
17416 END IF;
17417
17418 IF (l_registration_location IS NOT NULL) THEN
17419 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17420 l_rulv_rec.dnz_chr_id := p_chr_id;
17421 l_rulv_rec.rule_information7 := l_registration_location;
17422 l_rulv_rec.rule_information_category := 'LAFLTL';
17423 l_rulv_rec.std_template_yn := 'N';
17424 l_rulv_rec.warn_yn := 'N';
17425 END IF;
17426
17427 IF (l_reg_expiration_date IS NOT NULL) THEN
17428 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17429 l_rulv_rec.dnz_chr_id := p_chr_id;
17430 l_rulv_rec.rule_information8 := l_reg_expiration_date;
17431 l_rulv_rec.rule_information_category := 'LAFLTL';
17432 l_rulv_rec.std_template_yn := 'N';
17433 l_rulv_rec.warn_yn := 'N';
17434 END IF;
17435
17436 IF (l_title_issuer_id IS NOT NULL) THEN
17437 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17438 l_rulv_rec.dnz_chr_id := p_chr_id;
17439 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
17440 l_rulv_rec.object1_id1 := x_title_issuer_id;
17441 l_rulv_rec.object1_id2 := '#';
17442 l_rulv_rec.rule_information_category := 'LAFLTL';
17443 l_rulv_rec.std_template_yn := 'N';
17444 l_rulv_rec.warn_yn := 'N';
17445 END IF;
17446
17447 IF (l_title_custodian_id IS NOT NULL) THEN
17448 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17449 l_rulv_rec.dnz_chr_id := p_chr_id;
17450 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
17451 l_rulv_rec.object2_id1 := x_title_custodian_id;
17452 l_rulv_rec.object2_id2 := '#';
17453 l_rulv_rec.rule_information_category := 'LAFLTL';
17454 l_rulv_rec.std_template_yn := 'N';
17455 l_rulv_rec.warn_yn := 'N';
17456 END IF;
17457
17458 create_rule_group_and_rule(
17459 x_return_status => x_return_status,
17460 x_msg_count => x_msg_count,
17461 x_msg_data => x_msg_data,
17462 p_rgp_id => l_rgp_id,
17463 p_rgpv_rec => l_rgpv_rec,
17464 p_rulv_rec => l_rulv_rec,
17465 x_rgpv_rec => x_rgpv_rec,
17466 x_rulv_rec => x_rulv_rec
17467 );
17468
17469 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17470 raise header_rule_failed;
17471 END IF;
17472
17473 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17474 l_rgp_id := x_rgpv_rec.id;
17475 END IF;
17476 debug_message('------>Rule: LAAFLG/LAFLTL processed');
17477
17478 /*
17479 * Adding Contract Portfolio Rules at contract header
17480 *
17481 */
17482 -- Rule Group AMCOPO
17483
17484 l_rgpv_rec := NULL;
17485 l_rgp_id := NULL;
17486 l_rgpv_rec.rgd_code := 'AMCOPO';
17487 l_rgpv_rec.chr_id := p_chr_id;
17488 l_rgpv_rec.dnz_chr_id := p_chr_id;
17489 l_rgpv_rec.cle_id := NULL;
17490 l_rgpv_rec.rgp_type := 'KRG';
17491
17492 l_rulv_rec := NULL;
17493
17494 l_prtfl_approval_req := p_header_rec.prtfl_approval_req;
17495
17496 IF (l_prtfl_approval_req IS NULL
17497 AND
17498 p_header_rec.template_number IS NOT NULL) THEN
17499 get_contract_rules(
17500 x_return_status => x_return_status,
17501 x_msg_count => x_msg_count,
17502 x_msg_data => x_msg_data,
17503 p_chr_id => p_template_id,
17504 p_cle_id => NULL,
17505 p_rgd_code => 'AMCOPO',
17506 p_rule_code => 'AMAPRE',
17507 x_rulv_tbl => l_rulv_tbl,
17508 x_rule_count => l_rule_count
17509 );
17510
17511 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17512 RAISE header_rule_failed;
17513 END IF;
17514
17515 IF (l_rule_count > 0) THEN
17516 l_prtfl_approval_req := NVL(l_prtfl_approval_req, l_rulv_tbl(1).rule_information1);
17517 END IF;
17518 END IF;
17519
17520 IF (l_prtfl_approval_req IS NOT NULL) THEN
17521 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17522 l_rulv_rec.dnz_chr_id := p_chr_id;
17523 l_rulv_rec.rule_information1 := l_prtfl_approval_req;
17524 l_rulv_rec.rule_information_category := 'AMAPRE';
17525 l_rulv_rec.std_template_yn := 'N';
17526 l_rulv_rec.warn_yn := 'N';
17527 END IF;
17528
17529 create_rule_group_and_rule(
17530 x_return_status => x_return_status,
17531 x_msg_count => x_msg_count,
17532 x_msg_data => x_msg_data,
17533 p_rgp_id => l_rgp_id,
17534 p_rgpv_rec => l_rgpv_rec,
17535 p_rulv_rec => l_rulv_rec,
17536 x_rgpv_rec => x_rgpv_rec,
17537 x_rulv_rec => x_rulv_rec
17538 );
17539
17540 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17541 raise header_rule_failed;
17542 END IF;
17543
17544 debug_message('------>Rule: AMCOPO/AMAPRE processed');
17545
17546 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17547 l_rgp_id := x_rgpv_rec.id;
17548 END IF;
17549 l_rulv_rec := NULL;
17550
17551 l_prtfl_assgn_group := p_header_rec.prtfl_assgn_group;
17552
17553 IF (l_prtfl_assgn_group IS NULL
17554 AND
17555 p_header_rec.template_number IS NOT NULL) THEN
17556 get_contract_rules(
17557 x_return_status => x_return_status,
17558 x_msg_count => x_msg_count,
17559 x_msg_data => x_msg_data,
17560 p_chr_id => p_template_id,
17561 p_cle_id => NULL,
17562 p_rgd_code => 'AMCOPO',
17563 p_rule_code => 'AMPRAG',
17564 x_rulv_tbl => l_rulv_tbl,
17565 x_rule_count => l_rule_count
17566 );
17567
17568 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17569 RAISE header_rule_failed;
17570 END IF;
17571
17572 IF (l_rule_count > 0) THEN
17573 l_prtfl_assgn_group := NVL(l_prtfl_assgn_group, l_rulv_tbl(1).rule_information1);
17574 END IF;
17575 END IF;
17576
17577 IF (l_prtfl_assgn_group IS NOT NULL) THEN
17578 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17579 l_rulv_rec.dnz_chr_id := p_chr_id;
17580 l_rulv_rec.rule_information1 := l_prtfl_assgn_group;
17581 l_rulv_rec.rule_information_category := 'AMPRAG';
17582 l_rulv_rec.std_template_yn := 'N';
17583 l_rulv_rec.warn_yn := 'N';
17584 END IF;
17585
17586 create_rule_group_and_rule(
17587 x_return_status => x_return_status,
17588 x_msg_count => x_msg_count,
17589 x_msg_data => x_msg_data,
17590 p_rgp_id => l_rgp_id,
17591 p_rgpv_rec => l_rgpv_rec,
17592 p_rulv_rec => l_rulv_rec,
17593 x_rgpv_rec => x_rgpv_rec,
17594 x_rulv_rec => x_rulv_rec
17595 );
17596
17597 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17598 raise header_rule_failed;
17599 END IF;
17600
17601 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17602 l_rgp_id := x_rgpv_rec.id;
17603 END IF;
17604 debug_message('------>Rule: AMCOPO/AMPRAG processed');
17605 l_rulv_rec := NULL;
17606
17607 l_prtfl_budget_amt_opt := p_header_rec.prtfl_budget_amt_opt;
17608 l_prtfl_budget_fixed_amt := TO_CHAR(p_header_rec.prtfl_budget_fixed_amt);
17609 l_prtfl_budget_amt_formula := p_header_rec.prtfl_budget_amt_formula;
17610
17611 IF (l_prtfl_budget_amt_opt IS NULL
17612 OR
17613 l_prtfl_budget_fixed_amt IS NULL
17614 OR
17615 l_prtfl_budget_amt_formula IS NULL
17616 AND
17617 p_header_rec.template_number IS NOT NULL) THEN
17618 get_contract_rules(
17619 x_return_status => x_return_status,
17620 x_msg_count => x_msg_count,
17621 x_msg_data => x_msg_data,
17622 p_chr_id => p_template_id,
17623 p_cle_id => NULL,
17624 p_rgd_code => 'AMCOPO',
17625 p_rule_code => 'AMPRBA',
17626 x_rulv_tbl => l_rulv_tbl,
17627 x_rule_count => l_rule_count
17628 );
17629
17630 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17631 RAISE header_rule_failed;
17632 END IF;
17633
17634 IF (l_rule_count > 0) THEN
17635 l_prtfl_budget_amt_opt := NVL(l_prtfl_budget_amt_opt, l_rulv_tbl(1).rule_information1);
17636 l_prtfl_budget_fixed_amt := NVL(l_prtfl_budget_fixed_amt, l_rulv_tbl(1).rule_information2);
17637 l_prtfl_budget_amt_formula := NVL(l_prtfl_budget_amt_formula, l_rulv_tbl(1).rule_information3);
17638 END IF;
17639 END IF;
17640
17641 IF (l_prtfl_budget_amt_opt = 'NOT_APPLICABLE') THEN -- 4912795
17642 l_prtfl_budget_fixed_amt := NULL;
17643 l_prtfl_budget_amt_formula := NULL;
17644 END IF;
17645
17646 IF (l_prtfl_budget_amt_opt IS NOT NULL) THEN
17647 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17648 l_rulv_rec.dnz_chr_id := p_chr_id;
17649 l_rulv_rec.rule_information1 := l_prtfl_budget_amt_opt;
17650 l_rulv_rec.rule_information_category := 'AMPRBA';
17651 l_rulv_rec.std_template_yn := 'N';
17652 l_rulv_rec.warn_yn := 'N';
17653 END IF;
17654
17655 IF (l_prtfl_budget_fixed_amt IS NOT NULL) THEN
17656 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17657 l_rulv_rec.dnz_chr_id := p_chr_id;
17658 l_rulv_rec.rule_information2 := l_prtfl_budget_fixed_amt;
17659 l_rulv_rec.rule_information_category := 'AMPRBA';
17660 l_rulv_rec.std_template_yn := 'N';
17661 l_rulv_rec.warn_yn := 'N';
17662 END IF;
17663
17664 IF (l_prtfl_budget_amt_formula IS NOT NULL) THEN
17665 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17666 l_rulv_rec.dnz_chr_id := p_chr_id;
17667 l_rulv_rec.rule_information3 := l_prtfl_budget_amt_formula;
17668 l_rulv_rec.rule_information_category := 'AMPRBA';
17669 l_rulv_rec.std_template_yn := 'N';
17670 l_rulv_rec.warn_yn := 'N';
17671 END IF;
17672
17673 create_rule_group_and_rule(
17674 x_return_status => x_return_status,
17675 x_msg_count => x_msg_count,
17676 x_msg_data => x_msg_data,
17677 p_rgp_id => l_rgp_id,
17678 p_rgpv_rec => l_rgpv_rec,
17679 p_rulv_rec => l_rulv_rec,
17680 x_rgpv_rec => x_rgpv_rec,
17681 x_rulv_rec => x_rulv_rec
17682 );
17683
17684 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17685 raise header_rule_failed;
17686 END IF;
17687
17688 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17689 l_rgp_id := x_rgpv_rec.id;
17690 END IF;
17691 debug_message('------>Rule: AMCOPO/AMPRBA processed');
17692 l_rulv_rec := NULL;
17693
17694 l_prtfl_days_from_con_expr := p_header_rec.prtfl_days_from_con_expr;
17695
17696 IF (l_prtfl_days_from_con_expr IS NULL
17697 AND
17698 p_header_rec.template_number IS NOT NULL) THEN
17699 get_contract_rules(
17700 x_return_status => x_return_status,
17701 x_msg_count => x_msg_count,
17702 x_msg_data => x_msg_data,
17703 p_chr_id => p_template_id,
17704 p_cle_id => NULL,
17705 p_rgd_code => 'AMCOPO',
17706 p_rule_code => 'AMPRED',
17707 x_rulv_tbl => l_rulv_tbl,
17708 x_rule_count => l_rule_count
17709 );
17710
17711 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17712 RAISE header_rule_failed;
17713 END IF;
17714
17715 IF (l_rule_count > 0) THEN
17716 l_prtfl_days_from_con_expr := NVL(l_prtfl_days_from_con_expr, l_rulv_tbl(1).rule_information1);
17717 END IF;
17718 END IF;
17719
17720 IF (l_prtfl_days_from_con_expr IS NOT NULL) THEN
17721 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17722 l_rulv_rec.dnz_chr_id := p_chr_id;
17723 l_rulv_rec.rule_information1 := l_prtfl_days_from_con_expr;
17724 l_rulv_rec.rule_information_category := 'AMPRED';
17725 l_rulv_rec.std_template_yn := 'N';
17726 l_rulv_rec.warn_yn := 'N';
17727 END IF;
17728
17729 create_rule_group_and_rule(
17730 x_return_status => x_return_status,
17731 x_msg_count => x_msg_count,
17732 x_msg_data => x_msg_data,
17733 p_rgp_id => l_rgp_id,
17734 p_rgpv_rec => l_rgpv_rec,
17735 p_rulv_rec => l_rulv_rec,
17736 x_rgpv_rec => x_rgpv_rec,
17737 x_rulv_rec => x_rulv_rec
17738 );
17739
17740 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17741 raise header_rule_failed;
17742 END IF;
17743
17744 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17745 l_rgp_id := x_rgpv_rec.id;
17746 END IF;
17747 l_rulv_rec := NULL;
17748
17749 l_prtfl_strategy := p_header_rec.prtfl_strategy;
17750
17751 IF (l_prtfl_strategy IS NULL
17752 AND
17753 p_header_rec.template_number IS NOT NULL) THEN
17754 get_contract_rules(
17755 x_return_status => x_return_status,
17756 x_msg_count => x_msg_count,
17757 x_msg_data => x_msg_data,
17758 p_chr_id => p_template_id,
17759 p_cle_id => NULL,
17760 p_rgd_code => 'AMCOPO',
17761 p_rule_code => 'AMPRST',
17762 x_rulv_tbl => l_rulv_tbl,
17763 x_rule_count => l_rule_count
17764 );
17765
17766 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17767 RAISE header_rule_failed;
17768 END IF;
17769
17770 IF (l_rule_count > 0) THEN
17771 l_prtfl_strategy := NVL(l_prtfl_strategy, l_rulv_tbl(1).rule_information1);
17772 END IF;
17773 END IF;
17774
17775 IF (l_prtfl_strategy IS NOT NULL) THEN
17776 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17777 l_rulv_rec.dnz_chr_id := p_chr_id;
17778 l_rulv_rec.rule_information1 := l_prtfl_strategy;
17779 l_rulv_rec.rule_information_category := 'AMPRST';
17780 l_rulv_rec.std_template_yn := 'N';
17781 l_rulv_rec.warn_yn := 'N';
17782 END IF;
17783
17784 create_rule_group_and_rule(
17785 x_return_status => x_return_status,
17786 x_msg_count => x_msg_count,
17787 x_msg_data => x_msg_data,
17788 p_rgp_id => l_rgp_id,
17789 p_rgpv_rec => l_rgpv_rec,
17790 p_rulv_rec => l_rulv_rec,
17791 x_rgpv_rec => x_rgpv_rec,
17792 x_rulv_rec => x_rulv_rec
17793 );
17794
17795 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17796 raise header_rule_failed;
17797 END IF;
17798
17799 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17800 l_rgp_id := x_rgpv_rec.id;
17801 END IF;
17802 debug_message('------>Rule: AMCOPO/AMPRST processed');
17803 l_rulv_rec := NULL;
17804
17805 /*
17806 * Adding Taxes and Duties rule at contract header
17807 *
17808 */
17809 -- Rule Group LAHDTX
17810
17811 l_rgpv_rec := NULL;
17812 l_rgp_id := NULL;
17813 l_rgpv_rec.rgd_code := 'LAHDTX';
17814 l_rgpv_rec.chr_id := p_chr_id;
17815 l_rgpv_rec.dnz_chr_id := p_chr_id;
17816 l_rgpv_rec.cle_id := NULL;
17817 l_rgpv_rec.rgp_type := 'KRG';
17818
17819 l_rulv_rec := NULL;
17820
17821 l_prop_tax_applicable := p_header_rec.prop_tax_applicable;
17822 l_prop_tax_lease_rep := p_header_rec.prop_tax_lease_rep;
17823 -- Added by rravikir (Fix for Bug 3947959)
17824 l_prop_tax_bill_method := p_header_rec.prop_tax_bill_method;
17825 -- End
17826
17827 IF (l_prop_tax_applicable IS NULL
17828 OR
17829 l_prop_tax_lease_rep IS NULL
17830 -- Added by rravikir (Fix for Bug 3947959)
17831 OR
17832 l_prop_tax_bill_method IS NULL
17833 -- End
17834 AND
17835 p_header_rec.template_number IS NOT NULL) THEN
17836 get_contract_rules(
17837 x_return_status => x_return_status,
17838 x_msg_count => x_msg_count,
17839 x_msg_data => x_msg_data,
17840 p_chr_id => p_template_id,
17841 p_cle_id => NULL,
17842 p_rgd_code => 'LAHDTX',
17843 p_rule_code => 'LAPRTX',
17844 x_rulv_tbl => l_rulv_tbl,
17845 x_rule_count => l_rule_count
17846 );
17847
17848 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17849 RAISE header_rule_failed;
17850 END IF;
17851
17852 IF (l_rule_count > 0) THEN
17853 l_prop_tax_applicable := NVL(l_prop_tax_applicable, l_rulv_tbl(1).rule_information1);
17854 l_prop_tax_lease_rep := NVL(l_prop_tax_lease_rep, l_rulv_tbl(1).rule_information2);
17855 -- Added by rravikir (Fix for Bug 3947959)
17856 l_prop_tax_bill_method := NVL(l_prop_tax_bill_method, l_rulv_tbl(1).rule_information3);
17857 -- End
17858 END IF;
17859 END IF;
17860
17861 IF (l_prop_tax_applicable IS NOT NULL) THEN
17862 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17863 l_rulv_rec.dnz_chr_id := p_chr_id;
17864 l_rulv_rec.rule_information1 := l_prop_tax_applicable;
17865 l_rulv_rec.rule_information_category := 'LAPRTX';
17866 l_rulv_rec.std_template_yn := 'N';
17867 l_rulv_rec.warn_yn := 'N';
17868 END IF;
17869
17870 IF (l_prop_tax_lease_rep IS NOT NULL) THEN
17871 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17872 l_rulv_rec.dnz_chr_id := p_chr_id;
17873 l_rulv_rec.rule_information2 := l_prop_tax_lease_rep;
17874 l_rulv_rec.rule_information_category := 'LAPRTX';
17875 l_rulv_rec.std_template_yn := 'N';
17876 l_rulv_rec.warn_yn := 'N';
17877 END IF;
17878
17879 -- Added by rravikir (Fix for Bug 3947959)
17880 IF (l_prop_tax_bill_method IS NOT NULL) THEN
17881 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17882 l_rulv_rec.dnz_chr_id := p_chr_id;
17883 l_rulv_rec.rule_information3 := l_prop_tax_bill_method;
17884 l_rulv_rec.rule_information_category := 'LAPRTX';
17885 l_rulv_rec.std_template_yn := 'N';
17886 l_rulv_rec.warn_yn := 'N';
17887 END IF;
17888 -- End
17889 create_rule_group_and_rule(
17890 x_return_status => x_return_status,
17891 x_msg_count => x_msg_count,
17892 x_msg_data => x_msg_data,
17893 p_rgp_id => l_rgp_id,
17894 p_rgpv_rec => l_rgpv_rec,
17895 p_rulv_rec => l_rulv_rec,
17896 x_rgpv_rec => x_rgpv_rec,
17897 x_rulv_rec => x_rulv_rec
17898 );
17899
17900 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17901 raise header_rule_failed;
17902 END IF;
17903
17904 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17905 l_rgp_id := x_rgpv_rec.id;
17906 END IF;
17907 debug_message('------>Rule: LAHDTX/LAPRTX processed');
17908 l_rulv_rec := NULL;
17909
17910 l_mex_tax_sub_basic_wthld := p_header_rec.mex_tax_sub_basic_wthld;
17911 l_mex_tax_calc_formula := p_header_rec.mex_tax_calc_formula;
17912
17913
17914 IF (l_mex_tax_sub_basic_wthld IS NULL
17915 OR
17916 l_mex_tax_calc_formula IS NULL
17917 AND
17918 p_header_rec.template_number IS NOT NULL) THEN
17919 get_contract_rules(
17920 x_return_status => x_return_status,
17921 x_msg_count => x_msg_count,
17922 x_msg_data => x_msg_data,
17923 p_chr_id => p_template_id,
17924 p_cle_id => NULL,
17925 p_rgd_code => 'LAHDTX',
17926 p_rule_code => 'LAMETX',
17927 x_rulv_tbl => l_rulv_tbl,
17928 x_rule_count => l_rule_count
17929 );
17930
17931 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17932 RAISE header_rule_failed;
17933 END IF;
17934
17935 IF (l_rule_count > 0) THEN
17936 l_mex_tax_sub_basic_wthld := NVL(l_mex_tax_sub_basic_wthld, l_rulv_tbl(1).rule_information1);
17937 l_mex_tax_calc_formula := NVL(l_mex_tax_calc_formula, l_rulv_tbl(1).rule_information2);
17938 END IF;
17939 END IF;
17940
17941 IF (l_mex_tax_sub_basic_wthld IS NOT NULL) THEN
17942 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17943 l_rulv_rec.dnz_chr_id := p_chr_id;
17944 l_rulv_rec.rule_information1 := l_mex_tax_sub_basic_wthld;
17945 l_rulv_rec.rule_information_category := 'LAMETX';
17946 l_rulv_rec.std_template_yn := 'N';
17947 l_rulv_rec.warn_yn := 'N';
17948 END IF;
17949
17950 IF (l_mex_tax_calc_formula IS NOT NULL) THEN
17951 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17952 l_rulv_rec.dnz_chr_id := p_chr_id;
17953 l_rulv_rec.rule_information2 := l_mex_tax_calc_formula;
17954 l_rulv_rec.rule_information_category := 'LAMETX';
17955 l_rulv_rec.std_template_yn := 'N';
17956 l_rulv_rec.warn_yn := 'N';
17957 END IF;
17958
17959 create_rule_group_and_rule(
17960 x_return_status => x_return_status,
17961 x_msg_count => x_msg_count,
17962 x_msg_data => x_msg_data,
17963 p_rgp_id => l_rgp_id,
17964 p_rgpv_rec => l_rgpv_rec,
17965 p_rulv_rec => l_rulv_rec,
17966 x_rgpv_rec => x_rgpv_rec,
17967 x_rulv_rec => x_rulv_rec
17968 );
17969
17970 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17971 raise header_rule_failed;
17972 END IF;
17973
17974 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17975 l_rgp_id := x_rgpv_rec.id;
17976 END IF;
17977 debug_message('------>Rule: LAHDTX/LAMETX processed');
17978 l_rulv_rec := NULL;
17979
17980 l_aus_tax_stamp_duty := p_header_rec.aus_tax_stamp_duty;
17981
17982 IF (l_aus_tax_stamp_duty IS NULL
17983 AND
17984 p_header_rec.template_number IS NOT NULL) THEN
17985 get_contract_rules(
17986 x_return_status => x_return_status,
17987 x_msg_count => x_msg_count,
17988 x_msg_data => x_msg_data,
17989 p_chr_id => p_template_id,
17990 p_cle_id => NULL,
17991 p_rgd_code => 'LAHDTX',
17992 p_rule_code => 'LAAUTX',
17993 x_rulv_tbl => l_rulv_tbl,
17994 x_rule_count => l_rule_count
17995 );
17996
17997 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17998 RAISE header_rule_failed;
17999 END IF;
18000
18001 IF (l_rule_count > 0) THEN
18002 l_aus_tax_stamp_duty := NVL(l_aus_tax_stamp_duty, l_rulv_tbl(1).rule_information1);
18003 END IF;
18004 END IF;
18005
18006 IF (l_aus_tax_stamp_duty IS NOT NULL) THEN
18007 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18008 l_rulv_rec.dnz_chr_id := p_chr_id;
18009 l_rulv_rec.rule_information1 := l_aus_tax_stamp_duty;
18010 l_rulv_rec.rule_information_category := 'LAAUTX';
18011 l_rulv_rec.std_template_yn := 'N';
18012 l_rulv_rec.warn_yn := 'N';
18013 END IF;
18014
18015 create_rule_group_and_rule(
18016 x_return_status => x_return_status,
18017 x_msg_count => x_msg_count,
18018 x_msg_data => x_msg_data,
18019 p_rgp_id => l_rgp_id,
18020 p_rgpv_rec => l_rgpv_rec,
18021 p_rulv_rec => l_rulv_rec,
18022 x_rgpv_rec => x_rgpv_rec,
18023 x_rulv_rec => x_rulv_rec
18024 );
18025
18026 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18027 raise header_rule_failed;
18028 END IF;
18029
18030 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
18031 l_rgp_id := x_rgpv_rec.id;
18032 END IF;
18033 debug_message('------>Rule: LAHDTX/LAAUTX processed');
18034 l_rulv_rec := NULL;
18035
18036 l_st_upd_lines_from_contract := p_header_rec.st_update_lines_from_contract;
18037 l_st_interest_disclosed := p_header_rec.st_interest_disclosed;
18038 l_st_transfer_of_title := p_header_rec.st_transfer_of_title;
18039 l_st_sale_and_lease_back := p_header_rec.st_sale_and_lease_back;
18040 l_st_purchase_of_lease := p_header_rec.st_purchase_of_lease;
18041 l_st_equipment_usage := p_header_rec.st_equipment_usage;
18042 l_st_equipment_age := p_header_rec.st_equipment_age;
18043
18044
18045 IF (l_st_upd_lines_from_contract IS NULL
18046 OR
18047 l_st_interest_disclosed IS NULL
18048 OR
18049 l_st_transfer_of_title IS NULL
18050 OR
18051 l_st_sale_and_lease_back IS NULL
18052 OR
18053 l_st_purchase_of_lease IS NULL
18054 OR
18055 l_st_equipment_usage IS NULL
18056 OR
18057 l_st_equipment_age IS NULL
18058 AND
18059 p_header_rec.template_number IS NOT NULL) THEN
18060 get_contract_rules(
18061 x_return_status => x_return_status,
18062 x_msg_count => x_msg_count,
18063 x_msg_data => x_msg_data,
18064 p_chr_id => p_template_id,
18065 p_cle_id => NULL,
18066 p_rgd_code => 'LAHDTX',
18067 p_rule_code => 'LASTCL',
18068 x_rulv_tbl => l_rulv_tbl,
18069 x_rule_count => l_rule_count
18070 );
18071
18072 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18073 RAISE header_rule_failed;
18074 END IF;
18075
18076 IF (l_rule_count > 0) THEN
18077 l_st_upd_lines_from_contract := NVL(l_st_upd_lines_from_contract, l_rulv_tbl(1).rule_information1);
18078 l_st_interest_disclosed := NVL(l_st_interest_disclosed, l_rulv_tbl(1).rule_information2);
18079 l_st_transfer_of_title := NVL(l_st_transfer_of_title, l_rulv_tbl(1).rule_information3);
18080 l_st_sale_and_lease_back := NVL(l_st_sale_and_lease_back, l_rulv_tbl(1).rule_information4);
18081 l_st_purchase_of_lease := NVL(l_st_purchase_of_lease, l_rulv_tbl(1).rule_information5);
18082 l_st_equipment_usage := NVL(l_st_equipment_usage, l_rulv_tbl(1).rule_information6);
18083 l_st_equipment_age := NVL(l_st_equipment_age, l_rulv_tbl(1).rule_information7);
18084 END IF;
18085 END IF;
18086
18087 IF (l_st_upd_lines_from_contract IS NOT NULL) THEN
18088 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18089 l_rulv_rec.dnz_chr_id := p_chr_id;
18090 l_rulv_rec.rule_information1 := l_st_upd_lines_from_contract;
18091 l_rulv_rec.rule_information_category := 'LASTCL';
18092 l_rulv_rec.std_template_yn := 'N';
18093 l_rulv_rec.warn_yn := 'N';
18094 END IF;
18095
18096 IF (l_st_interest_disclosed IS NOT NULL) THEN
18097 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18098 l_rulv_rec.dnz_chr_id := p_chr_id;
18099 l_rulv_rec.rule_information2 := l_st_interest_disclosed;
18100 l_rulv_rec.rule_information_category := 'LASTCL';
18101 l_rulv_rec.std_template_yn := 'N';
18102 l_rulv_rec.warn_yn := 'N';
18103 END IF;
18104
18105 IF (l_st_transfer_of_title IS NOT NULL) THEN
18106 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18107 l_rulv_rec.dnz_chr_id := p_chr_id;
18108 l_rulv_rec.rule_information3 := l_st_transfer_of_title;
18109 l_rulv_rec.rule_information_category := 'LASTCL';
18110 l_rulv_rec.std_template_yn := 'N';
18111 l_rulv_rec.warn_yn := 'N';
18112 END IF;
18113
18114 IF (l_st_sale_and_lease_back IS NOT NULL) THEN
18115 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18116 l_rulv_rec.dnz_chr_id := p_chr_id;
18117 l_rulv_rec.rule_information4 := l_st_sale_and_lease_back;
18118 l_rulv_rec.rule_information_category := 'LASTCL';
18119 l_rulv_rec.std_template_yn := 'N';
18120 l_rulv_rec.warn_yn := 'N';
18121 END IF;
18122
18123 IF (l_st_purchase_of_lease IS NOT NULL) THEN
18124 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18125 l_rulv_rec.dnz_chr_id := p_chr_id;
18126 l_rulv_rec.rule_information5 := l_st_purchase_of_lease;
18127 l_rulv_rec.rule_information_category := 'LASTCL';
18128 l_rulv_rec.std_template_yn := 'N';
18129 l_rulv_rec.warn_yn := 'N';
18130 END IF;
18131
18132 IF (l_st_equipment_usage IS NOT NULL) THEN
18133 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18134 l_rulv_rec.dnz_chr_id := p_chr_id;
18135 l_rulv_rec.rule_information6 := l_st_equipment_usage;
18136 l_rulv_rec.rule_information_category := 'LASTCL';
18137 l_rulv_rec.std_template_yn := 'N';
18138 l_rulv_rec.warn_yn := 'N';
18139 END IF;
18140
18141 IF (l_st_equipment_age IS NOT NULL) THEN
18142 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18143 l_rulv_rec.dnz_chr_id := p_chr_id;
18144 l_rulv_rec.rule_information7 := l_st_equipment_age;
18145 l_rulv_rec.rule_information_category := 'LASTCL';
18146 l_rulv_rec.std_template_yn := 'N';
18147 l_rulv_rec.warn_yn := 'N';
18148 END IF;
18149
18150 create_rule_group_and_rule(
18151 x_return_status => x_return_status,
18152 x_msg_count => x_msg_count,
18153 x_msg_data => x_msg_data,
18154 p_rgp_id => l_rgp_id,
18155 p_rgpv_rec => l_rgpv_rec,
18156 p_rulv_rec => l_rulv_rec,
18157 x_rgpv_rec => x_rgpv_rec,
18158 x_rulv_rec => x_rulv_rec
18159 );
18160
18161 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18162 raise header_rule_failed;
18163 END IF;
18164
18165 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
18166 l_rgp_id := x_rgpv_rec.id;
18167 END IF;
18168 debug_message('------>Rule: LAHDTX/LASTCL processed');
18169 l_rulv_rec := NULL;
18170
18171 l_st_asset_upfront_tax := p_header_rec.st_asset_upfront_tax;
18172 l_st_bill_stream_type_code := p_header_rec.st_bill_stream_type_code;
18173 l_st_bill_stream_purpose_code := p_header_rec.st_bill_stream_purpose_code;
18174 l_st_bill_stream_id := NULL;
18175 l_st_fin_stream_type_code := p_header_rec.st_fin_stream_type_code;
18176 l_st_fin_stream_purpose_code := p_header_rec.st_fin_stream_purpose_code;
18177 l_st_fin_stream_id := NULL;
18178 l_st_cap_stream_type_code := p_header_rec.st_cap_stream_type_code;
18179 l_st_cap_stream_purpose_code := p_header_rec.st_cap_stream_purpose_code;
18180 l_st_cap_stream_id := NULL;
18181
18182 --R12B ebTax change
18183 l_st_tax_schedule_applies_flag := p_header_rec.st_tax_schedule_applies_flag;
18184
18185 IF (l_st_bill_stream_type_code IS NOT NULL
18186 AND
18187 l_st_bill_stream_purpose_code IS NOT NULL) THEN
18188 check_stream_type_code(
18189 x_return_status => x_return_status,
18190 x_msg_count => x_msg_count,
18191 x_msg_data => x_msg_data,
18192 p_stream_type_code => l_st_bill_stream_type_code,
18193 p_stream_purpose => l_st_bill_stream_purpose_code,
18194 x_id1 => l_id1,
18195 x_name => l_st_stream_name
18196 );
18197 l_st_bill_stream_id := l_id1;
18198
18199 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18200 okl_api.set_message(
18201 G_APP_NAME,
18202 G_INVALID_VALUE,
18203 'CONTRACT_NUM',
18204 p_header_rec.contract_number_old,
18205 'COL_NAME',
18206 'ST_BILL_STREAM_TYPE_CODE, ST_BILL_STREAM_PURPOSE_CODE',
18207 'COL_VALUE',
18208 l_st_bill_stream_type_code||', '||l_st_bill_stream_purpose_code
18209 );
18210 x_return_status := OKL_API.G_RET_STS_ERROR;
18211 RAISE header_rule_failed;
18212 END IF;
18213 END IF;
18214
18215 IF (l_st_fin_stream_type_code IS NOT NULL
18216 AND
18217 l_st_fin_stream_purpose_code IS NOT NULL) THEN
18218 check_stream_type_code(
18219 x_return_status => x_return_status,
18220 x_msg_count => x_msg_count,
18221 x_msg_data => x_msg_data,
18222 p_stream_type_code => l_st_fin_stream_type_code,
18223 p_stream_purpose => l_st_fin_stream_purpose_code,
18224 x_id1 => l_id1,
18225 x_name => l_st_stream_name
18226 );
18227 l_st_fin_stream_id := l_id1;
18228
18229 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18230 okl_api.set_message(
18231 G_APP_NAME,
18232 G_INVALID_VALUE,
18233 'CONTRACT_NUM',
18234 p_header_rec.contract_number_old,
18235 'COL_NAME',
18236 'ST_FIN_STREAM_TYPE_CODE, ST_FIN_STREAM_PURPOSE_CODE',
18237 'COL_VALUE',
18238 l_st_fin_stream_type_code||', '||l_st_fin_stream_purpose_code
18239 );
18240 x_return_status := OKL_API.G_RET_STS_ERROR;
18241 RAISE header_rule_failed;
18242 END IF;
18243 END IF;
18244
18245 IF (l_st_cap_stream_type_code IS NOT NULL
18246 AND
18247 l_st_cap_stream_purpose_code IS NOT NULL) THEN
18248 check_stream_type_code(
18249 x_return_status => x_return_status,
18250 x_msg_count => x_msg_count,
18251 x_msg_data => x_msg_data,
18252 p_stream_type_code => l_st_cap_stream_type_code,
18253 p_stream_purpose => l_st_cap_stream_purpose_code,
18254 x_id1 => l_id1,
18255 x_name => l_st_stream_name
18256 );
18257 l_st_cap_stream_id := l_id1;
18258
18259 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18260 okl_api.set_message(
18261 G_APP_NAME,
18262 G_INVALID_VALUE,
18263 'CONTRACT_NUM',
18264 p_header_rec.contract_number_old,
18265 'COL_NAME',
18266 'ST_CAP_STREAM_TYPE_CODE, ST_CAP_STREAM_PURPOSE_CODE',
18267 'COL_VALUE',
18268 l_st_cap_stream_type_code||', '||l_st_cap_stream_purpose_code
18269 );
18270 x_return_status := OKL_API.G_RET_STS_ERROR;
18271 RAISE header_rule_failed;
18272 END IF;
18273 END IF;
18274
18275 IF (l_st_asset_upfront_tax IS NULL
18276 OR
18277 l_st_bill_stream_ID IS NULL
18278 OR
18279 l_st_fin_stream_ID IS NULL
18280 OR
18281 l_st_cap_stream_ID IS NULL
18282 OR
18283 l_st_tax_schedule_applies_flag is NULL -- R12B ebTax change
18284 AND
18285 p_header_rec.template_number IS NOT NULL) THEN
18286
18287 get_contract_rules(
18288 x_return_status => x_return_status,
18289 x_msg_count => x_msg_count,
18290 x_msg_data => x_msg_data,
18291 p_chr_id => p_template_id,
18292 p_cle_id => NULL,
18293 p_rgd_code => 'LAHDTX',
18294 p_rule_code => 'LASTPR',
18295 x_rulv_tbl => l_rulv_tbl,
18296 x_rule_count => l_rule_count
18297 );
18298
18299 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18300 RAISE header_rule_failed;
18301 END IF;
18302
18303 IF (l_rule_count > 0) THEN
18304 l_st_asset_upfront_tax := NVL(l_st_asset_upfront_tax, l_rulv_tbl(1).rule_information1);
18305 l_st_bill_stream_id := NVL(l_st_bill_stream_id, l_rulv_tbl(1).rule_information2);
18306 l_st_fin_stream_id := NVL(l_st_fin_stream_id, l_rulv_tbl(1).rule_information3);
18307 l_st_cap_stream_id := NVL(l_st_cap_stream_id, l_rulv_tbl(1).rule_information4);
18308 --R12B ebtax change
18309 l_st_tax_schedule_applies_flag := NVL(l_st_tax_schedule_applies_flag, l_rulv_tbl(1).rule_information5);
18310 END IF;
18311 END IF;
18312
18313 IF (l_st_asset_upfront_tax IS NOT NULL) THEN
18314 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18315 l_rulv_rec.dnz_chr_id := p_chr_id;
18316 l_rulv_rec.rule_information1 := l_st_asset_upfront_tax;
18317 l_rulv_rec.rule_information_category := 'LASTPR';
18318 l_rulv_rec.std_template_yn := 'N';
18319 l_rulv_rec.warn_yn := 'N';
18320 END IF;
18321
18322 IF (l_st_bill_stream_id IS NOT NULL) THEN
18323 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18324 l_rulv_rec.dnz_chr_id := p_chr_id;
18325 l_rulv_rec.rule_information2 := l_st_bill_stream_id;
18326 l_rulv_rec.rule_information_category := 'LASTPR';
18327 l_rulv_rec.std_template_yn := 'N';
18328 l_rulv_rec.warn_yn := 'N';
18329 END IF;
18330
18331 IF (l_st_fin_stream_id IS NOT NULL) THEN
18332 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18333 l_rulv_rec.dnz_chr_id := p_chr_id;
18334 l_rulv_rec.rule_information3 := l_st_fin_stream_id;
18335 l_rulv_rec.rule_information_category := 'LASTPR';
18336 l_rulv_rec.std_template_yn := 'N';
18337 l_rulv_rec.warn_yn := 'N';
18338 END IF;
18339
18340 IF (l_st_cap_stream_id IS NOT NULL) THEN
18341 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18342 l_rulv_rec.dnz_chr_id := p_chr_id;
18343 l_rulv_rec.rule_information4 := l_st_cap_stream_id;
18344 l_rulv_rec.rule_information_category := 'LASTPR';
18345 l_rulv_rec.std_template_yn := 'N';
18346 l_rulv_rec.warn_yn := 'N';
18347 END IF;
18348
18349 -- R12 ebtax change - START
18350
18351 IF (l_st_tax_schedule_applies_flag IS NOT NULL) THEN
18352 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18353 l_rulv_rec.dnz_chr_id := p_chr_id;
18354 l_rulv_rec.rule_information5 := l_st_tax_schedule_applies_flag;
18355 l_rulv_rec.rule_information_category := 'LASTPR';
18356 l_rulv_rec.std_template_yn := 'N';
18357 l_rulv_rec.warn_yn := 'N';
18358 ELSIF (l_st_tax_schedule_applies_flag IS NULL) THEN
18359
18360 -- R12B ebTax: Fetch Tax Schedule Flag from system options
18361 -- if it was not supplied during import
18362
18363 OPEN c_tax_schedule_yn;
18364 FETCH c_tax_schedule_yn INTO l_tax_schedule_yn;
18365 CLOSE c_tax_schedule_yn;
18366
18367 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18368 l_rulv_rec.dnz_chr_id := p_chr_id;
18369 l_rulv_rec.rule_information5 := l_tax_schedule_yn;
18370 l_rulv_rec.rule_information_category := 'LASTPR';
18371 l_rulv_rec.std_template_yn := 'N';
18372 l_rulv_rec.warn_yn := 'N';
18373 END IF;
18374
18375 -- R12 ebtax change - END
18376
18377 create_rule_group_and_rule(
18378 x_return_status => x_return_status,
18379 x_msg_count => x_msg_count,
18380 x_msg_data => x_msg_data,
18381 p_rgp_id => l_rgp_id,
18382 p_rgpv_rec => l_rgpv_rec,
18383 p_rulv_rec => l_rulv_rec,
18384 x_rgpv_rec => x_rgpv_rec,
18385 x_rulv_rec => x_rulv_rec
18386 );
18387
18388 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18389 raise header_rule_failed;
18390 END IF;
18391
18392 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
18393 l_rgp_id := x_rgpv_rec.id;
18394 END IF;
18395 debug_message('------>Rule: LAHDTX/LASTPR processed');
18396 l_rulv_rec := NULL;
18397 return;
18398
18399 EXCEPTION
18400
18401 WHEN header_rule_failed THEN
18402 x_return_status := OKL_API.G_RET_STS_ERROR;
18403 debug_message('------>Error with: '||l_rgpv_rec.rgd_code);
18404 debug_message('------>Rule Catg: '|| l_rulv_rec.rule_information_category);
18405
18406 WHEN OTHERS THEN
18407 okl_api.set_message(
18408 G_APP_NAME,
18409 G_UNEXPECTED_ERROR,
18410 'OKL_SQLCODE',
18411 SQLCODE,
18412 'OKL_SQLERRM',
18413 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
18414 );
18415
18416 x_return_status := OKL_API.G_RET_STS_ERROR;
18417 debug_message('Others : '||l_progress);
18418
18419 END create_header_rules;
18420
18421 ------------------------------------------------------------------------------
18422 -- PROCEDURE create_contact
18423 -- It creates contact and
18424 -- stacks Error, if any, and returns ERROR status to calling process.
18425 -- Calls:
18426 -- None
18427 -- Called By:
18428 -- load_input_record
18429 ------------------------------------------------------------------------------
18430 PROCEDURE create_contact(
18431 x_return_status OUT NOCOPY VARCHAR2,
18432 x_msg_count OUT NOCOPY NUMBER,
18433 x_msg_data OUT NOCOPY VARCHAR2,
18434 p_contract_header_id IN okc_k_headers_v.id%TYPE,
18435 p_contract_number_old IN okl_header_interface.contract_number_old%TYPE,
18436 p_salesperson_id IN okl_header_interface.salesperson_id%TYPE,
18437 p_salesperson_name IN okl_header_interface.salesperson_name%TYPE,
18438 p_authoring_org_id IN okl_header_interface.authoring_org_id%TYPE,
18439 p_lessor_id IN NUMBER
18440 ) IS
18441
18442 l_proc_name VARCHAR2(35) := 'CREATE_CONTRACT';
18443 x_salesperson_id NUMBER;
18444 l_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
18445 x_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
18446 l_id NUMBER;
18447 contact_failed EXCEPTION;
18448
18449 CURSOR sale_csr (p_salesrep_id NUMBER,
18450 p_salesrep_name VARCHAR2,
18451 p_org_id NUMBER) IS
18452 SELECT id1
18453 FROM okx_salesreps_v
18454 WHERE (( id1 = p_salesrep_id
18455 AND
18456 p_salesrep_id IS NOT NULL
18457 )
18458 OR
18459 ( name = p_salesrep_name
18460 AND
18461 p_salesrep_name IS NOT NULL
18462 )
18463 )
18464 AND org_id = p_org_id;
18465
18466 BEGIN
18467
18468 IF (p_salesperson_id IS NOT NULL
18469 OR
18470 p_salesperson_name IS NOT NULL) THEN
18471 OPEN sale_csr (p_salesperson_id,
18472 p_salesperson_name,
18473 p_authoring_org_id);
18474 FETCH sale_csr INTO l_id;
18475 IF sale_csr%NOTFOUND THEN
18476 okl_api.set_message(
18477 G_APP_NAME,
18478 G_INVALID_VALUE,
18479 'COL_NAME',
18480 'SALESPERSON_NAME, ID',
18481 'COL_VALUE',
18482 p_salesperson_name||', '||p_salesperson_id,
18483 'CONTRACT_NUM',
18484 p_contract_number_old
18485 );
18486 RAISE contact_failed;
18487 END IF;
18488 CLOSE sale_csr;
18489
18490 x_salesperson_id := l_id;
18491 END IF;
18492
18493
18494 IF (x_salesperson_id IS NOT NULL) THEN
18495 l_ctcv_rec.cpl_id := p_lessor_id;
18496 l_ctcv_rec.dnz_chr_id := p_contract_header_id;
18497 l_ctcv_rec.cro_code := 'SALESPERSON';
18498 l_ctcv_rec.jtot_object1_code := 'OKX_SALEPERS';
18499 l_ctcv_rec.object1_id1 := x_salesperson_id;
18500 l_ctcv_rec.object1_id2 := '#';
18501
18502 OKL_OKC_MIGRATION_PVT.create_contact(
18503 p_api_version => 1.0,
18504 x_return_status => x_return_status,
18505 x_msg_count => x_msg_count,
18506 x_msg_data => x_msg_data,
18507 p_ctcv_rec => l_ctcv_rec,
18508 x_ctcv_rec => x_ctcv_rec);
18509 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18510 x_return_status := OKL_API.G_RET_STS_ERROR;
18511 raise contact_failed;
18512 END IF;
18513
18514 END IF;
18515
18516 return;
18517
18518 EXCEPTION
18519 WHEN contact_failed THEN
18520 x_return_status := OKL_API.G_RET_STS_ERROR;
18521
18522 WHEN OTHERS THEN
18523 okl_api.set_message(
18524 G_APP_NAME,
18525 G_UNEXPECTED_ERROR,
18526 'OKL_SQLCODE',
18527 SQLCODE,
18528 'OKL_SQLERRM',
18529 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
18530 );
18531
18532 x_return_status := OKL_API.G_RET_STS_ERROR;
18533
18534
18535 END create_contact;
18536
18537 ------------------------------------------------------------------------------
18538 -- PROCEDURE get_ship_to_site
18539 -- It gets Ship to site id from number and
18540 -- stacks Error, if any, and returns ERROR status to calling process.
18541 -- Calls:
18542 -- None
18543 -- Called By:
18544 -- process_party_role
18545 ------------------------------------------------------------------------------
18546 PROCEDURE get_ship_to_site(
18547 x_return_status OUT NOCOPY VARCHAR2,
18548 x_msg_count OUT NOCOPY NUMBER,
18549 x_msg_data OUT NOCOPY VARCHAR2,
18550 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
18551 p_line_number IN okc_k_lines_v.line_number%TYPE,
18552 p_auth_org_id IN NUMBER,
18553 p_ship_to_site_number IN okx_party_site_uses_v.party_site_number%TYPE,
18554 p_ship_to_site_id IN okx_party_site_uses_v.party_site_id%TYPE,
18555 x_ship_to_site_id OUT NOCOPY okx_party_site_uses_v.party_site_id%TYPE
18556 ) IS
18557
18558 CURSOR ship_csr (p_site_id NUMBER,
18559 p_site_number VARCHAR2,
18560 p_customer_id NUMBER) IS
18561 SELECT party_site_id
18562 FROM okx_party_site_uses_v
18563 WHERE ((party_site_number = p_site_number
18564 AND
18565 p_site_number IS NOT NULL)
18566 OR
18567 (id1 = p_site_id
18568 AND
18569 p_site_id IS NOT NULL
18570 )
18571 )
18572 AND site_use_type = 'SHIP_TO'
18573 AND party_id = p_customer_id
18574 AND status = 'A';
18575
18576 CURSOR cust_ship_csr (p_party_site_id NUMBER,
18577 p_cust_acct_id NUMBER,
18578 p_org_id NUMBER) IS
18579 SELECT site_use.id1
18580 FROM okx_cust_site_uses_v site_use,
18581 hz_cust_acct_sites_all site
18582 WHERE site.cust_acct_site_id = site_use.cust_acct_site_id
18583 AND site_use.party_site_id = p_party_site_id
18584 AND site_use.org_id = p_org_id
18585 AND site.org_id = p_org_id
18586 AND site_use.site_use_code = 'SHIP_TO'
18587 AND site_use.cust_account_id = p_cust_acct_id
18588 AND site_use.b_status = 'A'
18589 AND site.status = 'A';
18590
18591 l_proc_name VARCHAR2(35) := 'GET_SHIP_TO_SITE';
18592 l_cust_site_id NUMBER;
18593 l_party_site_id NUMBER;
18594 ship_failed EXCEPTION;
18595
18596 BEGIN
18597
18598 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18599 debug_message(l_proc_name);
18600 debug_message('Customer: '|| g_customer_id);
18601 debug_message('Cust Acc: '|| g_customer_account_id);
18602 debug_message('p_ship_to_site_id: '|| p_ship_to_site_id);
18603
18604 OPEN ship_csr (p_ship_to_site_id,
18605 p_ship_to_site_number,
18606 g_customer_id);
18607 FETCH ship_csr INTO l_party_site_id;
18608 IF (ship_csr%NOTFOUND) THEN
18609 RAISE ship_failed;
18610 END IF;
18611 CLOSE ship_csr;
18612
18613 debug_message('Party Site: '||l_party_site_id);
18614 debug_message('Org : '||p_auth_org_id);
18615 OPEN cust_ship_csr (l_party_site_id,
18616 g_customer_account_id,
18617 p_auth_org_id);
18618 FETCH cust_ship_csr INTO l_cust_site_id;
18619 IF (cust_ship_csr%NOTFOUND) THEN
18620 RAISE ship_failed;
18621 END IF;
18622 CLOSE cust_ship_csr;
18623
18624 debug_message('Cust Site: ' || l_cust_site_id);
18625 x_ship_to_site_id := l_cust_site_id;
18626
18627 RETURN;
18628
18629 EXCEPTION
18630 WHEN ship_failed THEN
18631 IF (ship_csr%ISOPEN) THEN
18632 CLOSE ship_csr;
18633 END IF;
18634 IF (cust_ship_csr%ISOPEN) THEN
18635 CLOSE cust_ship_csr;
18636 END IF;
18637 okl_api.set_message(
18638 G_APP_NAME,
18639 G_INVALID_VALUE,
18640 'COL_NAME',
18641 'SHIP_TO_SITE, ID',
18642 'COL_VALUE',
18643 p_ship_to_site_number||', '||p_ship_to_site_id,
18644 'CONTRACT_NUM',
18645 p_contract_number||'/'||p_line_number
18646 );
18647 x_return_status := OKL_API.G_RET_STS_ERROR;
18648
18649 END get_ship_to_site;
18650
18651 ------------------------------------------------------------------------------
18652 -- PROCEDURE get_guarantor_address
18653 -- It gets Gurarantor Address ID from given address and
18654 -- stacks Error, if any, and returns ERROR status to calling process.
18655 -- Calls:
18656 -- None
18657 -- Called By:
18658 -- process_party_role
18659 ------------------------------------------------------------------------------
18660 PROCEDURE get_guarantor_address(
18661 x_return_status OUT NOCOPY VARCHAR2,
18662 x_msg_count OUT NOCOPY NUMBER,
18663 x_msg_data OUT NOCOPY VARCHAR2,
18664 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
18665 p_line_number IN okc_k_lines_v.line_number%TYPE,
18666 p_guarantor_site_number IN okl_party_roles_interface.guarantor_site_number%TYPE,
18667 p_guarantor_site_id IN okl_party_roles_interface.guarantor_site_id%TYPE,
18668 x_guarantor_site_id OUT NOCOPY okl_party_roles_interface.guarantor_site_id%TYPE
18669 ) IS
18670
18671 CURSOR gaddr_csr (p_site_id NUMBER,
18672 p_site_number VARCHAR2) IS
18673 SELECT id1
18674 FROM okx_party_sites_v
18675 WHERE ( party_site_number = p_site_number
18676 AND
18677 p_site_number IS NOT NULL)
18678 OR ( id1 = p_site_id
18679 AND
18680 p_site_id IS NOT NULL);
18681
18682 l_id NUMBER;
18683 gaddr_failed EXCEPTION;
18684
18685 BEGIN
18686
18687 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18688 OPEN gaddr_csr (p_guarantor_site_id,
18689 p_guarantor_site_number);
18690 FETCH gaddr_csr INTO l_id;
18691 IF (gaddr_csr%NOTFOUND) THEN
18692 RAISE gaddr_failed;
18693 END IF;
18694
18695 CLOSE gaddr_csr;
18696 x_guarantor_site_id := l_id;
18697
18698 RETURN;
18699
18700 EXCEPTION
18701 WHEN gaddr_failed THEN
18702 IF (gaddr_csr%ISOPEN) THEN
18703 CLOSE gaddr_csr;
18704 END IF;
18705 okl_api.set_message(
18706 G_APP_NAME,
18707 G_INVALID_VALUE,
18708 'COL_NAME',
18709 'GUARANTOR_SITE, ID',
18710 'COL_VALUE',
18711 p_guarantor_site_number||', '||p_guarantor_site_id,
18712 'CONTRACT_NUM',
18713 p_contract_number||'/'||p_line_number
18714 );
18715 x_return_status := OKL_API.G_RET_STS_ERROR;
18716
18717 END get_guarantor_address;
18718
18719 ------------------------------------------------------------------------------
18720 -- PROCEDURE get_rrd_id
18721 -- It gets RRD_ID for Guarantor and
18722 -- stacks Error, if any, and returns ERROR status to calling process.
18723 -- Calls:
18724 -- None
18725 -- Called By:
18726 -- process_party_role
18727 ------------------------------------------------------------------------------
18728 PROCEDURE get_rrd_id(
18729 x_return_status OUT NOCOPY VARCHAR2,
18730 p_rgd_code IN VARCHAR2,
18731 p_rle_code IN VARCHAR2,
18732 x_rrd_id OUT NOCOPY NUMBER
18733 ) IS
18734 CURSOR rrd_csr (p_rgd_code VARCHAR2,
18735 p_rle_code VARCHAR2) IS
18736 SELECT rrd.id
18737 FROM okc_rg_role_defs rrd,
18738 okc_subclass_rg_defs srd,
18739 okc_subclass_roles srl
18740 WHERE rrd.srd_id = srd.id
18741 AND rrd.sre_id = srl.id
18742 AND srd.scs_code = 'LEASE'
18743 AND srd.rgd_code = p_rgd_code --'LAGRDT'
18744 AND srl.scs_code = 'LEASE'
18745 AND srl.rle_code = p_rle_code; --'GUARANTOR'
18746
18747 l_id NUMBER:= NULL;
18748
18749 BEGIN
18750
18751 OPEN rrd_csr (p_rgd_code,
18752 p_rle_code);
18753 FETCH rrd_csr INTO l_id;
18754 IF rrd_csr%NOTFOUND THEN
18755 x_return_status := OKL_API.G_RET_STS_ERROR;
18756 END IF;
18757 CLOSE rrd_csr;
18758
18759 x_rrd_id := l_id;
18760 return;
18761
18762 EXCEPTION
18763 WHEN OTHERS THEN
18764 x_return_status := OKL_API.G_RET_STS_ERROR;
18765 END get_rrd_id;
18766
18767
18768
18769 ------------------------------------------------------------------------------
18770 -- PROCEDURE create_private_label
18771 -- It create party roles and rules for PRIVATE_LABEL information and
18772 -- stacks Error, if any, and returns ERROR status to calling process.
18773 -- Calls:
18774 -- None
18775 -- Called By:
18776 ------------------------------------------------------------------------------
18777 PROCEDURE create_private_label (
18778 x_return_status OUT NOCOPY VARCHAR2,
18779 x_msg_count OUT NOCOPY NUMBER,
18780 x_msg_data OUT NOCOPY VARCHAR2,
18781 p_chr_id IN NUMBER,
18782 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
18783 p_label_number IN VARCHAR2,
18784 p_label_id IN NUMBER,
18785 p_label_url IN VARCHAR2
18786 ) IS
18787
18788 CURSOR party_csr (p_private_label_number VARCHAR2,
18789 p_private_label_id NUMBER) IS
18790 SELECT id1
18791 FROM okx_parties_v
18792 WHERE ((party_number = p_private_label_number
18793 AND
18794 p_private_label_number IS NOT NULL)
18795 OR
18796 (id1 = p_private_label_id
18797 AND
18798 p_private_label_id IS NOT NULL
18799 )
18800 );
18801
18802 l_proc_name VARCHAR2(35) := 'CREATE_PRIVATE_LABEL';
18803 p_cplv_rec cplv_rec_type;
18804 x_cplv_rec cplv_rec_type;
18805 l_rgpv_rec rgpv_rec_type;
18806 x_rgpv_rec rgpv_rec_type;
18807 l_rulv_rec rulv_rec_type;
18808 x_rulv_rec rulv_rec_type;
18809 l_rmpv_rec rmpv_rec_type;
18810 x_rmpv_rec rmpv_rec_type;
18811
18812 l_rgp_id NUMBER;
18813 x_rrd_id NUMBER;
18814 l_id NUMBER;
18815
18816 party_failed EXCEPTION;
18817
18818 l_kplv_rec kplv_rec_type;
18819 x_kplv_rec kplv_rec_type;
18820
18821 BEGIN
18822
18823 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18824
18825 IF (p_label_number IS NOT NULL
18826 OR
18827 p_label_id IS NOT NULL) THEN
18828
18829 OPEN party_csr (p_label_number,
18830 p_label_id);
18831 FETCH party_csr INTO l_id;
18832
18833 IF party_csr%NOTFOUND THEN
18834 RAISE party_failed;
18835 END IF;
18836 CLOSE party_csr;
18837
18838 p_cplv_rec := NULL;
18839 p_cplv_rec.chr_id := p_chr_id;
18840 p_cplv_rec.dnz_chr_id := p_chr_id;
18841 p_cplv_rec.cle_id := NULL; -- always at header level
18842 p_cplv_rec.object1_id1 := TO_CHAR(l_id);
18843 p_cplv_rec.object1_id2 := '#';
18844 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
18845 p_cplv_rec.rle_code := 'PRIVATE_LABEL';
18846
18847 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
18848 p_api_version => 1.0,
18849 p_init_msg_list => OKL_API.G_FALSE,
18850 x_return_status => x_return_status,
18851 x_msg_count => x_msg_count,
18852 x_msg_data => x_msg_data,
18853 p_cplv_rec => p_cplv_rec,
18854 p_kplv_rec => l_kplv_rec,
18855 x_cplv_rec => x_cplv_rec,
18856 x_kplv_rec => x_kplv_rec
18857 );
18858
18859 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18860 RAISE party_failed;
18861 END IF;
18862
18863 l_rgpv_rec := NULL;
18864 l_rgp_id := NULL;
18865 l_rgpv_rec.rgd_code := 'LALABL';
18866 l_rgpv_rec.chr_id := p_chr_id;
18867 l_rgpv_rec.dnz_chr_id := p_chr_id;
18868 l_rgpv_rec.cle_id := NULL; -- always at header level
18869 l_rgpv_rec.rgp_type := 'KRG';
18870
18871 l_rulv_rec := NULL;
18872
18873 IF (p_label_url IS NOT NULL) THEN
18874
18875 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18876 l_rulv_rec.dnz_chr_id := p_chr_id;
18877 l_rulv_rec.rule_information1 := p_label_url;
18878 l_rulv_rec.rule_information_category := 'LALOGO';
18879 l_rulv_rec.std_template_yn := 'N';
18880 l_rulv_rec.warn_yn := 'N';
18881
18882 create_rule_group_and_rule(
18883 x_return_status => x_return_status,
18884 x_msg_count => x_msg_count,
18885 x_msg_data => x_msg_data,
18886 p_rgp_id => l_rgp_id,
18887 p_rgpv_rec => l_rgpv_rec,
18888 p_rulv_rec => l_rulv_rec,
18889 x_rgpv_rec => x_rgpv_rec,
18890 x_rulv_rec => x_rulv_rec
18891 );
18892
18893 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18894 raise party_failed;
18895 END IF;
18896
18897 get_rrd_id(
18898 x_return_status => x_return_status,
18899 p_rgd_code => 'LALABL',
18900 p_rle_code => 'PRIVATE_LABEL',
18901 x_rrd_id => x_rrd_id
18902 );
18903 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18904 okl_api.set_message(
18905 G_APP_NAME,
18906 G_LABEL_SETUP_ERROR,
18907 'CONTRACT_NUM',
18908 p_contract_number
18909 );
18910 x_return_status := OKL_API.G_RET_STS_ERROR;
18911 RAISE party_failed;
18912 END IF;
18913
18914 l_rmpv_rec.rgp_id := x_rgpv_rec.id;
18915 l_rmpv_rec.cpl_id := x_cplv_rec.id;
18916 l_rmpv_rec.rrd_id := x_rrd_id;
18917 l_rmpv_rec.dnz_chr_id := p_chr_id;
18918
18919 okl_rule_pub.create_rg_mode_pty_role(
18920 p_api_version => 1.0,
18921 p_init_msg_list => OKL_API.G_FALSE,
18922 x_return_status => x_return_status,
18923 x_msg_count => x_msg_count,
18924 x_msg_data => x_msg_data,
18925 p_rmpv_rec => l_rmpv_rec,
18926 x_rmpv_rec => x_rmpv_rec
18927 );
18928 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18929 x_return_status := OKL_API.G_RET_STS_ERROR;
18930 raise party_failed;
18931 END IF;
18932
18933 END IF; --label_url
18934
18935 END IF; --private_label
18936
18937 EXCEPTION
18938 WHEN party_failed THEN
18939 IF party_csr%ISOPEN THEN
18940 CLOSE party_csr;
18941 END IF;
18942 okl_api.set_message(
18943 G_APP_NAME,
18944 G_INVALID_VALUE,
18945 'COL_NAME',
18946 'PRIVATE_LABEL_NUMBER, ID',
18947 'COL_VALUE',
18948 p_label_number||', '||p_label_id,
18949 'CONTRACT_NUM',
18950 p_contract_number
18951 );
18952 x_return_status := OKL_API.G_RET_STS_ERROR;
18953
18954 END create_private_label;
18955
18956 -- strat cklee 02/16/2004 bug# 3440442
18957 ------------------------------------------------------------------------------
18958 -- PROCEDURE validate_3rd_party_insurance
18959 -- It validate 3rd party insurence policy and
18960 -- stacks Error, if any, and returns ERROR status to calling process.
18961 -- Calls:
18962 -- None
18963 -- Called By:
18964 ------------------------------------------------------------------------------
18965
18966 PROCEDURE validate_3rd_party_insurance (
18967 x_return_status OUT NOCOPY VARCHAR2,
18968 x_msg_count OUT NOCOPY NUMBER,
18969 x_msg_data OUT NOCOPY VARCHAR2,
18970 p_intf_header IN intf_h_rec_type,
18971 x_intf_header OUT NOCOPY intf_h_rec_type
18972 ) IS
18973 v_3rd_party_insurance_failed EXCEPTION;
18974
18975 l_proc_name varchar2(150) := 'OKL_HEADER_INTERFACE: validate_3rd_party_insurance';
18976 l_progress varchar2(150);
18977
18978 l_intf_header intf_h_rec_type := p_intf_header;
18979
18980 intf_party_rec intf_party_rec_type;
18981
18982 BEGIN
18983
18984 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18985 --
18986 -- 1. validation
18987 --
18988 -- 3rd party insurace
18989 -- 1. insurance company name/site
18990 IF ((p_intf_header.insurance_company_name IS NOT NULL OR
18991 p_intf_header.insurance_company_id IS NOT NULL OR
18992 p_intf_header.insurance_company_number IS NOT NULL)
18993 AND
18994 (p_intf_header.insurance_company_site_name IS NOT NULL OR
18995 p_intf_header.insurance_company_site_id IS NOT NULL OR
18996 p_intf_header.insurance_company_site_number IS NOT NULL)) THEN
18997
18998
18999 intf_party_rec.contract_number := p_intf_header.contract_number_old;
19000 intf_party_rec.line_number := NULL;
19001 intf_party_rec.party_category_code := G_INSURER;
19002
19003 intf_party_rec.party_id := p_intf_header.insurance_company_id;
19004 intf_party_rec.party_name := p_intf_header.insurance_company_name;
19005 intf_party_rec.party_number := p_intf_header.insurance_company_number;
19006 intf_party_rec.party_site_id := p_intf_header.insurance_company_site_id;
19007 intf_party_rec.party_site_name := p_intf_header.insurance_company_site_name;
19008 intf_party_rec.party_site_number := p_intf_header.insurance_company_site_number;
19009 intf_party_rec.intf_party_id := G_INSURANCE_COMPANY_ID;
19010 intf_party_rec.intf_party_name := G_INSURANCE_COMPANY_NAME;
19011 intf_party_rec.intf_party_number := G_INSURANCE_COMPANY_NUMBER;
19012 intf_party_rec.intf_party_site_id := G_INSURANCE_COMPANY_SITE_ID;
19013 intf_party_rec.intf_party_site_name := G_INSURANCE_COMPANY_SITE_NAME;
19014 intf_party_rec.intf_party_site_number:= G_INSURANCE_COMPANY_SITE_NUM;
19015
19016
19017 get_party(
19018 x_return_status => x_return_status,
19019 x_msg_count => x_msg_count,
19020 x_msg_data => x_msg_data,
19021 p_intf_party_rec => intf_party_rec,
19022 x_party_id => l_intf_header.insurance_company_id,
19023 x_party_site_id => l_intf_header.insurance_company_site_id
19024 );
19025
19026 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19027 RAISE v_3rd_party_insurance_failed;
19028 END IF;
19029 END IF;
19030 l_progress := 'validate insurance company name/site';
19031
19032 -- 3. agent name/site
19033 IF ((p_intf_header.agent_name IS NOT NULL OR
19034 p_intf_header.agent_id IS NOT NULL OR
19035 p_intf_header.agent_number IS NOT NULL)
19036 AND
19037 (p_intf_header.agent_address_site_name IS NOT NULL OR
19038 p_intf_header.agent_address_site_id IS NOT NULL OR
19039 p_intf_header.agent_address_site_number IS NOT NULL)) THEN
19040
19041
19042 intf_party_rec.contract_number := p_intf_header.contract_number_old;
19043 intf_party_rec.line_number := NULL;
19044 intf_party_rec.party_category_code := G_INSURANCE_AGENT;
19045
19046 intf_party_rec.party_id := p_intf_header.agent_id;
19047 intf_party_rec.party_name := p_intf_header.agent_name;
19048 intf_party_rec.party_number := p_intf_header.agent_number;
19049 intf_party_rec.party_site_id := p_intf_header.agent_address_site_id;
19050 intf_party_rec.party_site_name := p_intf_header.agent_address_site_name;
19051 intf_party_rec.party_site_number := p_intf_header.agent_address_site_number;
19052 intf_party_rec.intf_party_id := G_AGENT_ID;
19053 intf_party_rec.intf_party_name := G_AGENT_NAME;
19054 intf_party_rec.intf_party_number := G_AGENT_NUMBER;
19055 intf_party_rec.intf_party_site_id := G_AGENT_ADDRESS_SITE_ID;
19056 intf_party_rec.intf_party_site_name := G_AGENT_ADDRESS_SITE_NAME;
19057 intf_party_rec.intf_party_site_number:= G_AGENT_ADDRESS_SITE_NUMBER;
19058
19059
19060 get_party(
19061 x_return_status => x_return_status,
19062 x_msg_count => x_msg_count,
19063 x_msg_data => x_msg_data,
19064 p_intf_party_rec => intf_party_rec,
19065 x_party_id => l_intf_header.agent_id,
19066 x_party_site_id => l_intf_header.agent_address_site_id
19067 );
19068
19069 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19070 RAISE v_3rd_party_insurance_failed;
19071 END IF;
19072 END IF;
19073 l_progress := 'validate insurance agent name/address site';
19074
19075
19076 IF (NVL(p_intf_header.LESSOR_INSURED_FLAG,'N') NOT IN ('Y','N')) THEN
19077 okl_api.set_message(
19078 G_APP_NAME,
19079 G_INVALID_VALUE,
19080 'CONTRACT_NUM',
19081 p_intf_header.contract_number_old,
19082 'COL_NAME',
19083 'LESSOR_INSURED_FLAG',
19084 'COL_VALUE',
19085 p_intf_header.LESSOR_INSURED_FLAG
19086 );
19087
19088 x_return_status := OKL_API.G_RET_STS_ERROR;
19089
19090 RAISE v_3rd_party_insurance_failed;
19091 END IF;
19092 l_progress := 'validate LESSOR_INSURED_FLAG';
19093
19094 IF (NVL(p_intf_header.LESSOR_PAYEE_FLAG,'N') NOT IN ('Y','N')) THEN
19095 okl_api.set_message(
19096 G_APP_NAME,
19097 G_INVALID_VALUE,
19098 'CONTRACT_NUM',
19099 p_intf_header.contract_number_old,
19100 'COL_NAME',
19101 'LESSOR_PAYEE_FLAG',
19102 'COL_VALUE',
19103 p_intf_header.LESSOR_PAYEE_FLAG
19104 );
19105
19106 x_return_status := OKL_API.G_RET_STS_ERROR;
19107
19108 RAISE v_3rd_party_insurance_failed;
19109 END IF;
19110 l_progress := 'validate LESSOR_PAYEE_FLAG';
19111
19112 -- assign to out record
19113 x_intf_header := l_intf_header;
19114
19115 EXCEPTION
19116 WHEN v_3rd_party_insurance_failed THEN
19117 x_return_status := OKL_API.G_RET_STS_ERROR;
19118 debug_message(l_proc_name ||': '||l_progress);
19119
19120 WHEN OTHERS THEN
19121 x_return_status := OKL_API.G_RET_STS_ERROR;
19122 debug_message(l_proc_name ||': '||l_progress);
19123
19124 END validate_3rd_party_insurance;
19125
19126 ------------------------------------------------------------------------------
19127 -- PROCEDURE create_3rd_party_insurance
19128 -- It create 3rd party insurence policy and
19129 -- stacks Error, if any, and returns ERROR status to calling process.
19130 -- Calls:
19131 -- None
19132 -- Called By:
19133 ------------------------------------------------------------------------------
19134
19135 PROCEDURE create_3rd_party_insurance (
19136 x_return_status OUT NOCOPY VARCHAR2,
19137 x_msg_count OUT NOCOPY NUMBER,
19138 x_msg_data OUT NOCOPY VARCHAR2,
19139 p_intf_header IN intf_h_rec_type,
19140 p_chr_id IN NUMBER
19141 ) IS
19142 e_3rd_party_insurance_failed EXCEPTION;
19143
19144 l_proc_name varchar2(150) := 'OKL_HEADER_INTERFACE: create_3rd_party_insurance';
19145 l_progress varchar2(150);
19146
19147 x_intf_header intf_h_rec_type;
19148
19149 l_ipyv_rec okl_ipy_pvt.ipyv_rec_type;
19150 x_ipyv_rec okl_ipy_pvt.ipyv_rec_type;
19151
19152 BEGIN
19153
19154 x_return_status := OKL_API.G_RET_STS_SUCCESS;
19155 --
19156 -- 1. validation
19157 --
19158 validate_3rd_party_insurance(x_return_status => x_return_status,
19159 x_msg_count => x_msg_count,
19160 x_msg_data => x_msg_data,
19161 p_intf_header => p_intf_header,
19162 x_intf_header => x_intf_header
19163 );
19164
19165
19166 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19167 raise e_3rd_party_insurance_failed;
19168 END IF;
19169
19170 --
19171 -- 2. create record
19172 --
19173
19174 l_ipyv_rec.ipy_type := 'THIRD_PARTY_POLICY';
19175 l_ipyv_rec.khr_id := p_chr_id;
19176
19177 l_ipyv_rec.policy_number := x_intf_header.POLICY_NUMBER;
19178 l_ipyv_rec.date_from := x_intf_header.POLICY_EFFECTIVE_FROM;
19179 l_ipyv_rec.date_to := x_intf_header.POLICY_EFFECTIVE_TO;
19180 l_ipyv_rec.covered_amount := x_intf_header.COVERED_AMOUNT;
19181 l_ipyv_rec.deductible := x_intf_header.DEDUCTIBLE_AMOUNT;
19182 l_ipyv_rec.endorsement := x_intf_header.ENDORSEMENT;
19183 l_ipyv_rec.name_of_insured := x_intf_header.NAME_OF_INSURED;
19184 l_ipyv_rec.lessor_insured_yn := x_intf_header.LESSOR_INSURED_FLAG;
19185 l_ipyv_rec.lessor_payee_yn := x_intf_header.LESSOR_PAYEE_FLAG;
19186
19187 l_ipyv_rec.isu_id := x_intf_header.insurance_company_id;
19188 l_ipyv_rec.agency_site_id := x_intf_header.insurance_company_site_id;
19189
19190 l_ipyv_rec.int_id := x_intf_header.agent_id;
19191 l_ipyv_rec.agent_site_id := x_intf_header.agent_address_site_id;
19192
19193 l_ipyv_rec.date_proof_required := x_intf_header.PROOF_DUE_DATE;
19194 l_ipyv_rec.date_proof_provided := x_intf_header.PROOF_PROVIDED_DATE;
19195
19196 OKL_INS_POLICIES_PUB.INSERT_INS_POLICIES(
19197 p_api_version => 1.0,
19198 p_init_msg_list => OKL_API.G_FALSE,
19199 x_return_status => x_return_status,
19200 x_msg_count => x_msg_count,
19201 x_msg_data => x_msg_data,
19202 p_ipyv_rec => l_ipyv_rec,
19203 x_ipyv_rec => x_ipyv_rec
19204 );
19205
19206 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19207 RAISE e_3rd_party_insurance_failed;
19208 END IF;
19209 l_progress := 'Create 3rd insurance record';
19210
19211 EXCEPTION
19212 WHEN e_3rd_party_insurance_failed THEN
19213 x_return_status := OKL_API.G_RET_STS_ERROR;
19214 debug_message(l_proc_name ||': '||l_progress);
19215
19216 WHEN OTHERS THEN
19217 x_return_status := OKL_API.G_RET_STS_ERROR;
19218 debug_message(l_proc_name ||': '||l_progress);
19219
19220 END create_3rd_party_insurance;
19221
19222 -- end cklee 02/16/2004 bug# 3440442
19223 ------------------------------------------------------------------------------
19224 -- PROCEDURE get_vendor_paygroup
19225 -- It returns vendor Pay-group info and
19226 -- stacks Error, if any, and returns ERROR status to calling process.
19227 -- Calls:
19228 -- None
19229 -- Called By:
19230 ------------------------------------------------------------------------------
19231 FUNCTION get_vendor_paygroup(
19232 x_return_status OUT NOCOPY VARCHAR2,
19233 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
19234 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
19235 p_auth_org_id IN OKL_HEADER_INTERFACE.authoring_org_id%TYPE,
19236 p_vendor_paysite_id IN OKL_LINES_INTERFACE.VENDOR_PAYSITE_ID%TYPE
19237 )
19238 /* RETURN NUMBER IS 13924672 */
19239 RETURN VARCHAR2 IS /* 13924672 */
19240 CURSOR paygroup_csr (p_paysite_id NUMBER,
19241 p_org_id NUMBER) IS
19242 SELECT pay_group_lookup_code
19243 FROM po_vendor_sites_all
19244 WHERE vendor_site_id = p_vendor_paysite_id
19245 AND org_id = p_auth_org_id;
19246
19247 l_paygroup po_vendor_sites_all.pay_group_lookup_code%TYPE;
19248 BEGIN
19249
19250 x_return_status := OKL_API.G_RET_STS_SUCCESS;
19251
19252 OPEN paygroup_csr (p_vendor_paysite_id,
19253 p_auth_org_id);
19254 FETCH paygroup_csr INTO l_paygroup;
19255 IF paygroup_csr%NOTFOUND THEN
19256 CLOSE paygroup_csr;
19257 RETURN NULL;
19258 ELSE
19259 CLOSE paygroup_csr;
19260 RETURN l_paygroup;
19261 END IF;
19262
19263
19264 END get_vendor_paygroup;
19265
19266 ------------------------------------------------------------------------------
19267 -- PROCEDURE process_party_role
19268 -- It Process Party Role Interafce Records at Contract Line level and Header Level as well and
19269 -- stacks Error, if any, and returns ERROR status to calling process.
19270 -- Calls:
19271 -- get_vendor_id
19272 -- get_party_id
19273 -- get_rrd_id
19274 -- Called By:
19275 -- load_input_record
19276 ------------------------------------------------------------------------------
19277 PROCEDURE process_party_role(
19278 x_return_status OUT NOCOPY VARCHAR2,
19279 x_msg_count OUT NOCOPY NUMBER,
19280 x_msg_data OUT NOCOPY VARCHAR2,
19281 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
19282 p_chr_id IN okc_k_headers_v.id%TYPE,
19283 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
19284 p_line_number IN okc_k_lines_v.line_number%TYPE,
19285 p_line_type IN okl_lines_interface.line_type%TYPE,
19286 p_fin_cle_id IN NUMBER,
19287 p_model_cle_id IN NUMBER,
19288 p_service_line_id IN NUMBER,
19289 p_fee_line_id IN NUMBER,
19290 p_usage_line_id IN NUMBER,
19291 p_asset_vendor_name IN okl_party_roles_interface.asset_vendor_name%TYPE,
19292 p_asset_vendor_id IN okl_party_roles_interface.asset_vendor_id%TYPE,
19293 p_service_vendor_name IN okl_party_roles_interface.service_vendor_name%TYPE,
19294 p_service_vendor_id IN okl_party_roles_interface.service_vendor_id%TYPE,
19295 p_fees_vendor_name IN okl_party_roles_interface.fees_vendor_name%TYPE,
19296 p_fees_vendor_id IN okl_party_roles_interface.fees_vendor_id%TYPE,
19297 p_guarantor_number IN okl_party_roles_interface.guarantor_number%TYPE,
19298 p_guarantor_id IN okl_party_roles_interface.guarantor_id%TYPE,
19299 p_dealer_name IN okl_party_roles_interface.dealer_name%TYPE,
19300 p_dealer_id IN okl_party_roles_interface.dealer_id%TYPE,
19301 p_guarantor_type IN okl_party_roles_interface.guarantor_type%TYPE,
19302 p_guarantee_type IN okl_party_roles_interface.guarantee_type%TYPE,
19303 p_guaranteed_amount IN okl_party_roles_interface.guaranteed_amount%TYPE,
19304 p_guarantee_date IN okl_party_roles_interface.guarantee_date%TYPE,
19305 p_guarantee_comment IN okl_party_roles_interface.guarantee_comment%TYPE,
19306 p_guarantor_site_number IN okl_party_roles_interface.guarantor_site_number%TYPE,
19307 p_guarantor_site_id IN okl_party_roles_interface.guarantor_site_id%TYPE,
19308 p_payment_term IN okl_lines_interface.payment_term%TYPE,
19309 p_payment_term_id IN okl_lines_interface.payment_term_id%TYPE,
19310 p_vendor_paysite_id IN okl_lines_interface.vendor_paysite_id%TYPE,
19311 p_vendor_paysite_name IN okl_lines_interface.vendor_paysite_name%TYPE,
19312 p_vendor_payment_method IN okl_lines_interface.vendor_payment_method%TYPE,
19313 p_passthrough_percent IN okl_lines_interface.passthrough_percent%TYPE,
19314 p_passthrough_basis_code IN okl_lines_interface.passthrough_basis_code%TYPE,
19315 p_billable_vendor_id IN okl_party_roles_interface.billable_vendor_id%TYPE,
19316 p_billable_vendor_name IN okl_party_roles_interface.billable_vendor_name%TYPE,
19317 p_vend_as_customer_number IN okl_party_roles_interface.vend_as_customer_number%TYPE,
19318 p_vend_as_customer_id IN okl_party_roles_interface.vend_as_customer_id%TYPE,
19319 p_vend_as_cust_acc_id IN okl_party_roles_interface.vend_as_customer_acc_id%TYPE,
19320 p_vend_as_cust_acc_number IN okl_party_roles_interface.vend_as_customer_acc_number%TYPE,
19321 p_vend_bill_to_addr_id IN okl_party_roles_interface.vend_bill_to_addr_id%TYPE,
19322 p_vend_bill_to_addr IN okl_party_roles_interface.vend_bill_to_addr%TYPE,
19323 p_vend_payment_method_id IN okl_party_roles_interface.vend_payment_method_id%TYPE,
19324 p_vend_payment_method IN okl_party_roles_interface.vend_payment_method%TYPE,
19325 p_vend_bank_acc_id IN okl_party_roles_interface.vend_bank_acc_id%TYPE,
19326 p_vend_bank_acc_number IN okl_party_roles_interface.vend_bank_acc_number%TYPE,
19327 p_vend_invoice_format_id IN okl_party_roles_interface.vend_invoice_format_id%TYPE,
19328 p_vend_invoice_format_code IN okl_party_roles_interface.vend_invoice_format_code%TYPE,
19329 p_vend_review_invoice_flag IN okl_party_roles_interface.vend_review_invoice_flag%TYPE,
19330 p_vend_reason_for_inv_review IN okl_party_roles_interface.vend_reason_for_inv_review%TYPE,
19331 p_vend_inv_review_until_date IN okl_party_roles_interface.vend_inv_review_until_date%TYPE,
19332 p_pth_base_vendor_site_code IN okl_party_roles_interface.pth_base_vendor_site_code%TYPE,
19333 p_pth_base_vendor_site_id IN okl_party_roles_interface.pth_base_vendor_site_id%TYPE,
19334 p_pth_base_paygroup_code IN okl_party_roles_interface.pth_base_paygroup_code%TYPE,
19335 p_pth_base_pmnt_term_code IN okl_party_roles_interface.pth_base_pmnt_term_code%TYPE,
19336 p_pth_base_pmnt_term_id IN okl_party_roles_interface.pth_base_pmnt_term_id%TYPE,
19337 p_pth_base_pmnt_basis IN okl_party_roles_interface.pth_base_pmnt_basis%TYPE,
19338 p_pth_base_pmnt_start_date IN okl_party_roles_interface.pth_base_pmnt_start_date%TYPE,
19339 p_pth_base_pmnt_method_code IN okl_party_roles_interface.pth_base_pmnt_method_code%TYPE,
19340 p_pth_base_pmnt_freq IN okl_party_roles_interface.pth_base_pmnt_freq%TYPE,
19341 p_pth_base_pmnt_remit_days IN okl_party_roles_interface.pth_base_pmnt_remit_days%TYPE,
19342 p_pth_base_disb_basis IN okl_party_roles_interface.pth_base_disb_basis%TYPE,
19343 p_pth_base_disb_fixed_amount IN okl_party_roles_interface.pth_base_disb_fixed_amount%TYPE,
19344 p_pth_base_disb_pct IN okl_party_roles_interface.pth_base_disb_pct%TYPE,
19345 p_pth_base_proc_fee_basis IN okl_party_roles_interface.pth_base_proc_fee_basis%TYPE,
19346 p_pth_base_proc_fee_fixed_amt IN okl_party_roles_interface.pth_base_proc_fee_fixed_amt%TYPE,
19347 p_pth_base_proc_pct IN okl_party_roles_interface.pth_base_proc_pct%TYPE,
19348 p_pth_evg_vendor_site_code IN okl_party_roles_interface.pth_evg_vendor_site_code%TYPE,
19349 p_pth_evg_vendor_site_id IN okl_party_roles_interface.pth_evg_vendor_site_id%TYPE,
19350 p_pth_evg_paygroup_code IN okl_party_roles_interface.pth_evg_paygroup_code%TYPE,
19351 p_pth_evg_pmnt_term_code IN okl_party_roles_interface.pth_evg_pmnt_term_code%TYPE,
19352 p_pth_evg_pmnt_term_id IN okl_party_roles_interface.pth_evg_pmnt_term_id%TYPE,
19353 p_pth_evg_pmnt_basis IN okl_party_roles_interface.pth_evg_pmnt_basis%TYPE,
19354 p_pth_evg_pmnt_start_date IN okl_party_roles_interface.pth_evg_pmnt_start_date%TYPE,
19355 p_pth_evg_pmnt_method_code IN okl_party_roles_interface.pth_evg_pmnt_method_code%TYPE,
19356 p_pth_evg_pmnt_freq IN okl_party_roles_interface.pth_evg_pmnt_freq%TYPE,
19357 p_pth_evg_pmnt_remit_days IN okl_party_roles_interface.pth_evg_pmnt_remit_days%TYPE,
19358 p_pth_evg_disb_basis IN okl_party_roles_interface.pth_evg_disb_basis%TYPE,
19359 p_pth_evg_disb_fixed_amount IN okl_party_roles_interface.pth_evg_disb_fixed_amount%TYPE,
19360 p_pth_evg_disb_pct IN okl_party_roles_interface.pth_evg_disb_pct%TYPE,
19361 p_pth_evg_proc_fee_basis IN okl_party_roles_interface.pth_evg_proc_fee_basis%TYPE,
19362 p_pth_evg_proc_fee_fixed_amt IN okl_party_roles_interface.pth_evg_proc_fee_fixed_amt%TYPE,
19363 p_pth_evg_proc_pct IN okl_party_roles_interface.pth_evg_proc_pct%TYPE,
19364 p_attribute_category IN okl_party_roles_interface.attribute_category%TYPE,
19365 p_attribute1 IN okl_party_roles_interface.attribute1%TYPE,
19366 p_attribute2 IN okl_party_roles_interface.attribute2%TYPE,
19367 p_attribute3 IN okl_party_roles_interface.attribute3%TYPE,
19368 p_attribute4 IN okl_party_roles_interface.attribute4%TYPE,
19369 p_attribute5 IN okl_party_roles_interface.attribute5%TYPE,
19370 p_attribute6 IN okl_party_roles_interface.attribute6%TYPE,
19371 p_attribute7 IN okl_party_roles_interface.attribute7%TYPE,
19372 p_attribute8 IN okl_party_roles_interface.attribute8%TYPE,
19373 p_attribute9 IN okl_party_roles_interface.attribute9%TYPE,
19374 p_attribute10 IN okl_party_roles_interface.attribute10%TYPE,
19375 p_attribute11 IN okl_party_roles_interface.attribute11%TYPE,
19376 p_attribute12 IN okl_party_roles_interface.attribute12%TYPE,
19377 p_attribute13 IN okl_party_roles_interface.attribute13%TYPE,
19378 p_attribute14 IN okl_party_roles_interface.attribute14%TYPE,
19379 p_attribute15 IN okl_party_roles_interface.attribute15%TYPE
19380 ) IS
19381 l_proc_name VARCHAR2(35) := 'PROCESS_PARTY_ROLE';
19382 party_role_failed EXCEPTION;
19383 l_progress VARCHAR2(10);
19384
19385 p_cplv_rec cplv_rec_type;
19386 x_cplv_rec cplv_rec_type;
19387 l_rgpv_rec rgpv_rec_type;
19388 x_rgpv_rec rgpv_rec_type;
19389 l_rulv_rec rulv_rec_type;
19390 x_rulv_rec rulv_rec_type;
19391 l_rmpv_rec rmpv_rec_type;
19392 x_rmpv_rec rmpv_rec_type;
19393 l_rgp_id NUMBER;
19394
19395 x_asset_vendor_id NUMBER := NULL;
19396 x_service_vendor_id NUMBER := NULL;
19397 x_fees_vendor_id NUMBER := NULL;
19398 x_guarantor_id NUMBER := NULL;
19399 x_rrd_id NUMBER := NULL;
19400 x_guarantor_site_id NUMBER;
19401 x_payment_term_id1 VARCHAR2(240);
19402 x_pay_site_id1 VARCHAR2(240);
19403 x_payment_method_id1 VARCHAR2(240);
19404
19405 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
19406 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
19407 SELECT id1
19408 FROM okx_parties_v
19409 WHERE ((party_number = p_customer_number
19410 AND
19411 p_customer_number IS NOT NULL
19412 )
19413 OR
19414 (id1 = p_customer_id
19415 AND
19416 p_customer_id IS NOT NULL
19417 )
19418 );
19419
19420 CURSOR pmnt_basis_csr (p_payment_basis OKL_PARTY_PAYMENT_DTLS.payment_basis%TYPE) IS
19421 SELECT 'Y'
19422 FROM FND_LOOKUPS
19423 WHERE lookup_type = 'OKL_PAYMENT_BASIS'
19424 AND nvl(enabled_flag,'N') = 'Y'
19425 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate)
19426 AND lookup_code = p_payment_basis;
19427
19428 CURSOR disb_basis_csr (p_disbursement_basis OKL_PARTY_PAYMENT_DTLS.disbursement_basis%TYPE) IS
19429 SELECT 'Y'
19430 FROM FND_LOOKUPS
19431 WHERE lookup_type = 'OKL_DISBURSE_BASIS'
19432 AND nvl(enabled_flag,'N') = 'Y'
19433 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate)
19434 AND lookup_code = p_disbursement_basis;
19435
19436 CURSOR proc_fee_basis_csr (p_processing_fee_basis OKL_PARTY_PAYMENT_DTLS.disbursement_basis%TYPE) IS
19437 SELECT 'Y'
19438 FROM FND_LOOKUPS
19439 WHERE lookup_type = 'OKL_PROC_FEE_BASIS'
19440 AND nvl(enabled_flag,'N') = 'Y'
19441 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate)
19442 AND lookup_code = p_processing_fee_basis;
19443
19444 l_vend_cust_id NUMBER;
19445 l_vend_cust_acc_id NUMBER;
19446 x_billable_vendor_id NUMBER;
19447 l_vend_bill_to_addr_id NUMBER;
19448 l_vend_payment_method_id NUMBER;
19449 l_vend_bank_acc_id NUMBER;
19450 l_vend_invoice_format_id NUMBER;
19451 l_vend_invoice_format_name VARCHAR2(450);
19452
19453 -- pass through
19454 l_paygroup_code po_vendor_sites_all.pay_group_lookup_code%TYPE;
19455 l_base_pmnt_dtls_rec ppydv_rec_type;
19456 l_evg_pmnt_dtls_rec ppydv_rec_type;
19457 l_pmnt_dtls_tbl_in ppydv_tbl_type;
19458 l_pmnt_dtls_tbl_out ppydv_tbl_type;
19459 l_counter NUMBER := 0;
19460 rec_exists_yn VARCHAR2(1);
19461
19462 l_kplv_rec kplv_rec_type;
19463 x_kplv_rec kplv_rec_type;
19464
19465 l_evg_cont_pmnt_dtls_rec ppydv_rec_type;
19466 l_cont_pmnt_dtls_tbl_in ppydv_tbl_type;
19467 l_cont_pmnt_dtls_tbl_out ppydv_tbl_type;
19468 BEGIN
19469
19470 x_return_status := OKL_API.G_RET_STS_SUCCESS;
19471 debug_message(l_proc_name);
19472
19473 IF (p_asset_vendor_id IS NOT NULL) THEN
19474 x_asset_vendor_id := p_asset_vendor_id;
19475 ELSIF (p_asset_vendor_name IS NOT NULL) THEN
19476 get_vendor_id (
19477 x_return_status => x_return_status,
19478 x_msg_count => x_msg_count,
19479 x_msg_data => x_msg_data,
19480 p_contract_number => p_contract_number,
19481 p_line_number => p_line_number,
19482 x_vendor_id => x_asset_vendor_id,
19483 p_vendor_name => p_asset_vendor_name
19484 );
19485 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19486 RAISE party_role_failed;
19487 END IF;
19488 END IF;
19489
19490 IF (p_billable_vendor_id IS NOT NULL
19491 OR
19492 p_billable_vendor_name IS NOT NULL) THEN
19493
19494 IF (p_vend_as_customer_id IS NOT NULL
19495 OR
19496 p_vend_as_customer_number IS NOT NULL) THEN
19497
19498 OPEN customer_csr(p_vend_as_customer_number,
19499 p_vend_as_customer_id);
19500
19501 FETCH customer_csr INTO l_vend_cust_id;
19502 IF customer_csr%NOTFOUND THEN
19503 okl_api.set_message(
19504 G_APP_NAME,
19505 G_INVALID_VALUE,
19506 'CONTRACT_NUM',
19507 p_contract_number,
19508 'COL_NAME',
19509 'VENDOR AS CUSTOMER ACCOUNT',
19510 'COL_VALUE',
19511 p_vend_as_customer_id||', '||p_vend_as_customer_number
19512 );
19513 x_return_status := OKL_API.G_RET_STS_ERROR;
19514 RAISE party_role_failed;
19515 END IF;
19516
19517 CLOSE customer_csr;
19518 ELSE
19519 okl_api.set_message(
19520 G_APP_NAME,
19521 G_MISSING_VALUE,
19522 'CONTRACT_NUM',
19523 p_contract_number,
19524 'COL_NAME',
19525 'VENDOR AS CUSTOMER'
19526 );
19527 x_return_status := OKL_API.G_RET_STS_ERROR;
19528 RAISE party_role_failed;
19529 END IF; -- Vend as customer
19530
19531 IF (p_vend_as_cust_acc_id IS NOT NULL
19532 OR
19533 p_vend_as_cust_acc_number IS NOT NULL) THEN
19534
19535 get_customer_account_id(
19536 x_return_status => x_return_status,
19537 x_msg_count => x_msg_count,
19538 x_msg_data => x_msg_data,
19539 p_contract_number => p_contract_number,
19540 p_customer_id => l_vend_cust_id,
19541 p_customer_account_id => p_vend_as_cust_acc_id,
19542 p_customer_account_number => p_vend_as_cust_acc_number,
19543 x_customer_account_id => l_vend_cust_acc_id
19544 );
19545
19546 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19547 x_return_status := OKL_API.G_RET_STS_ERROR;
19548 raise party_role_failed;
19549 END IF;
19550
19551 debug_message('------>l_vend_cust_acc_id : '||l_vend_cust_acc_id);
19552 ELSE
19553 okl_api.set_message(
19554 G_APP_NAME,
19555 G_MISSING_VALUE,
19556 'CONTRACT_NUM',
19557 p_contract_number,
19558 'COL_NAME',
19559 'VENDOR AS CUSTOMER ACCOUNT'
19560 );
19561 x_return_status := OKL_API.G_RET_STS_ERROR;
19562 RAISE party_role_failed;
19563 END IF; -- vend as cust acct
19564
19565 IF (p_vend_bill_to_addr_id IS NOT NULL
19566 OR
19567 p_vend_bill_to_addr IS NOT NULL) THEN
19568 get_bill_to_address_id(
19569 x_return_status => x_return_status,
19570 x_msg_count => x_msg_count,
19571 x_msg_data => x_msg_data,
19572 p_contract_number => p_contract_number,
19573 p_auth_org_id => p_auth_org_id,
19574 p_bill_to_address_id => p_vend_bill_to_addr_id,
19575 p_bill_to_address => p_vend_bill_to_addr,
19576 p_customer_account_id => l_vend_cust_acc_id,
19577 x_bill_to_address_id => l_vend_bill_to_addr_id
19578 );
19579
19580 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19581 x_return_status := OKL_API.G_RET_STS_ERROR;
19582 raise party_role_failed;
19583 END IF;
19584 ELSE
19585 okl_api.set_message(
19586 G_APP_NAME,
19587 G_MISSING_VALUE,
19588 'CONTRACT_NUM',
19589 p_contract_number,
19590 'COL_NAME',
19591 'VENDOR BILL TO ADDRESS'
19592 );
19593 x_return_status := OKL_API.G_RET_STS_ERROR;
19594 RAISE party_role_failed;
19595 END IF; -- vend bill to addr
19596
19597 END IF; -- billable vendor info
19598
19599 debug_message('------>l_vend_bill_to_addr_id : '||l_vend_bill_to_addr_id);
19600 debug_message('------> Asset Vendor id: '||x_asset_vendor_id);
19601
19602 IF (x_asset_vendor_id IS NOT NULL) THEN
19603 p_cplv_rec := NULL;
19604
19605 IF (p_line_number IS NOT NULL) THEN
19606 p_cplv_rec.chr_id := NULL;
19607 p_cplv_rec.dnz_chr_id := p_chr_id;
19608 IF ((p_pth_evg_vendor_site_code is NOT NULL) OR
19609 (p_pth_evg_vendor_site_id is NOT NULL)) THEN
19610 p_cplv_rec.cle_id := p_fin_cle_id; -- PASS THROUGH VENDOR
19611 ELSE
19612 p_cplv_rec.cle_id := p_model_cle_id; -- ASSET VENDOR
19613 END IF;
19614 ELSE
19615 p_cplv_rec.chr_id := p_chr_id;
19616 p_cplv_rec.dnz_chr_id := p_chr_id;
19617 p_cplv_rec.cle_id := NULL;
19618
19619 -- Contract addl field, Bug 4558486, for party role at header level and asset vendor only
19620
19621 debug_message('Party role DFF...'||'Vendor name/id: '||p_asset_vendor_name||'/'||p_asset_vendor_id);
19622
19623 l_kplv_rec.validate_dff_yn := 'Y'; -- always validate DFF
19624 l_kplv_rec.attribute_category := p_attribute_category;
19625 debug_message('attribute_category: '||l_kplv_rec.attribute_category);
19626 l_kplv_rec.attribute1 := p_attribute1;
19627 debug_message('attribute1: '||l_kplv_rec.attribute1);
19628 l_kplv_rec.attribute2 := p_attribute2;
19629 debug_message('attribute2: '||l_kplv_rec.attribute2);
19630 l_kplv_rec.attribute3 := p_attribute3;
19631 l_kplv_rec.attribute4 := p_attribute4;
19632 l_kplv_rec.attribute5 := p_attribute5;
19633 l_kplv_rec.attribute6 := p_attribute6;
19634 l_kplv_rec.attribute7 := p_attribute7;
19635 l_kplv_rec.attribute8 := p_attribute8;
19636 l_kplv_rec.attribute9 := p_attribute9;
19637 l_kplv_rec.attribute10 := p_attribute10;
19638 l_kplv_rec.attribute11 := p_attribute11;
19639 l_kplv_rec.attribute12 := p_attribute12;
19640 l_kplv_rec.attribute13 := p_attribute13;
19641 l_kplv_rec.attribute14 := p_attribute14;
19642 l_kplv_rec.attribute15 := p_attribute15;
19643 -- Contract addl field, Bug 4558486
19644
19645 END IF;
19646
19647 p_cplv_rec.object1_id1 := TO_CHAR(x_asset_vendor_id);
19648 p_cplv_rec.object1_id2 := '#';
19649 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
19650 p_cplv_rec.rle_code := 'OKL_VENDOR';
19651
19652 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
19653 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
19654
19655 --OKL_OKC_MIGRATION_PVT.create_k_party_role( -- Bug 4558486
19656 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
19657 p_api_version => 1.0,
19658 p_init_msg_list => OKL_API.G_FALSE,
19659 x_return_status => x_return_status,
19660 x_msg_count => x_msg_count,
19661 x_msg_data => x_msg_data,
19662 p_cplv_rec => p_cplv_rec,
19663 p_kplv_rec => l_kplv_rec,
19664 x_cplv_rec => x_cplv_rec,
19665 x_kplv_rec => x_kplv_rec
19666 );
19667
19668 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19669 RAISE party_role_failed;
19670 END IF;
19671 END IF; -- asset vendor
19672
19673 debug_message('------>Asset vendor processed');
19674
19675 -- Evergreen Passthru at header
19676 IF (g_evg_cont_pmnt_hdr.id IS NOT NULL) THEN
19677 NULL;
19678 END IF;
19679
19680 -- Evergreen Passthru at header
19681
19682 IF (p_line_type = 'SERVICE') THEN
19683 IF (p_service_vendor_id IS NOT NULL) THEN
19684 x_service_vendor_id := p_service_vendor_id;
19685 ELSIF (p_service_vendor_name IS NOT NULL) THEN
19686 get_vendor_id (
19687 x_return_status => x_return_status,
19688 x_msg_count => x_msg_count,
19689 x_msg_data => x_msg_data,
19690 p_contract_number => p_contract_number,
19691 p_line_number => p_line_number,
19692 x_vendor_id => x_service_vendor_id,
19693 p_vendor_name => p_service_vendor_name
19694 );
19695 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19696 RAISE party_role_failed;
19697 END IF;
19698 END IF;
19699
19700 IF (x_service_vendor_id IS NOT NULL) THEN
19701 p_cplv_rec := NULL;
19702 l_kplv_rec := NULL;
19703
19704 IF (p_line_number IS NOT NULL) THEN
19705 p_cplv_rec.chr_id := NULL;
19706 p_cplv_rec.dnz_chr_id := p_chr_id;
19707 p_cplv_rec.cle_id := p_service_line_id;
19708 ELSE
19709 p_cplv_rec.chr_id := p_chr_id;
19710 p_cplv_rec.dnz_chr_id := p_chr_id;
19711 p_cplv_rec.cle_id := NULL;
19712 END IF;
19713 p_cplv_rec.object1_id1 := TO_CHAR(x_service_vendor_id);
19714 p_cplv_rec.object1_id2 := '#';
19715 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
19716 p_cplv_rec.rle_code := 'OKL_VENDOR';
19717
19718 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
19719 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
19720
19721 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
19722 p_api_version => 1.0,
19723 p_init_msg_list => OKL_API.G_FALSE,
19724 x_return_status => x_return_status,
19725 x_msg_count => x_msg_count,
19726 x_msg_data => x_msg_data,
19727 p_cplv_rec => p_cplv_rec,
19728 p_kplv_rec => l_kplv_rec,
19729 x_cplv_rec => x_cplv_rec,
19730 x_kplv_rec => x_kplv_rec
19731 );
19732
19733 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19734 RAISE party_role_failed;
19735 END IF;
19736
19737 debug_message('------>Party Roles Created');
19738
19739 /* Passthru is moved to OKL table,do not need rule group LAPSTH
19740
19741 okl_contract_top_line_pub.validate_passthru_rule(
19742 p_api_version => 1.0,
19743 p_init_msg_list => OKL_API.G_FALSE,
19744 x_return_status => x_return_status,
19745 x_msg_count => x_msg_count,
19746 x_msg_data => x_msg_data,
19747 p_line_id => p_service_line_id,
19748 p_vendor_id => x_service_vendor_id,
19749 p_payment_term => p_payment_term,
19750 p_payment_term_id => p_payment_term_id,
19751 p_pay_to_site => p_vendor_paysite_name,
19752 p_pay_to_site_id => p_vendor_paysite_id,
19753 p_payment_method_code => p_vendor_payment_method,
19754 x_payment_term_id1 => x_payment_term_id1,
19755 x_pay_site_id1 => x_pay_site_id1,
19756 x_payment_method_id1 => x_payment_method_id1
19757 );
19758
19759 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19760 RAISE party_role_failed;
19761 END IF;
19762 -- Rule Group LAPSTH
19763 l_rgpv_rec := NULL;
19764 l_rgp_id := NULL;
19765 l_rgpv_rec.rgd_code := 'LAPSTH';
19766 l_rgpv_rec.chr_id := NULL;
19767 l_rgpv_rec.dnz_chr_id := p_chr_id;
19768 l_rgpv_rec.cle_id := p_service_line_id;
19769 l_rgpv_rec.rgp_type := 'KRG';
19770
19771 l_rulv_rec := NULL;
19772
19773 --debug_message('Term: '||x_payment_term_id1);
19774
19775 IF (x_payment_term_id1 IS NOT NULL) THEN
19776
19777 l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
19778 l_rulv_rec.object1_id1 := x_payment_term_id1;
19779 l_rulv_rec.object1_id2 := '#';
19780 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19781 l_rulv_rec.dnz_chr_id := p_chr_id;
19782 l_rulv_rec.rule_information_category := 'LAPTR';
19783 l_rulv_rec.std_template_yn := 'N';
19784 l_rulv_rec.warn_yn := 'N';
19785 END IF;
19786
19787 create_rule_group_and_rule(
19788 x_return_status => x_return_status,
19789 x_msg_count => x_msg_count,
19790 x_msg_data => x_msg_data,
19791 p_rgp_id => l_rgp_id,
19792 p_rgpv_rec => l_rgpv_rec,
19793 p_rulv_rec => l_rulv_rec,
19794 x_rgpv_rec => x_rgpv_rec,
19795 x_rulv_rec => x_rulv_rec
19796 );
19797 l_progress := '1.2';
19798 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19799 raise party_role_failed;
19800 END IF;
19801
19802 debug_message('------>Rule: LAPSTH/LAPTR processed');
19803
19804 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19805 l_rgp_id := x_rgpv_rec.id;
19806 END IF;
19807
19808 l_rulv_rec := NULL;
19809 --debug_message('Site: '||x_pay_site_id1);
19810 IF (x_pay_site_id1 IS NOT NULL) THEN
19811
19812 l_rulv_rec.jtot_object1_code := 'OKX_PAYTO';
19813 l_rulv_rec.object1_id1 := x_pay_site_id1;
19814 l_rulv_rec.object1_id2 := '#';
19815 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19816 l_rulv_rec.dnz_chr_id := p_chr_id;
19817 l_rulv_rec.rule_information_category := 'LAPTO';
19818 l_rulv_rec.std_template_yn := 'N';
19819 l_rulv_rec.warn_yn := 'N';
19820 END IF;
19821
19822 create_rule_group_and_rule(
19823 x_return_status => x_return_status,
19824 x_msg_count => x_msg_count,
19825 x_msg_data => x_msg_data,
19826 p_rgp_id => l_rgp_id,
19827 p_rgpv_rec => l_rgpv_rec,
19828 p_rulv_rec => l_rulv_rec,
19829 x_rgpv_rec => x_rgpv_rec,
19830 x_rulv_rec => x_rulv_rec
19831 );
19832 l_progress := '1.2';
19833 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19834 raise party_role_failed;
19835 END IF;
19836
19837 debug_message('------>Rule: LAPSTH/LAPTO processed');
19838 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19839 l_rgp_id := x_rgpv_rec.id;
19840 END IF;
19841
19842 l_rulv_rec := NULL;
19843 --debug_message('Pay method: '||x_payment_method_id1);
19844 IF (x_payment_method_id1 IS NOT NULL) THEN
19845
19846
19847 --l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
19848 --l_rulv_rec.object1_id1 := x_payment_method_id1;
19849 --l_rulv_rec.object1_id2 := '#';
19850
19851 l_rulv_rec.rule_information1 := x_payment_method_id1;
19852 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19853 l_rulv_rec.dnz_chr_id := p_chr_id;
19854 l_rulv_rec.rule_information_category := 'LAVPMT';
19855 l_rulv_rec.std_template_yn := 'N';
19856 l_rulv_rec.warn_yn := 'N';
19857 END IF;
19858
19859 create_rule_group_and_rule(
19860 x_return_status => x_return_status,
19861 x_msg_count => x_msg_count,
19862 x_msg_data => x_msg_data,
19863 p_rgp_id => l_rgp_id,
19864 p_rgpv_rec => l_rgpv_rec,
19865 p_rulv_rec => l_rulv_rec,
19866 x_rgpv_rec => x_rgpv_rec,
19867 x_rulv_rec => x_rulv_rec
19868 );
19869 l_progress := '1.2';
19870 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19871 raise party_role_failed;
19872 END IF;
19873
19874 debug_message('------>Rule: LAPSTH/LAVPMT processed');
19875 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19876 l_rgp_id := x_rgpv_rec.id;
19877 END IF;
19878
19879 l_rulv_rec := NULL;
19880
19881 IF (p_passthrough_percent IS NOT NULL) THEN
19882 l_rulv_rec.rule_information1 := p_passthrough_percent;
19883 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19884 l_rulv_rec.dnz_chr_id := p_chr_id;
19885 l_rulv_rec.rule_information_category := 'LAPTPR';
19886 l_rulv_rec.std_template_yn := 'N';
19887 l_rulv_rec.warn_yn := 'N';
19888 END IF;
19889
19890 create_rule_group_and_rule(
19891 x_return_status => x_return_status,
19892 x_msg_count => x_msg_count,
19893 x_msg_data => x_msg_data,
19894 p_rgp_id => l_rgp_id,
19895 p_rgpv_rec => l_rgpv_rec,
19896 p_rulv_rec => l_rulv_rec,
19897 x_rgpv_rec => x_rgpv_rec,
19898 x_rulv_rec => x_rulv_rec
19899 );
19900
19901 l_progress := '1.5';
19902 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19903 raise party_role_failed;
19904 END IF;
19905
19906 debug_message('------>Rule: LAPSTH/LAPTRP processed');
19907
19908 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19909 l_rgp_id := x_rgpv_rec.id;
19910 END IF;
19911
19912 l_rulv_rec := NULL;
19913 IF (p_passthrough_basis_code IS NOT NULL) THEN
19914 l_rulv_rec.rule_information1 := p_passthrough_basis_code;
19915 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19916 l_rulv_rec.dnz_chr_id := p_chr_id;
19917 l_rulv_rec.rule_information_category := 'LAPTBC';
19918 l_rulv_rec.std_template_yn := 'N';
19919 l_rulv_rec.warn_yn := 'N';
19920 END IF;
19921
19922 create_rule_group_and_rule(
19923 x_return_status => x_return_status,
19924 x_msg_count => x_msg_count,
19925 x_msg_data => x_msg_data,
19926 p_rgp_id => l_rgp_id,
19927 p_rgpv_rec => l_rgpv_rec,
19928 p_rulv_rec => l_rulv_rec,
19929 x_rgpv_rec => x_rgpv_rec,
19930 x_rulv_rec => x_rulv_rec
19931 );
19932
19933 l_progress := '1.6';
19934 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19935 raise party_role_failed;
19936 END IF;
19937
19938 debug_message('------>Rule: LAPSTH/LAPTBC processed');
19939 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19940 l_rgp_id := x_rgpv_rec.id;
19941 END IF;
19942 */
19943 END IF; -- service vendor
19944
19945 END IF;
19946
19947 --debug_message('Fees vendor: '||p_fees_vendor_name);
19948 --debug_message('Line Type: '|| p_line_type);
19949
19950 IF (p_line_type = 'FEE') THEN
19951 --debug_message('Inside FEE line type');
19952 IF (p_fees_vendor_id IS NOT NULL) THEN
19953 x_fees_vendor_id := p_fees_vendor_id;
19954 ELSIF (p_fees_vendor_name IS NOT NULL) THEN
19955 get_vendor_id (
19956 x_return_status => x_return_status,
19957 x_msg_count => x_msg_count,
19958 x_msg_data => x_msg_data,
19959 p_contract_number => p_contract_number,
19960 p_line_number => p_line_number,
19961 x_vendor_id => x_fees_vendor_id,
19962 p_vendor_name => p_fees_vendor_name
19963 );
19964 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19965 RAISE party_role_failed;
19966 END IF;
19967 END IF;
19968
19969 debug_message('------>FEE Vendor ID: '||x_fees_vendor_id);
19970 IF (x_fees_vendor_id IS NOT NULL) THEN
19971
19972 p_cplv_rec := NULL;
19973 l_kplv_rec := NULL;
19974
19975 IF (p_line_number IS NOT NULL) THEN
19976 p_cplv_rec.chr_id := NULL;
19977 p_cplv_rec.dnz_chr_id := p_chr_id;
19978 p_cplv_rec.cle_id := p_fee_line_id;
19979 ELSE
19980 p_cplv_rec.chr_id := p_chr_id;
19981 p_cplv_rec.dnz_chr_id := p_chr_id;
19982 p_cplv_rec.cle_id := NULL;
19983 END IF;
19984 p_cplv_rec.object1_id1 := TO_CHAR(x_fees_vendor_id);
19985 p_cplv_rec.object1_id2 := '#';
19986 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
19987 p_cplv_rec.rle_code := 'OKL_VENDOR';
19988
19989 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
19990 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
19991
19992 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
19993 p_api_version => 1.0,
19994 p_init_msg_list => OKL_API.G_FALSE,
19995 x_return_status => x_return_status,
19996 x_msg_count => x_msg_count,
19997 x_msg_data => x_msg_data,
19998 p_cplv_rec => p_cplv_rec,
19999 p_kplv_rec => l_kplv_rec,
20000 x_cplv_rec => x_cplv_rec,
20001 x_kplv_rec => x_kplv_rec
20002 );
20003
20004 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20005 RAISE party_role_failed;
20006 END IF;
20007
20008 debug_message('------>Fee Vendor Processed');
20009
20010 /* Passthru is moved to OKL table,do not need rule group LAPSTH
20011
20012 okl_contract_top_line_pub.validate_passthru_rule(
20013 p_api_version => 1.0,
20014 p_init_msg_list => OKL_API.G_FALSE,
20015 x_return_status => x_return_status,
20016 x_msg_count => x_msg_count,
20017 x_msg_data => x_msg_data,
20018 p_line_id => p_fee_line_id,
20019 p_vendor_id => x_fees_vendor_id,
20020 p_payment_term => p_payment_term,
20021 p_payment_term_id => p_payment_term_id,
20022 p_pay_to_site => p_vendor_paysite_name,
20023 p_pay_to_site_id => p_vendor_paysite_id,
20024 p_payment_method_code => p_vendor_payment_method,
20025 x_payment_term_id1 => x_payment_term_id1,
20026 x_pay_site_id1 => x_pay_site_id1,
20027 x_payment_method_id1 => x_payment_method_id1
20028 );
20029
20030 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20031 RAISE party_role_failed;
20032 END IF;
20033
20034 -- Rule Group LAPSTH
20035 l_rgpv_rec := NULL;
20036 l_rgp_id := NULL;
20037 l_rgpv_rec.rgd_code := 'LAPSTH';
20038 l_rgpv_rec.chr_id := NULL;
20039 l_rgpv_rec.dnz_chr_id := p_chr_id;
20040 l_rgpv_rec.cle_id := p_fee_line_id;
20041 l_rgpv_rec.rgp_type := 'KRG';
20042
20043 l_rulv_rec := NULL;
20044
20045 --debug_message('Term: '||x_payment_term_id1);
20046
20047 IF (x_payment_term_id1 IS NOT NULL) THEN
20048
20049 l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
20050 l_rulv_rec.object1_id1 := x_payment_term_id1;
20051 l_rulv_rec.object1_id2 := '#';
20052 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20053 l_rulv_rec.dnz_chr_id := p_chr_id;
20054 l_rulv_rec.rule_information_category := 'LAPTR';
20055 l_rulv_rec.std_template_yn := 'N';
20056 l_rulv_rec.warn_yn := 'N';
20057 END IF;
20058
20059 create_rule_group_and_rule(
20060 x_return_status => x_return_status,
20061 x_msg_count => x_msg_count,
20062 x_msg_data => x_msg_data,
20063 p_rgp_id => l_rgp_id,
20064 p_rgpv_rec => l_rgpv_rec,
20065 p_rulv_rec => l_rulv_rec,
20066 x_rgpv_rec => x_rgpv_rec,
20067 x_rulv_rec => x_rulv_rec
20068 );
20069 l_progress := '1.2';
20070 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20071 raise party_role_failed;
20072 END IF;
20073
20074 debug_message('------>Fee Rule: LAPSTH/LAPTR processed');
20075 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20076 l_rgp_id := x_rgpv_rec.id;
20077 END IF;
20078 l_rulv_rec := NULL;
20079 --debug_message('Site: '||x_pay_site_id1);
20080 IF (x_pay_site_id1 IS NOT NULL) THEN
20081
20082 l_rulv_rec.jtot_object1_code := 'OKX_PAYTO';
20083 l_rulv_rec.object1_id1 := x_pay_site_id1;
20084 l_rulv_rec.object1_id2 := '#';
20085 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20086 l_rulv_rec.dnz_chr_id := p_chr_id;
20087 l_rulv_rec.rule_information_category := 'LAPTO';
20088 l_rulv_rec.std_template_yn := 'N';
20089 l_rulv_rec.warn_yn := 'N';
20090 END IF;
20091
20092 create_rule_group_and_rule(
20093 x_return_status => x_return_status,
20094 x_msg_count => x_msg_count,
20095 x_msg_data => x_msg_data,
20096 p_rgp_id => l_rgp_id,
20097 p_rgpv_rec => l_rgpv_rec,
20098 p_rulv_rec => l_rulv_rec,
20099 x_rgpv_rec => x_rgpv_rec,
20100 x_rulv_rec => x_rulv_rec
20101 );
20102 l_progress := '1.2';
20103 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20104 raise party_role_failed;
20105 END IF;
20106
20107 debug_message('------>Fee Rule: LAPSTH/LAPTO processed');
20108 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20109 l_rgp_id := x_rgpv_rec.id;
20110 END IF;
20111
20112 l_rulv_rec := NULL;
20113 --debug_message('Pay method: '||x_payment_method_id1);
20114 IF (x_payment_method_id1 IS NOT NULL) THEN
20115
20116
20117 --l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
20118 --l_rulv_rec.object1_id1 := x_payment_method_id1;
20119 --l_rulv_rec.object1_id2 := '#';
20120
20121 l_rulv_rec.rule_information1 := x_payment_method_id1;
20122 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20123 l_rulv_rec.dnz_chr_id := p_chr_id;
20124 l_rulv_rec.rule_information_category := 'LAVPMT';
20125 l_rulv_rec.std_template_yn := 'N';
20126 l_rulv_rec.warn_yn := 'N';
20127 END IF;
20128
20129 create_rule_group_and_rule(
20130 x_return_status => x_return_status,
20131 x_msg_count => x_msg_count,
20132 x_msg_data => x_msg_data,
20133 p_rgp_id => l_rgp_id,
20134 p_rgpv_rec => l_rgpv_rec,
20135 p_rulv_rec => l_rulv_rec,
20136 x_rgpv_rec => x_rgpv_rec,
20137 x_rulv_rec => x_rulv_rec
20138 );
20139 l_progress := '1.2';
20140 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20141 raise party_role_failed;
20142 END IF;
20143
20144 debug_message('------>Fee Rule: LAPSTH/LAVPMT processed');
20145 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20146 l_rgp_id := x_rgpv_rec.id;
20147 END IF;
20148
20149 l_rulv_rec := NULL;
20150
20151 IF (p_passthrough_percent IS NOT NULL) THEN
20152 l_rulv_rec.rule_information1 := p_passthrough_percent;
20153 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20154 l_rulv_rec.dnz_chr_id := p_chr_id;
20155 l_rulv_rec.rule_information_category := 'LAPTPR';
20156 l_rulv_rec.std_template_yn := 'N';
20157 l_rulv_rec.warn_yn := 'N';
20158 END IF;
20159
20160 create_rule_group_and_rule(
20161 x_return_status => x_return_status,
20162 x_msg_count => x_msg_count,
20163 x_msg_data => x_msg_data,
20164 p_rgp_id => l_rgp_id,
20165 p_rgpv_rec => l_rgpv_rec,
20166 p_rulv_rec => l_rulv_rec,
20167 x_rgpv_rec => x_rgpv_rec,
20168 x_rulv_rec => x_rulv_rec
20169 );
20170
20171 l_progress := '1.5';
20172 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20173 raise party_role_failed;
20174 END IF;
20175
20176 debug_message('------>Fee Rule: LAPSTH/LAPTPR processed');
20177 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20178 l_rgp_id := x_rgpv_rec.id;
20179 END IF;
20180
20181 l_rulv_rec := NULL;
20182 IF (p_passthrough_basis_code IS NOT NULL) THEN
20183 l_rulv_rec.rule_information1 := p_passthrough_basis_code;
20184 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20185 l_rulv_rec.dnz_chr_id := p_chr_id;
20186 l_rulv_rec.rule_information_category := 'LAPTBC';
20187 l_rulv_rec.std_template_yn := 'N';
20188 l_rulv_rec.warn_yn := 'N';
20189 END IF;
20190
20191 create_rule_group_and_rule(
20192 x_return_status => x_return_status,
20193 x_msg_count => x_msg_count,
20194 x_msg_data => x_msg_data,
20195 p_rgp_id => l_rgp_id,
20196 p_rgpv_rec => l_rgpv_rec,
20197 p_rulv_rec => l_rulv_rec,
20198 x_rgpv_rec => x_rgpv_rec,
20199 x_rulv_rec => x_rulv_rec
20200 );
20201
20202 l_progress := '1.6';
20203 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20204 raise party_role_failed;
20205 END IF;
20206
20207 debug_message('------>Fee Rule: LAPSTH/LAPTBC processed');
20208 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20209 l_rgp_id := x_rgpv_rec.id;
20210 END IF;
20211 */
20212 END IF; -- Fees vendor
20213 END IF;
20214
20215 x_guarantor_id := NULL;
20216 IF (p_guarantor_id IS NOT NULl
20217 OR
20218 p_guarantor_number IS NOT NULL) THEN
20219 get_party_id(
20220 x_return_status => x_return_status,
20221 x_msg_count => x_msg_count,
20222 x_msg_data => x_msg_data,
20223 p_contract_number => p_contract_number,
20224 p_line_number => p_line_number,
20225 p_party_id => p_guarantor_id,
20226 p_party_number => p_guarantor_number,
20227 x_party_id => x_guarantor_id
20228 );
20229 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20230 RAISE party_role_failed;
20231 END IF;
20232 END IF;
20233
20234 debug_message('------>Guarantor id: '||x_guarantor_id);
20235
20236 IF (x_guarantor_id IS NOT NULL) THEN
20237
20238 -- Contract addl field, Bug 4558486, for party role at header level and asset vendor only
20239
20240 debug_message('Guarantor DFF...'||x_guarantor_id);
20241
20242 l_kplv_rec.validate_dff_yn := 'Y'; -- always validate DFF
20243 l_kplv_rec.attribute_category := p_attribute_category;
20244 debug_message('attribute_category: '||l_kplv_rec.attribute_category);
20245 l_kplv_rec.attribute1 := p_attribute1;
20246 debug_message('attribute1: '||l_kplv_rec.attribute1);
20247 l_kplv_rec.attribute2 := p_attribute2;
20248 debug_message('attribute2: '||l_kplv_rec.attribute2);
20249 l_kplv_rec.attribute3 := p_attribute3;
20250 l_kplv_rec.attribute4 := p_attribute4;
20251 l_kplv_rec.attribute5 := p_attribute5;
20252 l_kplv_rec.attribute6 := p_attribute6;
20253 l_kplv_rec.attribute7 := p_attribute7;
20254 l_kplv_rec.attribute8 := p_attribute8;
20255 l_kplv_rec.attribute9 := p_attribute9;
20256 l_kplv_rec.attribute10 := p_attribute10;
20257 l_kplv_rec.attribute11 := p_attribute11;
20258 l_kplv_rec.attribute12 := p_attribute12;
20259 l_kplv_rec.attribute13 := p_attribute13;
20260 l_kplv_rec.attribute14 := p_attribute14;
20261 l_kplv_rec.attribute15 := p_attribute15;
20262 -- Contract addl field, Bug 4558486
20263
20264 p_cplv_rec := NULL;
20265 p_cplv_rec.chr_id := p_chr_id;
20266 p_cplv_rec.dnz_chr_id := p_chr_id;
20267 p_cplv_rec.cle_id := NULL; -- always at header level
20268 p_cplv_rec.object1_id1 := TO_CHAR(x_guarantor_id);
20269 p_cplv_rec.object1_id2 := '#';
20270 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
20271 p_cplv_rec.rle_code := 'GUARANTOR';
20272
20273 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
20274 p_api_version => 1.0,
20275 p_init_msg_list => OKL_API.G_FALSE,
20276 x_return_status => x_return_status,
20277 x_msg_count => x_msg_count,
20278 x_msg_data => x_msg_data,
20279 p_cplv_rec => p_cplv_rec,
20280 p_kplv_rec => l_kplv_rec,
20281 x_cplv_rec => x_cplv_rec,
20282 x_kplv_rec => x_kplv_rec
20283 );
20284
20285 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20286 RAISE party_role_failed;
20287 END IF;
20288
20289 l_rgpv_rec := NULL;
20290 l_rgp_id := NULL;
20291 l_rgpv_rec.rgd_code := 'LAGRDT';
20292 l_rgpv_rec.chr_id := p_chr_id;
20293 l_rgpv_rec.dnz_chr_id := p_chr_id;
20294 l_rgpv_rec.cle_id := NULL; -- always at header level
20295 l_rgpv_rec.rgp_type := 'KRG';
20296
20297 l_rulv_rec := NULL;
20298 IF (p_guarantor_type IS NOT NULL) THEN
20299
20300 l_progress := 'P1.2';
20301
20302 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20303 l_rulv_rec.dnz_chr_id := p_chr_id;
20304 l_rulv_rec.rule_information1 := p_guarantor_type;
20305 l_rulv_rec.rule_information_category := 'LAGRNP';
20306 l_rulv_rec.std_template_yn := 'N';
20307 l_rulv_rec.warn_yn := 'N';
20308 END IF;
20309
20310 IF (p_guarantor_site_number IS NOT NULL
20311 OR
20312 p_guarantor_site_id IS NOT NULL
20313 ) THEN
20314 get_guarantor_address(
20315 x_return_status => x_return_status,
20316 x_msg_count => x_msg_count,
20317 x_msg_data => x_msg_data,
20318 p_contract_number => p_contract_number,
20319 p_line_number => p_line_number,
20320 p_guarantor_site_number => p_guarantor_site_number,
20321 p_guarantor_site_id => p_guarantor_site_id,
20322 x_guarantor_site_id => x_guarantor_site_id
20323 );
20324
20325 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20326 RAISE party_role_failed;
20327 END IF;
20328
20329 l_rulv_rec.jtot_object1_code := 'OKL_PARTYSITE'; -- Bug 5024651 'OKX_PARTSITE';
20330 l_rulv_rec.object1_id1 := TO_CHAR(x_guarantor_site_id);
20331 l_rulv_rec.object1_id2 := '#';
20332 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20333 l_rulv_rec.dnz_chr_id := p_chr_id;
20334 l_rulv_rec.rule_information_category := 'LAGRNP';
20335 l_rulv_rec.std_template_yn := 'N';
20336 l_rulv_rec.warn_yn := 'N';
20337
20338 END IF;
20339
20340 create_rule_group_and_rule(
20341 x_return_status => x_return_status,
20342 x_msg_count => x_msg_count,
20343 x_msg_data => x_msg_data,
20344 p_rgp_id => l_rgp_id,
20345 p_rgpv_rec => l_rgpv_rec,
20346 p_rulv_rec => l_rulv_rec,
20347 x_rgpv_rec => x_rgpv_rec,
20348 x_rulv_rec => x_rulv_rec
20349 );
20350
20351 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20352 raise party_role_failed;
20353 END IF;
20354
20355 debug_message('------>Fee Rule: LAGRDT/LAGRNP processed');
20356 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20357 l_rgp_id := x_rgpv_rec.id;
20358 END IF;
20359
20360 IF (p_guarantor_type IS NOT NULL) THEN
20361
20362 l_progress := 'P1.4';
20363 get_rrd_id(
20364 x_return_status => x_return_status,
20365 p_rgd_code => 'LAGRDT',
20366 p_rle_code => 'GUARANTOR',
20367 x_rrd_id => x_rrd_id
20368 );
20369 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20370 okl_api.set_message(
20371 G_APP_NAME,
20372 G_GUARANTOR_SETUP_ERROR,
20373 'CONTRACT_NUM',
20374 p_contract_number
20375 );
20376 x_return_status := OKL_API.G_RET_STS_ERROR;
20377 RAISE party_role_failed;
20378 END IF;
20379
20380 l_rmpv_rec.rgp_id := x_rgpv_rec.id;
20381 l_rmpv_rec.cpl_id := x_cplv_rec.id;
20382 l_rmpv_rec.rrd_id := x_rrd_id;
20383 l_rmpv_rec.dnz_chr_id := p_chr_id;
20384
20385 okl_rule_pub.create_rg_mode_pty_role(
20386 p_api_version => 1.0,
20387 p_init_msg_list => OKL_API.G_FALSE,
20388 x_return_status => x_return_status,
20389 x_msg_count => x_msg_count,
20390 x_msg_data => x_msg_data,
20391 p_rmpv_rec => l_rmpv_rec,
20392 x_rmpv_rec => x_rmpv_rec
20393 );
20394 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20395 x_return_status := OKL_API.G_RET_STS_ERROR;
20396 raise party_role_failed;
20397 END IF;
20398
20399 debug_message('------>Guaraontor type processed');
20400
20401 END IF; -- guarantor_type
20402
20403 l_rulv_rec := NULL;
20404 IF (p_guarantee_type IS NOT NULL) THEN
20405
20406 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20407 l_rulv_rec.dnz_chr_id := p_chr_id;
20408 l_rulv_rec.rule_information1 := p_guarantee_type;
20409 l_rulv_rec.rule_information_category := 'LAGRNT';
20410 l_rulv_rec.std_template_yn := 'N';
20411 l_rulv_rec.warn_yn := 'N';
20412
20413 END IF; -- guarantee_type
20414
20415 IF (p_guaranteed_amount IS NOT NULL) THEN
20416
20417 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20418 l_rulv_rec.dnz_chr_id := p_chr_id;
20419 l_rulv_rec.rule_information2 := TO_CHAR(p_guaranteed_amount);
20420 l_rulv_rec.rule_information_category := 'LAGRNT';
20421 l_rulv_rec.std_template_yn := 'N';
20422 l_rulv_rec.warn_yn := 'N';
20423 END IF; -- guaranteed_amount
20424
20425 IF (p_guarantee_date IS NOT NULL) THEN
20426
20427 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20428 l_rulv_rec.dnz_chr_id := p_chr_id;
20429 l_rulv_rec.rule_information3 := get_canonicaL_date(p_guarantee_date);
20430 l_rulv_rec.rule_information_category := 'LAGRNT';
20431 l_rulv_rec.std_template_yn := 'N';
20432 l_rulv_rec.warn_yn := 'N';
20433
20434 END IF; -- guarantee_date
20435
20436 IF (p_guarantee_comment IS NOT NULL) THEN
20437
20438 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20439 l_rulv_rec.dnz_chr_id := p_chr_id;
20440 l_rulv_rec.rule_information4 := p_guarantee_comment;
20441 l_rulv_rec.rule_information_category := 'LAGRNT';
20442 l_rulv_rec.std_template_yn := 'N';
20443 l_rulv_rec.warn_yn := 'N';
20444
20445 END IF; -- guarantee_comment
20446
20447 create_rule_group_and_rule(
20448 x_return_status => x_return_status,
20449 x_msg_count => x_msg_count,
20450 x_msg_data => x_msg_data,
20451 p_rgp_id => l_rgp_id,
20452 p_rgpv_rec => l_rgpv_rec,
20453 p_rulv_rec => l_rulv_rec,
20454 x_rgpv_rec => x_rgpv_rec,
20455 x_rulv_rec => x_rulv_rec
20456 );
20457
20458 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20459 raise party_role_failed;
20460 END IF;
20461
20462 debug_message('------>Rule: LAGRDT/LAGRNT processed');
20463
20464 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20465 l_rgp_id := x_rgpv_rec.id;
20466 END IF;
20467
20468 END IF; -- guarantor_id
20469
20470 -- Create Vendor Billing info, if any
20471 IF (p_billable_vendor_id IS NOT NULL) THEN
20472 x_billable_vendor_id := p_billable_vendor_id;
20473 ELSIF
20474 (p_billable_vendor_name IS NOT NULL) THEN
20475 get_vendor_id (
20476 x_return_status => x_return_status,
20477 x_msg_count => x_msg_count,
20478 x_msg_data => x_msg_data,
20479 p_contract_number => p_contract_number,
20480 p_line_number => p_line_number,
20481 x_vendor_id => x_billable_vendor_id,
20482 p_vendor_name => p_billable_vendor_name
20483 );
20484 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20485 RAISE party_role_failed;
20486 END IF;
20487 END IF;
20488
20489 debug_message('------>Billable Vendor id: '||x_billable_vendor_id);
20490
20491 IF (x_billable_vendor_id IS NOT NULL) THEN
20492
20493 -- Create billing detail
20494 IF (x_billable_vendor_id <> x_asset_vendor_id) THEN
20495 okl_api.set_message(
20496 G_APP_NAME,
20497 G_BILL_VENDOR_INVALID,
20498 'CONTRACT_NUM',
20499 p_contract_number,
20500 'VENDOR',
20501 p_billable_vendor_id||', '||p_billable_vendor_name
20502 );
20503 x_return_status := OKL_API.G_RET_STS_ERROR;
20504 RAISE party_role_failed;
20505 END IF;
20506
20507 l_rgpv_rec := NULL;
20508 l_rgp_id := NULL;
20509 l_rgpv_rec.rgd_code := 'LAVENB';
20510 l_rgpv_rec.chr_id := p_chr_id;
20511 l_rgpv_rec.dnz_chr_id := p_chr_id;
20512 l_rgpv_rec.cle_id := NULL; -- always at header level
20513 l_rgpv_rec.rgp_type := 'KRG';
20514
20515 l_rulv_rec := NULL;
20516
20517 /* Check above , Rule migration impact
20518 IF (p_vend_as_customer_id IS NOT NULL
20519 OR
20520 p_vend_as_customer_number IS NOT NULL) THEN
20521
20522 OPEN customer_csr(p_vend_as_customer_number,
20523 p_vend_as_customer_id);
20524
20525 FETCH customer_csr INTO l_vend_cust_id;
20526 IF customer_csr%NOTFOUND THEN
20527 okl_api.set_message(
20528 G_APP_NAME,
20529 G_INVALID_VALUE,
20530 'CONTRACT_NUM',
20531 p_contract_number,
20532 'COL_NAME',
20533 'VENDOR AS CUSTOMER ACCOUNT',
20534 'COL_VALUE',
20535 p_vend_as_customer_id||', '||p_vend_as_customer_number
20536 );
20537 x_return_status := OKL_API.G_RET_STS_ERROR;
20538 RAISE party_role_failed;
20539 END IF;
20540
20541 CLOSE customer_csr;
20542 */
20543 IF (l_vend_cust_id IS NOT NULL) THEN
20544
20545 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
20546 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_cust_id);
20547 l_rulv_rec.object1_id2 := '#';
20548 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20549 l_rulv_rec.dnz_chr_id := p_chr_id;
20550 l_rulv_rec.rule_information_category := 'LAVENC';
20551 l_rulv_rec.std_template_yn := 'N';
20552 l_rulv_rec.warn_yn := 'N';
20553
20554 create_rule_group_and_rule(
20555 x_return_status => x_return_status,
20556 x_msg_count => x_msg_count,
20557 x_msg_data => x_msg_data,
20558 p_rgp_id => l_rgp_id,
20559 p_rgpv_rec => l_rgpv_rec,
20560 p_rulv_rec => l_rulv_rec,
20561 x_rgpv_rec => x_rgpv_rec,
20562 x_rulv_rec => x_rulv_rec
20563 );
20564
20565 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20566 raise party_role_failed;
20567 END IF;
20568
20569 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20570 l_rgp_id := x_rgpv_rec.id;
20571 END IF;
20572 l_rulv_rec := NULL;
20573
20574 ELSE
20575 okl_api.set_message(
20576 G_APP_NAME,
20577 G_MISSING_VALUE,
20578 'CONTRACT_NUM',
20579 p_contract_number,
20580 'COL_NAME',
20581 'VENDOR AS CUSTOMER'
20582 );
20583 x_return_status := OKL_API.G_RET_STS_ERROR;
20584 RAISE party_role_failed;
20585 END IF;
20586
20587 /* Rule Migration
20588 IF (p_vend_as_cust_acc_id IS NOT NULL
20589 OR
20590 p_vend_as_cust_acc_number IS NOT NULL) THEN
20591
20592 get_customer_account_id(
20593 x_return_status => x_return_status,
20594 x_msg_count => x_msg_count,
20595 x_msg_data => x_msg_data,
20596 p_contract_number => p_contract_number,
20597 p_customer_id => l_vend_cust_id,
20598 p_customer_account_id => p_vend_as_cust_acc_id,
20599 p_customer_account_number => p_vend_as_cust_acc_number,
20600 x_customer_account_id => l_vend_cust_acc_id
20601 );
20602
20603 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20604 x_return_status := OKL_API.G_RET_STS_ERROR;
20605 raise party_role_failed;
20606 END IF;
20607
20608 debug_message('------>l_vend_cust_acc_id : '||l_vend_cust_acc_id);
20609
20610 l_rulv_rec.jtot_object1_code := 'OKX_CUSTACCT';
20611 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_cust_acc_id);
20612 l_rulv_rec.object1_id2 := '#';
20613 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20614 l_rulv_rec.dnz_chr_id := p_chr_id;
20615 l_rulv_rec.rule_information_category := 'CAN';
20616 l_rulv_rec.std_template_yn := 'N';
20617 l_rulv_rec.warn_yn := 'N';
20618
20619 create_rule_group_and_rule(
20620 x_return_status => x_return_status,
20621 x_msg_count => x_msg_count,
20622 x_msg_data => x_msg_data,
20623 p_rgp_id => l_rgp_id,
20624 p_rgpv_rec => l_rgpv_rec,
20625 p_rulv_rec => l_rulv_rec,
20626 x_rgpv_rec => x_rgpv_rec,
20627 x_rulv_rec => x_rulv_rec
20628 );
20629
20630 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20631 raise party_role_failed;
20632 END IF;
20633
20634 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20635 l_rgp_id := x_rgpv_rec.id;
20636 END IF;
20637 l_rulv_rec := NULL;
20638 ELSE
20639 okl_api.set_message(
20640 G_APP_NAME,
20641 G_MISSING_VALUE,
20642 'CONTRACT_NUM',
20643 p_contract_number,
20644 'COL_NAME',
20645 'VENDOR AS CUSTOMER ACCOUNT'
20646 );
20647 x_return_status := OKL_API.G_RET_STS_ERROR;
20648 RAISE party_role_failed;
20649 END IF;
20650 */
20651
20652 /* Rule Migration
20653 IF (p_vend_bill_to_addr_id IS NOT NULL
20654 OR
20655 p_vend_bill_to_addr IS NOT NULL) THEN
20656 get_bill_to_address_id(
20657 x_return_status => x_return_status,
20658 x_msg_count => x_msg_count,
20659 x_msg_data => x_msg_data,
20660 p_contract_number => p_contract_number,
20661 p_auth_org_id => p_auth_org_id,
20662 p_bill_to_address_id => p_vend_bill_to_addr_id,
20663 p_bill_to_address => p_vend_bill_to_addr,
20664 p_customer_account_id => l_vend_cust_acc_id,
20665 x_bill_to_address_id => l_vend_bill_to_addr_id
20666 );
20667
20668 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20669 x_return_status := OKL_API.G_RET_STS_ERROR;
20670 raise party_role_failed;
20671 END IF;
20672
20673 debug_message('------>l_vend_bill_to_addr_id : '||l_vend_bill_to_addr_id);
20674 l_rulv_rec.jtot_object1_code := 'OKX_BILLTO';
20675 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_bill_to_addr_id);
20676 l_rulv_rec.object1_id2 := '#';
20677 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20678 l_rulv_rec.dnz_chr_id := p_chr_id;
20679 l_rulv_rec.rule_information_category := 'BTO';
20680 l_rulv_rec.std_template_yn := 'N';
20681 l_rulv_rec.warn_yn := 'N';
20682
20683 create_rule_group_and_rule(
20684 x_return_status => x_return_status,
20685 x_msg_count => x_msg_count,
20686 x_msg_data => x_msg_data,
20687 p_rgp_id => l_rgp_id,
20688 p_rgpv_rec => l_rgpv_rec,
20689 p_rulv_rec => l_rulv_rec,
20690 x_rgpv_rec => x_rgpv_rec,
20691 x_rulv_rec => x_rulv_rec
20692 );
20693
20694 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20695 raise party_role_failed;
20696 END IF;
20697
20698 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20699 l_rgp_id := x_rgpv_rec.id;
20700 END IF;
20701 l_rulv_rec := NULL;
20702 ELSE
20703 okl_api.set_message(
20704 G_APP_NAME,
20705 G_MISSING_VALUE,
20706 'CONTRACT_NUM',
20707 p_contract_number,
20708 'COL_NAME',
20709 'VENDOR BILL TO ADDRESS'
20710 );
20711 x_return_status := OKL_API.G_RET_STS_ERROR;
20712 RAISE party_role_failed;
20713 END IF;
20714 */
20715
20716 IF (p_vend_payment_method_id IS NOT NULL
20717 OR
20718 p_vend_payment_method IS NOT NULL) THEN
20719 get_payment_method_id(
20720 x_return_status => x_return_status,
20721 x_msg_count => x_msg_count,
20722 x_msg_data => x_msg_data,
20723 p_contract_number => p_contract_number,
20724 p_customer_account_id => l_vend_cust_acc_id,
20725 p_bill_to_address_id => l_vend_bilL_to_addr_id,
20726 p_payment_method_id => p_vend_payment_method_id,
20727 p_payment_method => p_vend_payment_method,
20728 x_payment_method_id => l_vend_payment_method_id
20729 );
20730
20731 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20732 x_return_status := OKL_API.G_RET_STS_ERROR;
20733 raise party_role_failed;
20734 END IF;
20735
20736 IF (l_vend_payment_method_id IS NOT NULL) THEN
20737 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20738 l_rulv_rec.dnz_chr_id := p_chr_id;
20739 l_rulv_rec.jtot_object1_code := 'OKX_RCPTMTH';
20740 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_payment_method_id);
20741 l_rulv_rec.object1_id2 := '#';
20742 l_rulv_rec.rule_information_category := 'LAPMTH';
20743 l_rulv_rec.std_template_yn := 'N';
20744 l_rulv_rec.warn_yn := 'N';
20745 END IF;
20746
20747 --debug_message('Payment Method: '||l_vend_payment_method_id);
20748
20749 create_rule_group_and_rule(
20750 x_return_status => x_return_status,
20751 x_msg_count => x_msg_count,
20752 x_msg_data => x_msg_data,
20753 p_rgp_id => l_rgp_id,
20754 p_rgpv_rec => l_rgpv_rec,
20755 p_rulv_rec => l_rulv_rec,
20756 x_rgpv_rec => x_rgpv_rec,
20757 x_rulv_rec => x_rulv_rec
20758 );
20759
20760 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20761 x_return_status := OKL_API.G_RET_STS_ERROR;
20762 raise party_role_failed;
20763 END IF;
20764
20765 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20766 l_rgp_id := x_rgpv_rec.id;
20767 END IF;
20768
20769 l_rulv_rec := NULL;
20770
20771 END IF;
20772
20773 IF (p_vend_bank_acc_id IS NOT NULL
20774 OR
20775 p_vend_bank_acc_number IS NOT NULL) THEN
20776 get_bank_account_id(
20777 x_return_status => x_return_status,
20778 x_msg_count => x_msg_count,
20779 x_msg_data => x_msg_data,
20780 p_contract_number => p_contract_number,
20781 p_auth_org_id => p_auth_org_id,
20782 p_bank_account_id => p_vend_bank_acc_id,
20783 p_bank_account_number => p_vend_bank_acc_number,
20784 p_customer_account_id => l_vend_cust_acc_id,
20785 p_cust_site_id => l_vend_bill_to_addr_id,
20786 x_bank_account_id => l_vend_bank_acc_id
20787 );
20788 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20789 x_return_status := OKL_API.G_RET_STS_ERROR;
20790 raise party_role_failed;
20791 END IF;
20792
20793 IF (l_vend_bank_acc_id IS NOT NULL) THEN
20794 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20795 l_rulv_rec.dnz_chr_id := p_chr_id;
20796 l_rulv_rec.jtot_object1_code := 'OKX_CUSTBKAC';
20797 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_bank_acc_id);
20798 l_rulv_rec.object1_id2 := '#';
20799 l_rulv_rec.rule_information_category := 'LABACC';
20800 l_rulv_rec.std_template_yn := 'N';
20801 l_rulv_rec.warn_yn := 'N';
20802 END IF;
20803
20804 debug_message('Bank Acc: '|| l_vend_bank_acc_id);
20805
20806 create_rule_group_and_rule(
20807 x_return_status => x_return_status,
20808 x_msg_count => x_msg_count,
20809 x_msg_data => x_msg_data,
20810 p_rgp_id => l_rgp_id,
20811 p_rgpv_rec => l_rgpv_rec,
20812 p_rulv_rec => l_rulv_rec,
20813 x_rgpv_rec => x_rgpv_rec,
20814 x_rulv_rec => x_rulv_rec
20815 );
20816
20817 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20818 x_return_status := OKL_API.G_RET_STS_ERROR;
20819 raise party_role_failed;
20820 END IF;
20821
20822 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20823 l_rgp_id := x_rgpv_rec.id;
20824 END IF;
20825 l_rulv_rec := NULL;
20826
20827 END IF; -- vend_bank_account
20828
20829 IF (p_vend_invoice_format_id IS NOT NULL
20830 OR
20831 p_vend_invoice_format_code IS NOT NULL) THEN
20832 get_invoice_format_id(
20833 x_return_status => x_return_status,
20834 x_msg_count => x_msg_count,
20835 x_msg_data => x_msg_data,
20836 p_contract_number => p_contract_number,
20837 p_invoice_format_id => p_vend_invoice_format_id,
20838 p_invoice_format_code => p_vend_invoice_format_code,
20839 x_invoice_format_id => l_vend_invoice_format_id,
20840 x_invoice_format_name => l_vend_invoice_format_name
20841 );
20842
20843 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20844 x_return_status := OKL_API.G_RET_STS_ERROR;
20845 raise party_role_failed;
20846 END IF;
20847
20848 debug_message('Invoice Format: '||l_vend_invoice_format_name);
20849
20850 IF (l_vend_invoice_format_name IS NOT NULL) THEN
20851 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20852 l_rulv_rec.dnz_chr_id := p_chr_id;
20853
20854 --sechawla 13-may-09 6826580 : Use ID instead of name
20855 --l_rulv_rec.rule_information1 := l_vend_invoice_format_name;
20856 l_rulv_rec.rule_information1 := l_vend_invoice_format_id;
20857
20858 l_rulv_rec.rule_information_category := 'LAINVD';
20859 l_rulv_rec.std_template_yn := 'N';
20860 l_rulv_rec.warn_yn := 'N';
20861 END IF;
20862 END IF;
20863
20864 IF (p_vend_review_invoice_flag IS NOT NULL) THEN
20865 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20866 l_rulv_rec.dnz_chr_id := p_chr_id;
20867 l_rulv_rec.rule_information4 := p_vend_review_invoice_flag;
20868 l_rulv_rec.rule_information_category := 'LAINVD';
20869 l_rulv_rec.std_template_yn := 'N';
20870 l_rulv_rec.warn_yn := 'N';
20871 END IF;
20872
20873 create_rule_group_and_rule(
20874 x_return_status => x_return_status,
20875 x_msg_count => x_msg_count,
20876 x_msg_data => x_msg_data,
20877 p_rgp_id => l_rgp_id,
20878 p_rgpv_rec => l_rgpv_rec,
20879 p_rulv_rec => l_rulv_rec,
20880 x_rgpv_rec => x_rgpv_rec,
20881 x_rulv_rec => x_rulv_rec
20882 );
20883
20884 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20885 x_return_status := OKL_API.G_RET_STS_ERROR;
20886 raise party_role_failed;
20887 END IF;
20888
20889 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20890 l_rgp_id := x_rgpv_rec.id;
20891 END IF;
20892 l_rulv_rec := NULL;
20893
20894 IF (p_vend_reason_for_inv_review IS NOT NULL) THEN
20895 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20896 l_rulv_rec.dnz_chr_id := p_chr_id;
20897 l_rulv_rec.rule_information1 := p_vend_reason_for_inv_review;
20898 l_rulv_rec.rule_information_category := 'LAINPR';
20899 l_rulv_rec.std_template_yn := 'N';
20900 l_rulv_rec.warn_yn := 'N';
20901 END IF;
20902
20903 IF (p_vend_inv_review_until_date IS NOT NULL) THEN
20904 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20905 l_rulv_rec.dnz_chr_id := p_chr_id;
20906 l_rulv_rec.rule_information2 := get_canonical_date(p_vend_inv_review_until_date);
20907 l_rulv_rec.rule_information_category := 'LAINPR';
20908 l_rulv_rec.std_template_yn := 'N';
20909 l_rulv_rec.warn_yn := 'N';
20910 END IF;
20911
20912 create_rule_group_and_rule(
20913 x_return_status => x_return_status,
20914 x_msg_count => x_msg_count,
20915 x_msg_data => x_msg_data,
20916 p_rgp_id => l_rgp_id,
20917 p_rgpv_rec => l_rgpv_rec,
20918 p_rulv_rec => l_rulv_rec,
20919 x_rgpv_rec => x_rgpv_rec,
20920 x_rulv_rec => x_rulv_rec
20921 );
20922
20923 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20924 x_return_status := OKL_API.G_RET_STS_ERROR;
20925 raise party_role_failed;
20926 END IF;
20927
20928 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20929 l_rgp_id := x_rgpv_rec.id;
20930 END IF;
20931 l_rulv_rec := NULL;
20932
20933 IF (l_rgp_id IS NOT NULL) THEN
20934 get_rrd_id(
20935 x_return_status => x_return_status,
20936 p_rgd_code => 'LAVENB',
20937 p_rle_code => 'OKL_VENDOR',
20938 x_rrd_id => x_rrd_id
20939 );
20940 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20941 okl_api.set_message(
20942 G_APP_NAME,
20943 G_GUARANTOR_SETUP_ERROR,
20944 'CONTRACT_NUM',
20945 p_contract_number
20946 );
20947 x_return_status := OKL_API.G_RET_STS_ERROR;
20948 RAISE party_role_failed;
20949 END IF;
20950
20951 p_cplv_rec := NULL;
20952 p_cplv_rec.chr_id := p_chr_id;
20953 p_cplv_rec.dnz_chr_id := p_chr_id;
20954 p_cplv_rec.cle_id := NULL; -- always at header level
20955 p_cplv_rec.object1_id1 := TO_CHAR(x_billable_vendor_id);
20956 p_cplv_rec.object1_id2 := '#';
20957 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
20958 p_cplv_rec.rle_code := 'OKL_VENDOR';
20959
20960 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
20961 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
20962
20963 debug_message('------>Vendor Bill to :'||l_vend_bill_to_addr_id);
20964 debug_message('------>Vendor Cust Acct :'||l_vend_cust_acc_id);
20965
20966 l_rmpv_rec.rgp_id := l_rgp_id;
20967 l_rmpv_rec.cpl_id := x_cplv_rec.id;
20968 l_rmpv_rec.rrd_id := x_rrd_id;
20969 l_rmpv_rec.dnz_chr_id := p_chr_id;
20970
20971 okl_rule_pub.create_rg_mode_pty_role(
20972 p_api_version => 1.0,
20973 p_init_msg_list => OKL_API.G_FALSE,
20974 x_return_status => x_return_status,
20975 x_msg_count => x_msg_count,
20976 x_msg_data => x_msg_data,
20977 p_rmpv_rec => l_rmpv_rec,
20978 x_rmpv_rec => x_rmpv_rec
20979 );
20980 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20981 x_return_status := OKL_API.G_RET_STS_ERROR;
20982 raise party_role_failed;
20983 END IF;
20984 END IF;
20985 END IF; -- Billable Vendor process
20986
20987
20988 -- Assume that the existence of pay thru is driven by vendor pay site information
20989 IF (p_line_number is NOT NULL) THEN
20990 debug_message ('Processing passthrough for line number : '||p_line_number);
20991 IF (g_base_pmnt_hdr.id IS NOT NULL) THEN
20992 IF (p_line_type in ('SERVICE', 'FEE')) THEN
20993 IF ((p_pth_base_vendor_site_code IS NOT NULL) OR
20994 (p_pth_base_vendor_site_id IS NOT NULL)) THEN
20995
20996 IF (p_line_type = 'SERVICE') THEN
20997 l_base_pmnt_dtls_rec.vendor_id := x_service_vendor_id;
20998 ELSIF (p_line_type = 'FEE') THEN
20999 l_base_pmnt_dtls_rec.vendor_id := x_fees_vendor_id;
21000 END IF;
21001 l_base_pmnt_dtls_rec.cpl_id := x_cplv_rec.id;
21002 l_base_pmnt_dtls_rec.pay_site_id := get_vendor_paysite( x_return_status => x_return_status,
21003 p_contract_number => p_contract_number,
21004 p_line_number => p_line_number,
21005 p_vendor_paysite_name => p_pth_base_vendor_site_code,
21006 p_vendor_paysite_id => p_pth_base_vendor_site_id
21007 );
21008 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21009 raise party_role_failed;
21010 END IF;
21011
21012 IF (p_pth_base_pmnt_term_code is NOT NULL OR
21013 p_pth_base_pmnt_term_id IS NOT NULL ) THEN
21014 l_base_pmnt_dtls_rec.payment_term_id := get_payment_term(
21015 x_return_status => x_return_status,
21016 p_contract_number => p_contract_number,
21017 p_line_number => p_line_number,
21018 p_payment_term => p_pth_base_pmnt_term_code,
21019 p_payment_term_id => p_pth_base_pmnt_term_id
21020 );
21021
21022 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21023 raise party_role_failed;
21024 END IF;
21025
21026 ELSE
21027 okl_api.set_message(
21028 G_APP_NAME,
21029 G_MISSING_VALUE,
21030 'CONTRACT_NUM',
21031 p_contract_number,
21032 'COL_NAME',
21033 'PASSTHROUGH PAYMENT TERM'
21034 );
21035 END IF;
21036 l_paygroup_code := NULL;
21037 IF (p_pth_base_paygroup_code IS NULL) THEN
21038 l_paygroup_code := get_vendor_paygroup(
21039 x_return_status => x_return_status,
21040 p_contract_number => p_contract_number,
21041 p_line_number => p_line_number,
21042 p_auth_org_id => p_auth_org_id,
21043 p_vendor_paysite_id => p_pth_base_vendor_site_id
21044 );
21045
21046 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21047 raise party_role_failed;
21048 END IF;
21049
21050 IF (l_paygroup_code IS NOT NULL) THEN
21051 l_base_pmnt_dtls_rec.pay_group_code := l_paygroup_code;
21052 ELSE
21053 okl_api.set_message(
21054 G_APP_NAME,
21055 G_MISSING_VALUE_FOR_LINE,
21056 'CONTRACT_NUM',
21057 p_contract_number||'/'||TO_CHAR(p_line_number),
21058 'COL_NAME',
21059 'PTH_BASE_PAYGROUP_CODE',
21060 'LINE',
21061 p_line_type
21062 );
21063 raise party_role_failed;
21064 END IF;
21065
21066
21067 ELSE
21068 l_base_pmnt_dtls_rec.pay_group_code := p_pth_base_paygroup_code;
21069 END IF;
21070
21071 IF (p_pth_base_pmnt_basis is NULL) THEN
21072 l_base_pmnt_dtls_rec.payment_basis := 'PROCESS_DATE';
21073 ELSE
21074 OPEN pmnt_basis_csr(p_pth_base_pmnt_basis);
21075 FETCH pmnt_basis_csr INTO rec_exists_yn;
21076 IF (pmnt_basis_csr%NOTFOUND) THEN
21077 okl_api.set_message(
21078 G_APP_NAME,
21079 G_INVALID_VALUE,
21080 'CONTRACT_NUM',
21081 p_contract_number||'/'||TO_CHAR(p_line_number),
21082 'COL_NAME',
21083 'PTH_BASE_PMNT_BASIS',
21084 'COL_VALUE',
21085 p_pth_base_pmnt_basis
21086 );
21087 CLOSE pmnt_basis_csr;
21088 raise party_role_failed;
21089 ELSE
21090 l_base_pmnt_dtls_rec.payment_basis := p_pth_base_pmnt_basis;
21091 CLOSE pmnt_basis_csr;
21092 END IF;
21093 END IF;
21094
21095 IF ((p_pth_base_pmnt_basis = 'SCHEDULED') AND
21096 (p_pth_base_pmnt_start_date IS NULL)) THEN
21097 okl_api.set_message(
21098 G_APP_NAME,
21099 G_MISSING_VALUE_FOR_LINE,
21100 'CONTRACT_NUM',
21101 p_contract_number||'/'||TO_CHAR(p_line_number),
21102 'COL_NAME',
21103 'PTH_BASE_PMNT_START_DATE',
21104 'LINE',
21105 p_line_type
21106 );
21107 raise party_role_failed;
21108 ELSE
21109 l_base_pmnt_dtls_rec.payment_start_date := p_pth_base_pmnt_start_date;
21110 END IF;
21111
21112 IF ((p_pth_base_pmnt_basis = 'SCHEDULED') AND
21113 (p_pth_base_pmnt_freq IS NULL)) THEN
21114 okl_api.set_message(
21115 G_APP_NAME,
21116 G_MISSING_VALUE_FOR_LINE,
21117 'CONTRACT_NUM',
21118 p_contract_number||'/'||TO_CHAR(p_line_number),
21119 'COL_NAME',
21120 'PTH_BASE_PMNT_FREQ',
21121 'LINE',
21122 p_line_type
21123 );
21124 raise party_role_failed;
21125 ELSE
21126 l_base_pmnt_dtls_rec.payment_frequency := p_pth_base_pmnt_freq;
21127 END IF;
21128 l_base_pmnt_dtls_rec.payment_hdr_id := g_base_pmnt_hdr.id;
21129 l_base_pmnt_dtls_rec.payment_method_code := p_pth_base_pmnt_method_code;
21130
21131 IF ((p_pth_base_pmnt_basis = 'PROCESS_DATE') AND
21132 (p_pth_base_pmnt_remit_days IS NULL)) THEN
21133 okl_api.set_message(
21134 G_APP_NAME,
21135 G_MISSING_VALUE_FOR_LINE,
21136 'CONTRACT_NUM',
21137 p_contract_number||'/'||TO_CHAR(p_line_number),
21138 'COL_NAME',
21139 'PTH_BASE_PMNT_REMIT_DAYS',
21140 'LINE',
21141 p_line_type
21142 );
21143 raise party_role_failed;
21144 ELSE
21145 l_base_pmnt_dtls_rec.remit_days := p_pth_base_pmnt_remit_days;
21146 END IF;
21147
21148 IF (p_pth_base_disb_basis is NOT NULL) THEN
21149 OPEN disb_basis_csr(p_pth_base_disb_basis);
21150 FETCH disb_basis_csr INTO rec_exists_yn;
21151 IF (disb_basis_csr%NOTFOUND) THEN
21152 okl_api.set_message(
21153 G_APP_NAME,
21154 G_INVALID_VALUE,
21155 'CONTRACT_NUM',
21156 p_contract_number||'/'||TO_CHAR(p_line_number),
21157 'COL_NAME',
21158 'PTH_BASE_DISB_BASIS',
21159 'COL_VALUE',
21160 p_pth_base_disb_basis
21161 );
21162 CLOSE disb_basis_csr;
21163 raise party_role_failed;
21164 ELSE
21165 l_base_pmnt_dtls_rec.disbursement_basis := p_pth_base_disb_basis;
21166 CLOSE disb_basis_csr;
21167 END IF;
21168 ELSE
21169 okl_api.set_message(
21170 G_APP_NAME,
21171 G_MISSING_VALUE_FOR_LINE,
21172 'CONTRACT_NUM',
21173 p_contract_number||'/'||TO_CHAR(p_line_number),
21174 'COL_NAME',
21175 'PTH_BASE_DISB_BASIS',
21176 'LINE',
21177 p_line_type
21178 );
21179 END IF;
21180
21181 IF ((p_pth_base_disb_basis = 'AMOUNT')) THEN
21182 IF (p_pth_base_disb_fixed_amount IS NULL) THEN
21183 okl_api.set_message(
21184 G_APP_NAME,
21185 G_MISSING_VALUE_FOR_LINE,
21186 'CONTRACT_NUM',
21187 p_contract_number||'/'||TO_CHAR(p_line_number),
21188 'COL_NAME',
21189 'PTH_BASE_DISB_FIXED_AMOUNT',
21190 'LINE',
21191 p_line_type
21192 );
21193 raise party_role_failed;
21194 ELSE
21195 l_base_pmnt_dtls_rec.disbursement_fixed_amount := p_pth_base_disb_fixed_amount;
21196 END IF;
21197 END IF;
21198
21199 IF ((p_pth_base_disb_basis = 'PERCENT')) THEN
21200 IF (p_pth_base_disb_pct IS NULL) THEN
21201 okl_api.set_message(
21202 G_APP_NAME,
21203 G_MISSING_VALUE_FOR_LINE,
21204 'CONTRACT_NUM',
21205 p_contract_number||'/'||TO_CHAR(p_line_number),
21206 'COL_NAME',
21207 'PTH_BASE_DISB_PCT',
21208 'LINE',
21209 p_line_type
21210 );
21211 raise party_role_failed;
21212 ELSE
21213 l_base_pmnt_dtls_rec.disbursement_percent := p_pth_base_disb_pct;
21214 END IF;
21215 END IF;
21216
21217 IF (p_pth_base_proc_fee_basis is NOT NULL) THEN
21218 OPEN proc_fee_basis_csr(p_pth_base_proc_fee_basis);
21219 FETCH proc_fee_basis_csr INTO rec_exists_yn;
21220 IF (proc_fee_basis_csr%NOTFOUND) THEN
21221 okl_api.set_message(
21222 G_APP_NAME,
21223 G_INVALID_VALUE,
21224 'CONTRACT_NUM',
21225 p_contract_number||'/'||TO_CHAR(p_line_number),
21226 'COL_NAME',
21227 'PTH_BASE_PROC_FEE_BASIS',
21228 'COL_VALUE',
21229 p_pth_base_proc_fee_basis
21230 );
21231 CLOSE proc_fee_basis_csr;
21232 raise party_role_failed;
21233 ELSE
21234 l_base_pmnt_dtls_rec.processing_fee_basis := p_pth_base_proc_fee_basis;
21235 CLOSE proc_fee_basis_csr;
21236 END IF;
21237 END IF;
21238
21239 IF ((p_pth_base_proc_fee_basis = 'AMOUNT')) THEN
21240 IF (p_pth_base_proc_fee_fixed_amt IS NULL) THEN
21241 okl_api.set_message(
21242 G_APP_NAME,
21243 G_MISSING_VALUE_FOR_LINE,
21244 'CONTRACT_NUM',
21245 p_contract_number||'/'||TO_CHAR(p_line_number),
21246 'COL_NAME',
21247 'PTH_BASE_PROC_FEE_FIXED_AMT',
21248 'LINE',
21249 p_line_type
21250 );
21251 raise party_role_failed;
21252 ELSE
21253 l_base_pmnt_dtls_rec.processing_fee_fixed_amount := p_pth_base_proc_fee_fixed_amt;
21254 END IF;
21255 END IF;
21256
21257 IF ((p_pth_base_proc_fee_basis = 'PERCENT')) THEN
21258 IF (p_pth_base_proc_pct IS NULL) THEN
21259 okl_api.set_message(
21260 G_APP_NAME,
21261 G_MISSING_VALUE_FOR_LINE,
21262 'CONTRACT_NUM',
21263 p_contract_number||'/'||TO_CHAR(p_line_number),
21264 'COL_NAME',
21265 'PTH_BASE_PROC_PCT',
21266 'LINE',
21267 p_line_type
21268 );
21269 raise party_role_failed;
21270 ELSE
21271 l_base_pmnt_dtls_rec.processing_fee_percent := p_pth_base_proc_pct;
21272 END IF;
21273 END IF;
21274 l_counter := l_counter + 1;
21275 l_pmnt_dtls_tbl_in(l_counter) := l_base_pmnt_dtls_rec;
21276
21277 END IF;
21278 END IF;
21279 END IF;
21280
21281
21282 IF (g_evg_pmnt_hdr.id IS NOT NULL) THEN
21283 IF (p_line_type in ('ASSET', 'SERVICE', 'FEE')) THEN
21284 IF ((p_pth_evg_vendor_site_code IS NOT NULL) OR
21285 (p_pth_evg_vendor_site_id IS NOT NULL)) THEN
21286 IF (p_line_type = 'ASSET') THEN
21287 l_evg_pmnt_dtls_rec.vendor_id := x_asset_vendor_id;
21288 ELSIF (p_line_type = 'SERVICE') THEN
21289 l_evg_pmnt_dtls_rec.vendor_id := x_service_vendor_id;
21290 ELSE
21291 l_evg_pmnt_dtls_rec.vendor_id := x_fees_vendor_id;
21292 END IF;
21293 l_evg_pmnt_dtls_rec.cpl_id := x_cplv_rec.id;
21294 l_evg_pmnt_dtls_rec.pay_site_id := get_vendor_paysite( x_return_status => x_return_status,
21295 p_contract_number => p_contract_number,
21296 p_line_number => p_line_number,
21297 p_vendor_paysite_name => p_pth_evg_vendor_site_code,
21298 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21299 );
21300 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21301 raise party_role_failed;
21302 END IF;
21303
21304 IF (p_pth_evg_pmnt_term_code is NOT NULL OR
21305 p_pth_evg_pmnt_term_id IS NOT NULL ) THEN
21306 l_evg_pmnt_dtls_rec.payment_term_id := get_payment_term(
21307 x_return_status => x_return_status,
21308 p_contract_number => p_contract_number,
21309 p_line_number => p_line_number,
21310 p_payment_term => p_pth_evg_pmnt_term_code,
21311 p_payment_term_id => p_pth_evg_pmnt_term_id
21312 );
21313
21314 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21315 raise party_role_failed;
21316 END IF;
21317
21318 ELSE
21319 okl_api.set_message(
21320 G_APP_NAME,
21321 G_MISSING_VALUE,
21322 'CONTRACT_NUM',
21323 p_contract_number,
21324 'COL_NAME',
21325 'PTH_EVG_PMNT_TERM_CODE'
21326 );
21327 END IF;
21328 l_paygroup_code := NULL;
21329 IF (p_pth_evg_paygroup_code IS NULL) THEN
21330 l_paygroup_code := get_vendor_paygroup(
21331 x_return_status => x_return_status,
21332 p_contract_number => p_contract_number,
21333 p_line_number => p_line_number,
21334 p_auth_org_id => p_auth_org_id,
21335 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21336 );
21337
21338 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21339 raise party_role_failed;
21340 END IF;
21341
21342 IF (l_paygroup_code IS NOT NULL) THEN
21343 l_evg_pmnt_dtls_rec.pay_group_code := l_paygroup_code;
21344 ELSE
21345 okl_api.set_message(
21346 G_APP_NAME,
21347 G_MISSING_VALUE_FOR_LINE,
21348 'CONTRACT_NUM',
21349 p_contract_number||'/'||TO_CHAR(p_line_number),
21350 'COL_NAME',
21351 'PTH_EVG_PAYGROUP_CODE',
21352 'LINE',
21353 p_line_type
21354 );
21355 raise party_role_failed;
21356 END IF;
21357 ELSE
21358 l_evg_pmnt_dtls_rec.pay_group_code := p_pth_evg_paygroup_code;
21359 END IF;
21360 IF (p_pth_evg_pmnt_basis is NULL) THEN
21361 l_evg_pmnt_dtls_rec.payment_basis := 'PROCESS_DATE';
21362 ELSE
21363 OPEN pmnt_basis_csr(p_pth_evg_pmnt_basis);
21364 FETCH pmnt_basis_csr INTO rec_exists_yn;
21365 IF (pmnt_basis_csr%NOTFOUND) THEN
21366 okl_api.set_message(
21367 G_APP_NAME,
21368 G_INVALID_VALUE,
21369 'CONTRACT_NUM',
21370 p_contract_number||'/'||TO_CHAR(p_line_number),
21371 'COL_NAME',
21372 'PTH_EVG_PMNT_BASIS',
21373 'COL_VALUE',
21374 p_pth_evg_pmnt_basis
21375 );
21376 CLOSE pmnt_basis_csr;
21377 raise party_role_failed;
21378 ELSE
21379 l_evg_pmnt_dtls_rec.payment_basis := p_pth_evg_pmnt_basis;
21380 CLOSE pmnt_basis_csr;
21381 END IF;
21382 END IF;
21383 l_evg_pmnt_dtls_rec.payment_hdr_id := g_evg_pmnt_hdr.id;
21384 l_evg_pmnt_dtls_rec.payment_method_code := p_pth_evg_pmnt_method_code;
21385
21386 IF ((p_pth_evg_pmnt_basis = 'PROCESS_DATE') AND
21387 (p_pth_evg_pmnt_remit_days IS NULL)) THEN
21388 okl_api.set_message(
21389 G_APP_NAME,
21390 G_MISSING_VALUE_FOR_LINE,
21391 'CONTRACT_NUM',
21392 p_contract_number||'/'||TO_CHAR(p_line_number),
21393 'COL_NAME',
21394 'PTH_EVG_PMNT_REMIT_DAYS',
21395 'LINE',
21396 p_line_type
21397 );
21398 raise party_role_failed;
21399 ELSE
21400 l_evg_pmnt_dtls_rec.remit_days := p_pth_evg_pmnt_remit_days;
21401 END IF;
21402 IF (p_pth_evg_disb_basis is NOT NULL) THEN
21403 OPEN disb_basis_csr(p_pth_evg_disb_basis);
21404 FETCH disb_basis_csr INTO rec_exists_yn;
21405 IF (disb_basis_csr%NOTFOUND) THEN
21406 okl_api.set_message(
21407 G_APP_NAME,
21408 G_INVALID_VALUE,
21409 'CONTRACT_NUM',
21410 p_contract_number||'/'||TO_CHAR(p_line_number),
21411 'COL_NAME',
21412 'PTH_EVG_DISB_BASIS',
21413 'COL_VALUE',
21414 p_pth_evg_disb_basis
21415 );
21416 CLOSE disb_basis_csr;
21417 raise party_role_failed;
21418 ELSE
21419 l_evg_pmnt_dtls_rec.disbursement_basis := p_pth_evg_disb_basis;
21420 CLOSE disb_basis_csr;
21421 END IF;
21422 ELSE
21423 okl_api.set_message(
21424 G_APP_NAME,
21425 G_MISSING_VALUE_FOR_LINE,
21426 'CONTRACT_NUM',
21427 p_contract_number||'/'||TO_CHAR(p_line_number),
21428 'COL_NAME',
21429 'PTH_EVG_DISB_BASIS',
21430 'LINE',
21431 p_line_type
21432 );
21433 END IF;
21434 IF ((p_pth_evg_disb_basis = 'AMOUNT')) THEN
21435 IF (p_pth_evg_disb_fixed_amount IS NULL) THEN
21436 okl_api.set_message(
21437 G_APP_NAME,
21438 G_MISSING_VALUE_FOR_LINE,
21439 'CONTRACT_NUM',
21440 p_contract_number||'/'||TO_CHAR(p_line_number),
21441 'COL_NAME',
21442 'PTH_EVG_DISB_FIXED_AMOUNT',
21443 'LINE',
21444 p_line_type
21445 );
21446 raise party_role_failed;
21447 ELSE
21448 l_evg_pmnt_dtls_rec.disbursement_fixed_amount := p_pth_evg_disb_fixed_amount;
21449 END IF;
21450 END IF;
21451 IF ((p_pth_evg_disb_basis = 'PERCENT')) THEN
21452 IF (p_pth_evg_disb_pct IS NULL) THEN
21453 okl_api.set_message(
21454 G_APP_NAME,
21455 G_MISSING_VALUE_FOR_LINE,
21456 'CONTRACT_NUM',
21457 p_contract_number||'/'||TO_CHAR(p_line_number),
21458 'COL_NAME',
21459 'PTH_EVG_DISB_PCT',
21460 'LINE',
21461 p_line_type
21462 );
21463 raise party_role_failed;
21464 ELSE
21465 l_evg_pmnt_dtls_rec.disbursement_percent := p_pth_evg_disb_pct;
21466 END IF;
21467 END IF;
21468
21469 IF (p_pth_evg_proc_fee_basis is NOT NULL) THEN
21470 OPEN proc_fee_basis_csr(p_pth_evg_proc_fee_basis);
21471 FETCH proc_fee_basis_csr INTO rec_exists_yn;
21472 IF (proc_fee_basis_csr%NOTFOUND) THEN
21473 okl_api.set_message(
21474 G_APP_NAME,
21475 G_INVALID_VALUE,
21476 'CONTRACT_NUM',
21477 p_contract_number||'/'||TO_CHAR(p_line_number),
21478 'COL_NAME',
21479 'PTH_EVG_PROC_FEE_BASIS',
21480 'COL_VALUE',
21481 p_pth_evg_proc_fee_basis
21482 );
21483 CLOSE proc_fee_basis_csr;
21484 raise party_role_failed;
21485 ELSE
21486 l_evg_pmnt_dtls_rec.processing_fee_basis := p_pth_evg_proc_fee_basis;
21487 CLOSE proc_fee_basis_csr;
21488 END IF;
21489 END IF;
21490 IF ((p_pth_evg_proc_fee_basis = 'AMOUNT')) THEN
21491 IF (p_pth_evg_proc_fee_fixed_amt IS NULL) THEN
21492 okl_api.set_message(
21493 G_APP_NAME,
21494 G_MISSING_VALUE_FOR_LINE,
21495 'CONTRACT_NUM',
21496 p_contract_number||'/'||TO_CHAR(p_line_number),
21497 'COL_NAME',
21498 'PTH_EVG_PROC_FEE_FIXED_AMT',
21499 'LINE',
21500 p_line_type
21501 );
21502 raise party_role_failed;
21503 ELSE
21504 l_evg_pmnt_dtls_rec.processing_fee_fixed_amount := p_pth_evg_proc_fee_fixed_amt;
21505 END IF;
21506 END IF;
21507
21508 IF ((p_pth_evg_proc_fee_basis = 'PERCENT')) THEN
21509 IF (p_pth_evg_proc_pct IS NULL) THEN
21510 okl_api.set_message(
21511 G_APP_NAME,
21512 G_MISSING_VALUE_FOR_LINE,
21513 'CONTRACT_NUM',
21514 p_contract_number||'/'||TO_CHAR(p_line_number),
21515 'COL_NAME',
21516 'PTH_EVG_PROC_PCT',
21517 'LINE',
21518 p_line_type
21519 );
21520 raise party_role_failed;
21521 ELSE
21522 l_evg_pmnt_dtls_rec.processing_fee_percent := p_pth_evg_proc_pct;
21523 END IF;
21524 END IF;
21525 l_counter := l_counter + 1;
21526 l_pmnt_dtls_tbl_in(l_counter) := l_evg_pmnt_dtls_rec;
21527
21528 END IF;
21529 END IF;
21530 END IF;
21531 END IF;
21532 debug_message ('No. of records in payment dtls table : '||l_pmnt_dtls_tbl_in.count);
21533
21534 IF (l_pmnt_dtls_tbl_in.COUNT > 0) THEN
21535 okl_party_payments_pvt.create_party_payment_dtls(
21536 p_api_version => 1.0,
21537 x_return_status => x_return_status,
21538 x_msg_count => x_msg_count,
21539 x_msg_data => x_msg_data,
21540 p_ppydv_tbl => l_pmnt_dtls_tbl_in,
21541 x_ppydv_tbl => l_pmnt_dtls_tbl_out
21542 );
21543
21544 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21545 x_return_status := OKL_API.G_RET_STS_ERROR;
21546 RAISE party_role_failed;
21547 END IF;
21548 END IF;
21549
21550 -- Create evergreen payment dtls if header exists
21551 debug_message('Create evergreen payment dtls if header exists');
21552 debug_message('Cont Evg pmnt hdr id: '||g_evg_cont_pmnt_hdr.id);
21553 l_evg_cont_pmnt_dtls_rec := NULL;
21554 IF (g_evg_cont_pmnt_hdr.id IS NOT NULL) THEN
21555 IF (p_line_number IS NULL) THEN -- header only
21556 IF ((p_pth_evg_vendor_site_code IS NOT NULL) OR
21557 (p_pth_evg_vendor_site_id IS NOT NULL)) THEN
21558 l_evg_cont_pmnt_dtls_rec.vendor_id := x_asset_vendor_id;
21559 l_evg_cont_pmnt_dtls_rec.cpl_id := x_cplv_rec.id;
21560 l_evg_cont_pmnt_dtls_rec.pay_site_id := get_vendor_paysite( x_return_status => x_return_status,
21561 p_contract_number => p_contract_number,
21562 p_line_number => p_line_number,
21563 p_vendor_paysite_name => p_pth_evg_vendor_site_code,
21564 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21565 );
21566 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21567 raise party_role_failed;
21568 END IF;
21569
21570 IF (p_pth_evg_pmnt_term_code is NOT NULL OR
21571 p_pth_evg_pmnt_term_id IS NOT NULL ) THEN
21572 l_evg_cont_pmnt_dtls_rec.payment_term_id := get_payment_term(
21573 x_return_status => x_return_status,
21574 p_contract_number => p_contract_number,
21575 p_line_number => p_line_number,
21576 p_payment_term => p_pth_evg_pmnt_term_code,
21577 p_payment_term_id => p_pth_evg_pmnt_term_id
21578 );
21579
21580 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21581 raise party_role_failed;
21582 END IF;
21583
21584 ELSE
21585 okl_api.set_message(
21586 G_APP_NAME,
21587 G_MISSING_VALUE,
21588 'CONTRACT_NUM',
21589 p_contract_number,
21590 'COL_NAME',
21591 'PTH_EVG_PMNT_TERM_CODE'
21592 );
21593 END IF;
21594 l_paygroup_code := NULL;
21595 IF (p_pth_evg_paygroup_code IS NULL) THEN
21596 l_paygroup_code := get_vendor_paygroup(
21597 x_return_status => x_return_status,
21598 p_contract_number => p_contract_number,
21599 p_line_number => p_line_number,
21600 p_auth_org_id => p_auth_org_id,
21601 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21602 );
21603
21604 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21605 raise party_role_failed;
21606 END IF;
21607
21608 IF (l_paygroup_code IS NOT NULL) THEN
21609 l_evg_cont_pmnt_dtls_rec.pay_group_code := l_paygroup_code;
21610 ELSE
21611 okl_api.set_message(
21612 G_APP_NAME,
21613 G_MISSING_VALUE_FOR_LINE,
21614 'CONTRACT_NUM',
21615 p_contract_number||'/'||TO_CHAR(p_line_number),
21616 'COL_NAME',
21617 'PTH_EVG_PAYGROUP_CODE',
21618 'LINE',
21619 p_line_type
21620 );
21621 raise party_role_failed;
21622 END IF;
21623 ELSE
21624 l_evg_cont_pmnt_dtls_rec.pay_group_code := p_pth_evg_paygroup_code;
21625 END IF;
21626 IF (p_pth_evg_pmnt_basis is NULL) THEN
21627 l_evg_cont_pmnt_dtls_rec.payment_basis := 'PROCESS_DATE';
21628 ELSE
21629 OPEN pmnt_basis_csr(p_pth_evg_pmnt_basis);
21630 FETCH pmnt_basis_csr INTO rec_exists_yn;
21631 IF (pmnt_basis_csr%NOTFOUND) THEN
21632 okl_api.set_message(
21633 G_APP_NAME,
21634 G_INVALID_VALUE,
21635 'CONTRACT_NUM',
21636 p_contract_number||'/'||TO_CHAR(p_line_number),
21637 'COL_NAME',
21638 'PTH_EVG_PMNT_BASIS',
21639 'COL_VALUE',
21640 p_pth_evg_pmnt_basis
21641 );
21642 CLOSE pmnt_basis_csr;
21643 raise party_role_failed;
21644 ELSE
21645 l_evg_cont_pmnt_dtls_rec.payment_basis := p_pth_evg_pmnt_basis;
21646 CLOSE pmnt_basis_csr;
21647 END IF;
21648 END IF;
21649 l_evg_cont_pmnt_dtls_rec.payment_hdr_id := g_evg_cont_pmnt_hdr.id;
21650 l_evg_cont_pmnt_dtls_rec.payment_method_code := p_pth_evg_pmnt_method_code;
21651
21652 IF ((p_pth_evg_pmnt_basis = 'PROCESS_DATE') AND
21653 (p_pth_evg_pmnt_remit_days IS NULL)) THEN
21654 okl_api.set_message(
21655 G_APP_NAME,
21656 G_MISSING_VALUE_FOR_LINE,
21657 'CONTRACT_NUM',
21658 p_contract_number||'/'||TO_CHAR(p_line_number),
21659 'COL_NAME',
21660 'PTH_EVG_PMNT_REMIT_DAYS',
21661 'LINE',
21662 p_line_type
21663 );
21664 raise party_role_failed;
21665 ELSE
21666 l_evg_cont_pmnt_dtls_rec.remit_days := p_pth_evg_pmnt_remit_days;
21667 END IF;
21668 IF (p_pth_evg_disb_basis is NOT NULL) THEN
21669 OPEN disb_basis_csr(p_pth_evg_disb_basis);
21670 FETCH disb_basis_csr INTO rec_exists_yn;
21671 IF (disb_basis_csr%NOTFOUND) THEN
21672 okl_api.set_message(
21673 G_APP_NAME,
21674 G_INVALID_VALUE,
21675 'CONTRACT_NUM',
21676 p_contract_number||'/'||TO_CHAR(p_line_number),
21677 'COL_NAME',
21678 'PTH_EVG_DISB_BASIS',
21679 'COL_VALUE',
21680 p_pth_evg_disb_basis
21681 );
21682 CLOSE disb_basis_csr;
21683 raise party_role_failed;
21684 ELSE
21685 l_evg_cont_pmnt_dtls_rec.disbursement_basis := p_pth_evg_disb_basis;
21686 CLOSE disb_basis_csr;
21687 END IF;
21688 ELSE
21689 okl_api.set_message(
21690 G_APP_NAME,
21691 G_MISSING_VALUE_FOR_LINE,
21692 'CONTRACT_NUM',
21693 p_contract_number||'/'||TO_CHAR(p_line_number),
21694 'COL_NAME',
21695 'PTH_EVG_DISB_BASIS',
21696 'LINE',
21697 p_line_type
21698 );
21699 END IF;
21700 IF ((p_pth_evg_disb_basis = 'AMOUNT')) THEN
21701 IF (p_pth_evg_disb_fixed_amount IS NULL) THEN
21702 okl_api.set_message(
21703 G_APP_NAME,
21704 G_MISSING_VALUE_FOR_LINE,
21705 'CONTRACT_NUM',
21706 p_contract_number||'/'||TO_CHAR(p_line_number),
21707 'COL_NAME',
21708 'PTH_EVG_DISB_FIXED_AMOUNT',
21709 'LINE',
21710 p_line_type
21711 );
21712 raise party_role_failed;
21713 ELSE
21714 l_evg_cont_pmnt_dtls_rec.disbursement_fixed_amount := p_pth_evg_disb_fixed_amount;
21715 END IF;
21716 END IF;
21717 IF ((p_pth_evg_disb_basis = 'PERCENT')) THEN
21718 IF (p_pth_evg_disb_pct IS NULL) THEN
21719 okl_api.set_message(
21720 G_APP_NAME,
21721 G_MISSING_VALUE_FOR_LINE,
21722 'CONTRACT_NUM',
21723 p_contract_number||'/'||TO_CHAR(p_line_number),
21724 'COL_NAME',
21725 'PTH_EVG_DISB_PCT',
21726 'LINE',
21727 p_line_type
21728 );
21729 raise party_role_failed;
21730 ELSE
21731 l_evg_cont_pmnt_dtls_rec.disbursement_percent := p_pth_evg_disb_pct;
21732 END IF;
21733 END IF;
21734
21735 IF (p_pth_evg_proc_fee_basis is NOT NULL) THEN
21736 OPEN proc_fee_basis_csr(p_pth_evg_proc_fee_basis);
21737 FETCH proc_fee_basis_csr INTO rec_exists_yn;
21738 IF (proc_fee_basis_csr%NOTFOUND) THEN
21739 okl_api.set_message(
21740 G_APP_NAME,
21741 G_INVALID_VALUE,
21742 'CONTRACT_NUM',
21743 p_contract_number||'/'||TO_CHAR(p_line_number),
21744 'COL_NAME',
21745 'PTH_EVG_PROC_FEE_BASIS',
21746 'COL_VALUE',
21747 p_pth_evg_proc_fee_basis
21748 );
21749 CLOSE proc_fee_basis_csr;
21750 raise party_role_failed;
21751 ELSE
21752 l_evg_cont_pmnt_dtls_rec.processing_fee_basis := p_pth_evg_proc_fee_basis;
21753 CLOSE proc_fee_basis_csr;
21754 END IF;
21755 END IF;
21756 IF ((p_pth_evg_proc_fee_basis = 'AMOUNT')) THEN
21757 IF (p_pth_evg_proc_fee_fixed_amt IS NULL) THEN
21758 okl_api.set_message(
21759 G_APP_NAME,
21760 G_MISSING_VALUE_FOR_LINE,
21761 'CONTRACT_NUM',
21762 p_contract_number||'/'||TO_CHAR(p_line_number),
21763 'COL_NAME',
21764 'PTH_EVG_PROC_FEE_FIXED_AMT',
21765 'LINE',
21766 p_line_type
21767 );
21768 raise party_role_failed;
21769 ELSE
21770 l_evg_cont_pmnt_dtls_rec.processing_fee_fixed_amount := p_pth_evg_proc_fee_fixed_amt;
21771 END IF;
21772 END IF;
21773
21774 IF ((p_pth_evg_proc_fee_basis = 'PERCENT')) THEN
21775 IF (p_pth_evg_proc_pct IS NULL) THEN
21776 okl_api.set_message(
21777 G_APP_NAME,
21778 G_MISSING_VALUE_FOR_LINE,
21779 'CONTRACT_NUM',
21780 p_contract_number||'/'||TO_CHAR(p_line_number),
21781 'COL_NAME',
21782 'PTH_EVG_PROC_PCT',
21783 'LINE',
21784 p_line_type
21785 );
21786 raise party_role_failed;
21787 ELSE
21788 l_evg_cont_pmnt_dtls_rec.processing_fee_percent := p_pth_evg_proc_pct;
21789 END IF;
21790 END IF;
21791 l_counter := l_counter + 1;
21792 l_cont_pmnt_dtls_tbl_in(l_counter) := l_evg_cont_pmnt_dtls_rec;
21793
21794 END IF; -- vendor_site_code is not null
21795 END IF; -- p_line_number is null
21796 END IF; -- g_evg_cont_pmnt_hdr.id is not null
21797
21798 debug_message ('No. of records in payment dtls table : '||l_cont_pmnt_dtls_tbl_in.count);
21799
21800 IF (l_cont_pmnt_dtls_tbl_in.COUNT > 0) THEN
21801 okl_party_payments_pvt.create_party_payment_dtls(
21802 p_api_version => 1.0,
21803 x_return_status => x_return_status,
21804 x_msg_count => x_msg_count,
21805 x_msg_data => x_msg_data,
21806 p_ppydv_tbl => l_cont_pmnt_dtls_tbl_in,
21807 x_ppydv_tbl => l_cont_pmnt_dtls_tbl_out
21808 );
21809
21810 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21811 x_return_status := OKL_API.G_RET_STS_ERROR;
21812 RAISE party_role_failed;
21813 END IF;
21814 END IF;
21815 debug_message('Contract evergreen dtls end.');
21816 -- Create evergreen payment dtls if header exists
21817
21818 debug_message('------>Party role done');
21819 return;
21820
21821 EXCEPTION
21822
21823 WHEN party_role_failed THEN
21824 x_return_status := OKL_API.G_RET_STS_ERROR;
21825 debug_message(l_proc_name ||': '||l_progress);
21826
21827 WHEN OTHERS THEN
21828 debug_message(l_proc_name ||': '||l_progress);
21829
21830 END process_party_role;
21831
21832 ------------------------------------------------------------------------------
21833 -- PROCEDURE process_term
21834 -- It Process Terms Interafce Records at Contract Line level and Header Level as well and
21835 -- stacks Error, if any, and returns ERROR status to calling process.
21836 -- Calls:
21837 -- get_bill_to_address_id
21838 -- get_bank_account_id
21839 -- get_invoice_format_id
21840 -- get_payment_method_id
21841 -- Called By:
21842 -- load_input_record
21843 ------------------------------------------------------------------------------
21844 PROCEDURE process_term(
21845 x_return_status OUT NOCOPY VARCHAR2,
21846 x_msg_count OUT NOCOPY NUMBER,
21847 x_msg_data OUT NOCOPY VARCHAR2,
21848 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
21849 p_chr_id IN okc_k_headers_v.id%TYPE,
21850 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
21851 p_line_number IN okc_k_lines_v.line_number%TYPE,
21852 p_line_type IN okl_lines_interface.line_type%TYPE,
21853 p_cle_id IN okc_k_lines_v.id%TYPE,
21854 p_bill_to_address_id IN okl_terms_interface.bill_to_address_id%TYPE,
21855 p_bill_to_address IN okl_terms_interface.bill_to_address%TYPE,
21856 p_bank_account_id IN okl_terms_interface.bank_account_id%TYPE,
21857 p_bank_account_number IN okl_terms_interface.bank_account_number%TYPE,
21858 p_reason_for_invoice_review IN okl_terms_interface.reason_for_invoice_review%TYPE,
21859 p_invoice_review_until_date IN okl_terms_interface.invoice_review_until_date%TYPE,
21860 p_invoice_format_id IN okl_terms_interface.invoice_format_id%TYPE,
21861 p_invoice_format_code IN okl_terms_interface.invoice_format_code%TYPE,
21862 p_review_invoice_flag IN okl_terms_interface.review_invoice_flag%TYPE,
21863 p_payment_method_id IN okl_terms_interface.payment_method_id%TYPE,
21864 p_payment_method IN okl_terms_interface.payment_method%TYPE,
21865 p_prescribed_asset_flag IN okl_terms_interface.prescribed_asset_flag%TYPE,
21866 p_cash_appl_rule_name IN okl_terms_interface.cash_appl_rule_name%TYPE
21867 ) IS
21868
21869 l_proc_name VARCHAR2(35) := 'PROCESS_TERM';
21870 term_failed EXCEPTION;
21871
21872 -- Rule Rec
21873 x_rgpv_rec rgpv_rec_type;
21874 l_rgpv_rec rgpv_rec_type;
21875
21876 l_rulv_rec rulv_rec_type;
21877 x_rulv_rec rulv_rec_type;
21878
21879 l_clev_rec clev_rec_type;
21880 x_clev_rec clev_rec_type;
21881 l_klev_rec klev_rec_type;
21882 x_klev_rec klev_rec_type;
21883
21884 x_bank_account_id NUMBER := NULL;
21885 x_bill_to_address_id NUMBER := NULL;
21886 x_invoice_format_id NUMBER := NULL;
21887 x_payment_method_id NUMBER := NULL;
21888 x_invoice_format_name okl_invoice_formats_v.name%TYPE;
21889 l_rgp_id NUMBER;
21890
21891 x_cash_appl_rule_id OKL_BPD_ACTIVE_CSH_RLS_V.ID1%TYPE;
21892 BEGIN
21893
21894 x_return_status := OKL_API.G_RET_STS_SUCCESS;
21895 debug_message(l_proc_name);
21896
21897 IF (p_line_type = 'ASSET') THEN
21898
21899 l_rgpv_rec := NULL;
21900 l_rgp_id := NULL;
21901 l_rgpv_rec.rgd_code := 'LABILL';
21902 l_rgpv_rec.chr_id := NULL;
21903 l_rgpv_rec.dnz_chr_id := p_chr_id;
21904 l_rgpv_rec.cle_id := p_cle_id;
21905 l_rgpv_rec.rgp_type := 'KRG';
21906
21907 debug_message('------>Cust Acct: '||g_customer_account_id);
21908
21909 IF (g_customer_account_id IS NOT NULL) THEN -- customer account is provided at header interface
21910 get_bill_to_address_id(
21911 x_return_status => x_return_status,
21912 x_msg_count => x_msg_count,
21913 x_msg_data => x_msg_data,
21914 p_contract_number => p_contract_number,
21915 p_auth_org_id => p_auth_org_id,
21916 p_bill_to_address_id => p_bill_to_address_id,
21917 p_bill_to_address => p_bill_to_address,
21918 p_customer_account_id => g_customer_account_id,
21919 x_bill_to_address_id => x_bill_to_address_id
21920 );
21921
21922 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21923 x_return_status := OKL_API.G_RET_STS_ERROR;
21924 raise term_failed;
21925 END IF;
21926
21927 END IF; --g_customer_account_id
21928
21929 l_rulv_rec := NULL;
21930
21931 -- cklee bug# 3440442 bug# 3440442
21932 debug_message('------>prescribed_asset_flag: '||p_prescribed_asset_flag);
21933 IF (p_prescribed_asset_flag IS NOT NULL) THEN
21934
21935 IF (NVL(p_prescribed_asset_flag,'N') NOT IN ('Y','N')) THEN
21936 okl_api.set_message(
21937 G_APP_NAME,
21938 G_INVALID_VALUE,
21939 'CONTRACT_NUM',
21940 p_contract_number,
21941 'COL_NAME',
21942 'PRESCRIBED_ASSET_FLAG',
21943 'COL_VALUE',
21944 p_prescribed_asset_flag
21945 );
21946
21947 x_return_status := OKL_API.G_RET_STS_ERROR;
21948 raise term_failed;
21949
21950 END IF;
21951
21952 -- Update prescribed_asset_flag
21953 l_clev_rec.id := p_cle_id;
21954 -- l_clev_rec.dnz_chr_id := p_chr_id;
21955 l_klev_rec.prescribed_asset_yn := p_prescribed_asset_flag;
21956
21957 okl_contract_pub.update_contract_line(
21958 p_api_version => 1.0,
21959 p_init_msg_list => OKL_API.G_FALSE,
21960 x_return_status => x_return_status,
21961 x_msg_count => x_msg_count,
21962 x_msg_data => x_msg_data,
21963 p_clev_rec => l_clev_rec,
21964 p_klev_rec => l_klev_rec,
21965 x_clev_rec => x_clev_rec,
21966 x_klev_rec => x_klev_rec
21967 );
21968
21969 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21970 x_return_status := OKL_API.G_RET_STS_ERROR;
21971 raise term_failed;
21972 END IF;
21973
21974 debug_message('------>prescribed_asset_flag updated: '||x_klev_rec.prescribed_asset_yn);
21975 END IF;
21976 -- cklee bug# 3440442 bug# 3440442
21977
21978
21979 debug_message('------>Bill to ID: '||x_bill_to_address_id);
21980
21981 IF (x_bill_to_address_id IS NOT NULL) THEN
21982
21983 -- Update asset line with BTO information
21984 l_clev_rec.id := p_cle_id;
21985 --l_clev_rec.dnz_chr_id := p_chr_id;
21986 l_clev_rec.bill_to_site_use_id := x_bill_to_address_id;
21987
21988 okl_contract_pub.update_contract_line(
21989 p_api_version => 1.0,
21990 p_init_msg_list => OKL_API.G_FALSE,
21991 x_return_status => x_return_status,
21992 x_msg_count => x_msg_count,
21993 x_msg_data => x_msg_data,
21994 p_clev_rec => l_clev_rec,
21995 p_klev_rec => l_klev_rec,
21996 x_clev_rec => x_clev_rec,
21997 x_klev_rec => x_klev_rec
21998 );
21999
22000 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22001 x_return_status := OKL_API.G_RET_STS_ERROR;
22002 raise term_failed;
22003 END IF;
22004
22005 debug_message('------>Bill to updated: '||x_clev_rec.bill_to_site_use_id);
22006
22007 /* Rule Migration
22008
22009 l_rulv_rec.jtot_object1_code := 'OKX_BILLTO';
22010 l_rulv_rec.object1_id1 := TO_CHAR(x_bill_to_address_id);
22011 l_rulv_rec.object1_id2 := '#';
22012 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22013 l_rulv_rec.dnz_chr_id := p_chr_id;
22014 l_rulv_rec.rule_information_category := 'BTO';
22015 l_rulv_rec.std_template_yn := 'N';
22016 l_rulv_rec.warn_yn := 'N';
22017
22018 create_rule_group_and_rule(
22019 x_return_status => x_return_status,
22020 x_msg_count => x_msg_count,
22021 x_msg_data => x_msg_data,
22022 p_rgp_id => l_rgp_id,
22023 p_rgpv_rec => l_rgpv_rec,
22024 p_rulv_rec => l_rulv_rec,
22025 x_rgpv_rec => x_rgpv_rec,
22026 x_rulv_rec => x_rulv_rec
22027 );
22028
22029 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22030 raise term_failed;
22031 END IF;
22032
22033 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22034 l_rgp_id := x_rgpv_rec.id;
22035 END IF;
22036 */
22037 IF (p_bank_account_id IS NOT NULL
22038 OR
22039 p_bank_account_number IS NOT NULL) THEN
22040 get_bank_account_id(
22041 x_return_status => x_return_status,
22042 x_msg_count => x_msg_count,
22043 x_msg_data => x_msg_data,
22044 p_contract_number => p_contract_number,
22045 p_auth_org_id => p_auth_org_id,
22046 p_bank_account_id => p_bank_account_id,
22047 p_bank_account_number => p_bank_account_number,
22048 p_customer_account_id => g_customer_account_id,
22049 p_cust_site_id => x_bill_to_address_id,
22050 x_bank_account_id => x_bank_account_id
22051 );
22052 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22053 x_return_status := OKL_API.G_RET_STS_ERROR;
22054 raise term_failed;
22055 END IF;
22056 END IF;
22057
22058 l_rulv_rec := NULL;
22059 IF (x_bank_account_id IS NOT NULL) THEN
22060
22061 l_rulv_rec.jtot_object1_code := 'OKX_CUSTBKAC';
22062 l_rulv_rec.object1_id1 := TO_CHAR(x_bank_account_id);
22063 l_rulv_rec.object1_id2 := '#';
22064 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22065 l_rulv_rec.dnz_chr_id := p_chr_id;
22066 l_rulv_rec.rule_information_category := 'LABACC';
22067 l_rulv_rec.std_template_yn := 'N';
22068 l_rulv_rec.warn_yn := 'N';
22069
22070 create_rule_group_and_rule(
22071 x_return_status => x_return_status,
22072 x_msg_count => x_msg_count,
22073 x_msg_data => x_msg_data,
22074 p_rgp_id => l_rgp_id,
22075 p_rgpv_rec => l_rgpv_rec,
22076 p_rulv_rec => l_rulv_rec,
22077 x_rgpv_rec => x_rgpv_rec,
22078 x_rulv_rec => x_rulv_rec
22079 );
22080
22081 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22082 raise term_failed;
22083 END IF;
22084
22085 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22086 l_rgp_id := x_rgpv_rec.id;
22087 END IF;
22088
22089 END IF; --bank_account
22090
22091 IF (p_reason_for_invoice_review IS NOT NULL) THEN -- Bug# 3650522
22092 OKL_API.SET_MESSAGE(
22093 G_APP_NAME,
22094 G_VALUE_NOT_ALLOWED,
22095 'CONTRACT_NUM',
22096 p_contract_number,
22097 'LINE_NUM',
22098 p_line_number,
22099 'COL_NAME',
22100 'REASON_FOR_INVOICE_REVIEW'
22101 );
22102
22103 x_return_status := OKL_API.G_RET_STS_ERROR;
22104
22105 END IF;
22106
22107 IF (p_invoice_review_until_date IS NOT NULL) THEN -- Bug# 3650522
22108 OKL_API.SET_MESSAGE(
22109 G_APP_NAME,
22110 G_VALUE_NOT_ALLOWED,
22111 'CONTRACT_NUM',
22112 p_contract_number,
22113 'LINE_NUM',
22114 p_line_number,
22115 'COL_NAME',
22116 'INVOICE_REVIEW_UNTIL_DATE'
22117 );
22118
22119 x_return_status := OKL_API.G_RET_STS_ERROR;
22120
22121 END IF;
22122
22123 /* not required, Bug# 3650522
22124 debug_message('------>Before review invoice');
22125 l_rulv_rec := NULL;
22126 IF (p_reason_for_invoice_review IS NOT NULL) THEN
22127
22128 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22129 l_rulv_rec.dnz_chr_id := p_chr_id;
22130 l_rulv_rec.rule_information1 := p_reason_for_invoice_review;
22131 l_rulv_rec.rule_information_category := 'LAINPR';
22132 l_rulv_rec.std_template_yn := 'N';
22133 l_rulv_rec.warn_yn := 'N';
22134
22135 END IF; --reason for invoice review
22136
22137 IF (p_invoice_review_until_date IS NOT NULL) THEN
22138
22139 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22140 l_rulv_rec.dnz_chr_id := p_chr_id;
22141 l_rulv_rec.rule_information2 := get_canonical_date(p_invoice_review_until_date);
22142 l_rulv_rec.rule_information_category := 'LAINPR';
22143 l_rulv_rec.std_template_yn := 'N';
22144 l_rulv_rec.warn_yn := 'N';
22145
22146 END IF; -- invoice review until date
22147
22148 create_rule_group_and_rule(
22149 x_return_status => x_return_status,
22150 x_msg_count => x_msg_count,
22151 x_msg_data => x_msg_data,
22152 p_rgp_id => l_rgp_id,
22153 p_rgpv_rec => l_rgpv_rec,
22154 p_rulv_rec => l_rulv_rec,
22155 x_rgpv_rec => x_rgpv_rec,
22156 x_rulv_rec => x_rulv_rec
22157 );
22158
22159 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22160 raise term_failed;
22161 END IF;
22162 */
22163 /* Bug# 4284166 : not required
22164
22165 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22166 l_rgp_id := x_rgpv_rec.id;
22167 END IF;
22168 */
22169
22170 IF (p_invoice_format_id IS NOT NULL
22171 OR
22172 p_invoice_format_code IS NOT NULL) THEN -- Bug# 3650522
22173 OKL_API.SET_MESSAGE(
22174 G_APP_NAME,
22175 G_VALUE_NOT_ALLOWED,
22176 'CONTRACT_NUM',
22177 p_contract_number,
22178 'LINE_NUM',
22179 p_line_number,
22180 'COL_NAME',
22181 'INVOICE_FORMAT_ID/_CODE'
22182 );
22183
22184 x_return_status := OKL_API.G_RET_STS_ERROR;
22185
22186 END IF;
22187
22188 /* not required, Bug# 3650522
22189 debug_message('------>Before invoice format');
22190
22191 IF (p_invoice_format_id IS NOT NULL
22192 OR
22193 p_invoice_format_code IS NOT NULL) THEN
22194 get_invoice_format_id(
22195 x_return_status => x_return_status,
22196 x_msg_count => x_msg_count,
22197 x_msg_data => x_msg_data,
22198 p_contract_number => p_contract_number,
22199 p_invoice_format_id => p_invoice_format_id,
22200 p_invoice_format_code => p_invoice_format_code,
22201 x_invoice_format_id => x_invoice_format_id,
22202 x_invoice_format_name => x_invoice_format_name
22203 );
22204
22205 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22206 x_return_status := OKL_API.G_RET_STS_ERROR;
22207 raise term_failed;
22208 END IF;
22209 END IF;
22210
22211 debug_message('------>Invoice format ID: '||x_invoice_format_id);
22212 */
22213
22214 IF (p_cash_appl_rule_name IS NOT NULL) THEN -- Bug# 3650522
22215 OKL_API.SET_MESSAGE(
22216 G_APP_NAME,
22217 G_VALUE_NOT_ALLOWED,
22218 'CONTRACT_NUM',
22219 p_contract_number,
22220 'LINE_NUM',
22221 p_line_number,
22222 'COL_NAME',
22223 'CASH_APPL_RULE_NAME'
22224 );
22225
22226 x_return_status := OKL_API.G_RET_STS_ERROR;
22227
22228 END IF;
22229
22230 IF (p_review_invoice_flag IS NOT NULL) THEN -- Bug# 3650522
22231 OKL_API.SET_MESSAGE(
22232 G_APP_NAME,
22233 G_VALUE_NOT_ALLOWED,
22234 'CONTRACT_NUM',
22235 p_contract_number,
22236 'LINE_NUM',
22237 p_line_number,
22238 'COL_NAME',
22239 'REVIEW_INVOICE_FLAG'
22240 );
22241
22242 x_return_status := OKL_API.G_RET_STS_ERROR;
22243
22244 END IF;
22245
22246 /* Not required, Bug# 3650522
22247 IF (p_cash_appl_rule_name IS NOT NULL) THEN
22248 get_cash_appl_rule_id (
22249 x_return_status => x_return_status,
22250 x_msg_count => x_msg_count,
22251 x_msg_data => x_msg_data,
22252 p_contract_number => p_contract_number||'/'||p_line_number,
22253 p_org_id => p_auth_org_id,
22254 p_cash_appl_rule_name => p_cash_appl_rule_name,
22255 x_cash_appl_rule_id => x_cash_appl_rule_id
22256 );
22257
22258 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22259 x_return_status := OKL_API.G_RET_STS_ERROR;
22260 raise term_failed;
22261 END IF;
22262 END IF;
22263
22264 l_rulv_rec := NULL;
22265
22266 IF (x_cash_appl_rule_id IS NOT NULL) THEN
22267 l_rulv_rec.jtot_object1_code := 'OKL_CASHAPPL';
22268 l_rulv_rec.object1_id1 := TO_CHAR(x_cash_appl_rule_id);
22269 l_rulv_rec.object1_id2 := '#';
22270 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22271 l_rulv_rec.dnz_chr_id := p_chr_id;
22272 l_rulv_rec.rule_information_category := 'LAINVD';
22273 l_rulv_rec.std_template_yn := 'N';
22274 l_rulv_rec.warn_yn := 'N';
22275 END IF;
22276
22277 IF (x_invoice_format_id IS NOT NULL) THEN
22278
22279 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22280 l_rulv_rec.dnz_chr_id := p_chr_id;
22281 --l_rulv_rec.rule_information4 := TO_CHAR(x_invoice_format_id);
22282 -- l_rulv_rec.rule_information1 := x_invoice_format_name; --TO_CHAR(x_invoice_format_id); ----sechawla 13-may09 6826580
22283 l_rulv_rec.rule_information1 := x_invoice_format_id; --sechawla 13-may09 6826580
22284 l_rulv_rec.rule_information_category := 'LAINVD';
22285 l_rulv_rec.std_template_yn := 'N';
22286 l_rulv_rec.warn_yn := 'N';
22287
22288 END IF; -- invoice format id
22289
22290 IF (p_review_invoice_flag IS NOT NULL) THEN
22291
22292 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22293 l_rulv_rec.dnz_chr_id := p_chr_id;
22294 --l_rulv_rec.rule_information1 := p_review_invoice_flag;
22295 l_rulv_rec.rule_information4 := NVL(p_review_invoice_flag, 'N');
22296 l_rulv_rec.rule_information_category := 'LAINVD';
22297 l_rulv_rec.std_template_yn := 'N';
22298 l_rulv_rec.warn_yn := 'N';
22299
22300 END IF; -- reveiew invoice flag
22301
22302 create_rule_group_and_rule(
22303 x_return_status => x_return_status,
22304 x_msg_count => x_msg_count,
22305 x_msg_data => x_msg_data,
22306 p_rgp_id => l_rgp_id,
22307 p_rgpv_rec => l_rgpv_rec,
22308 p_rulv_rec => l_rulv_rec,
22309 x_rgpv_rec => x_rgpv_rec,
22310 x_rulv_rec => x_rulv_rec
22311 );
22312
22313 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22314 raise term_failed;
22315 END IF;
22316 */
22317 /* Bug# 4284166 : not required
22318
22319 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22320 l_rgp_id := x_rgpv_rec.id;
22321 END IF;
22322 */
22323 --
22324 -- status set to error if the following billing parameters are
22325 -- populated.
22326 -- 1. Cash Application Rule
22327 -- 2. Invoice Format
22328 -- 3. Review Invoice
22329 -- 4. Reason for Review
22330 -- 5. Review until Date
22331 --
22332 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN -- Bug# 3650522
22333 RAISE term_failed;
22334 END IF;
22335
22336 debug_message('------>Before Payment Method');
22337 IF (p_payment_method_id IS NOT NULL
22338 OR
22339 p_payment_method IS NOT NULL) THEN
22340 get_payment_method_id(
22341 x_return_status => x_return_status,
22342 x_msg_count => x_msg_count,
22343 x_msg_data => x_msg_data,
22344 p_contract_number => p_contract_number,
22345 p_customer_account_id => g_customer_account_id,
22346 p_bill_to_address_id => x_bill_to_address_id, -- got from get_bill_to_address_id() above
22347 p_payment_method_id => p_payment_method_id,
22348 p_payment_method => p_payment_method,
22349 x_payment_method_id => x_payment_method_id
22350 );
22351
22352 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22353 x_return_status := OKL_API.G_RET_STS_ERROR;
22354 raise term_failed;
22355 END IF;
22356 END IF;
22357
22358 l_rulv_rec := NULL;
22359 IF (x_payment_method_id IS NOT NULL) THEN
22360
22361 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22362 l_rulv_rec.dnz_chr_id := p_chr_id;
22363 l_rulv_rec.jtot_object1_code := 'OKX_RCPTMTH';
22364 l_rulv_rec.object1_id1 := TO_CHAR(x_payment_method_id);
22365 l_rulv_rec.object1_id2 := '#';
22366 l_rulv_rec.rule_information_category := 'LAPMTH';
22367 l_rulv_rec.std_template_yn := 'N';
22368 l_rulv_rec.warn_yn := 'N';
22369
22370 create_rule_group_and_rule(
22371 x_return_status => x_return_status,
22372 x_msg_count => x_msg_count,
22373 x_msg_data => x_msg_data,
22374 p_rgp_id => l_rgp_id,
22375 p_rgpv_rec => l_rgpv_rec,
22376 p_rulv_rec => l_rulv_rec,
22377 x_rgpv_rec => x_rgpv_rec,
22378 x_rulv_rec => x_rulv_rec
22379 );
22380
22381 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22382 raise term_failed;
22383 END IF;
22384
22385 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22386 l_rgp_id := x_rgpv_rec.id;
22387 END IF;
22388
22389 END IF; -- payment method id
22390
22391 debug_message('------>After payment method');
22392 END IF; -- bill_to_address
22393 END IF; -- Line type
22394
22395 return;
22396
22397 EXCEPTION
22398
22399 WHEN term_failed THEN
22400 x_return_status := OKL_API.G_RET_STS_ERROR;
22401
22402 END process_term;
22403
22404 ------------------------------------------------------------------------------
22405 -- PROCEDURE create_payment_rule_group
22406 -- It creates Rule Group and Rule related to Payments and
22407 -- stacks Error, if any, and returns ERROR status to calling process.
22408 -- Calls:
22409 -- check_stream_type_code
22410 -- Called By:
22411 -- load_input_record
22412 ------------------------------------------------------------------------------
22413 PROCEDURE create_payment_rule_group(
22414 x_return_status OUT NOCOPY VARCHAR2,
22415 x_msg_count OUT NOCOPY NUMBER,
22416 x_msg_data OUT NOCOPY VARCHAR2,
22417 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22418 p_line_number IN okl_lines_interface.line_number%TYPE,
22419 p_payment_type_code IN VARCHAR2,
22420 p_stream_purpose IN okl_payments_interface.stream_purpose_code%TYPE,
22421 p_chr_id IN NUMBER,
22422 p_cle_id IN NUMBER,
22423 p_rg_id IN NUMBER,
22424 x_rgp_id OUT NOCOPY NUMBER,
22425 x_slh_rulv_rec OUT NOCOPY rulv_rec_type
22426 ) IS
22427 l_proc_name VARCHAR2(35) := 'CREATE_PAYMENT_RULE_GROUP';
22428 x_id1 okl_strmtyp_source_v.id1%TYPE;
22429 pay_rule_failed EXCEPTION;
22430
22431 l_rulv_rec rulv_rec_type;
22432 l_rgpv_rec rgpv_rec_type;
22433 x_rgpv_rec rgpv_rec_type;
22434
22435 l_present_yn VARCHAR2(1);
22436 l_payment_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
22437
22438 --Bug# 6112766:Start
22439 CURSOR get_rule_group_info(p_chr_id okc_k_headers_b.id%TYPE,
22440 p_cle_id okc_k_lines_v.id%TYPE) IS
22441 SELECT rgp.id
22442 FROM okc_rule_groups_b rgp
22443 WHERE rgp.dnz_chr_id = p_chr_id
22444 AND rgp.cle_id = p_cle_id
22445 AND rgp.rgd_code = 'LALEVL'
22446 AND rgp.rgp_type = 'KRG';
22447 ln_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
22448
22449 rule_group_failed EXCEPTION;
22450 l_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
22451
22452 --Bug# 6112766: End
22453
22454 BEGIN
22455
22456 x_return_status := OKL_API.G_RET_STS_SUCCESS;
22457
22458 debug_message('------>create_payment_rule_group'); --cklee
22459
22460 check_stream_type_code(
22461 x_return_status => x_return_status,
22462 x_msg_count => x_msg_count,
22463 x_msg_data => x_msg_data,
22464 p_stream_type_code => p_payment_type_code,
22465 p_stream_purpose => p_stream_purpose,
22466 x_id1 => x_id1,
22467 x_name => l_payment_stream_name
22468 );
22469
22470 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22471 okl_api.set_message(
22472 G_APP_NAME,
22473 G_INVALID_VALUE,
22474 'CONTRACT_NUM',
22475 p_contract_number||'/'||p_line_number,
22476 'COL_NAME',
22477 'PAYMENT_TYPE_CODE, STREAM_PURPOSE_CODE',
22478 'COL_VALUE',
22479 p_payment_type_code||', '||p_stream_purpose
22480 );
22481 x_return_status := OKL_API.G_RET_STS_ERROR;
22482 RAISE pay_rule_failed;
22483 END IF;
22484
22485 --
22486 -- UDS 10/27
22487 -- Check whether the stream is present in template for this contract
22488 --
22489 l_present_yn := '?';
22490 l_present_yn := OKL_STREAMS_UTIL.strm_tmpt_contains_strm_type
22491 (p_khr_id => p_chr_id,
22492 p_sty_id => x_id1
22493 );
22494
22495 IF (l_present_yn <> 'Y') THEN
22496 okl_api.set_message(
22497 G_APP_NAME,
22498 G_NO_STRM_TMPL,
22499 'CONTRACT_NUM',
22500 p_contract_number||'/'||p_line_number,
22501 'COL_NAME',
22502 'PAYMENT_TYPE_CODE, STREAM_PURPOSE_CODE',
22503 'COL_VALUE',
22504 p_payment_type_code||', '||p_stream_purpose
22505 );
22506
22507 raise pay_rule_failed;
22508
22509 END IF;
22510 --Bug# 6112766
22511 l_rgp_id :=p_rg_id;
22512 --check for the property tax code
22513 IF ((p_stream_purpose IN ('DOWN_PAYMENT', 'ESTIMATED_PROPERTY_TAX'))
22514 AND (l_rgp_id IS NULL)) THEN
22515 OPEN get_rule_group_info(p_chr_id, p_cle_id);
22516 FETCH get_rule_group_info into l_rgp_id;
22517 IF get_rule_group_info%NOTFOUND THEN
22518 --start:| 04-Jun-08 cklee Fixed bug: 7152082 |
22519 -- RAISE rule_group_failed; -- cklee
22520 l_rgp_id := NULL;
22521 --end:| 04-Jun-08 cklee Fixed bug: 7152082 |
22522 END IF;
22523 CLOSE get_rule_group_info;
22524 END IF;
22525 --Bug# 6112766: End
22526 -- IF (p_rg_id IS NULL) THEN
22527 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136 --Bug# 6112766
22528 IF (p_line_number IS NOT NULL) THEN -- line level rule group
22529 l_rgpv_rec := NULL;
22530 l_rgpv_rec.rgd_code := 'LALEVL';
22531 l_rgpv_rec.chr_id := NULL;
22532 l_rgpv_rec.dnz_chr_id := p_chr_id;
22533 l_rgpv_rec.cle_id := p_cle_id;
22534 l_rgpv_rec.rgp_type := 'KRG';
22535 ELSE -- header level rule group
22536 l_rgpv_rec := NULL;
22537 l_rgpv_rec.rgd_code := 'LALEVL';
22538 l_rgpv_rec.chr_id := p_chr_id;
22539 l_rgpv_rec.dnz_chr_id := p_chr_id;
22540 l_rgpv_rec.cle_id := NULL;
22541 l_rgpv_rec.rgp_type := 'KRG';
22542 END IF;
22543
22544 OKL_RULE_PUB.create_rule_group(
22545 p_api_version => 1.0,
22546 p_init_msg_list => OKL_API.G_FALSE,
22547 x_return_status => x_return_status,
22548 x_msg_count => x_msg_count,
22549 x_msg_data => x_msg_data,
22550 p_rgpv_rec => l_rgpv_rec,
22551 x_rgpv_rec => x_rgpv_rec
22552 );
22553 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22554 raise pay_rule_failed;
22555 END IF;
22556
22557 x_rgp_id := x_rgpv_rec.id;
22558 ELSE
22559 --Bug# 6112766 :Start
22560 -- x_rgp_id := p_rg_id;
22561 x_rgp_id := l_rgp_id;
22562 --Bug# 6112766: End
22563 END IF;
22564
22565 l_rulv_rec := NULL;
22566 l_rulv_rec.jtot_object1_code := 'OKL_STRMTYP';
22567 l_rulv_rec.object1_id1 := TO_CHAR(x_id1);
22568 l_rulv_rec.object1_id2 := '#';
22569 l_rulv_rec.rgp_id := x_rgp_id;
22570 l_rulv_rec.dnz_chr_id := p_chr_id;
22571 l_rulv_rec.rule_information_category := 'LASLH';
22572 l_rulv_rec.std_template_yn := 'N';
22573 l_rulv_rec.warn_yn := 'N';
22574
22575 OKL_RULE_PUB.create_rule(
22576 p_api_version => 1.0,
22577 p_init_msg_list => OKL_API.G_FALSE,
22578 x_return_status => x_return_status,
22579 x_msg_count => x_msg_count,
22580 x_msg_data => x_msg_data,
22581 p_rulv_rec => l_rulv_rec,
22582 x_rulv_rec => x_slh_rulv_rec
22583 );
22584
22585 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22586 x_return_status := OKL_API.G_RET_STS_ERROR;
22587 raise pay_rule_failed;
22588 END IF;
22589
22590 RETURN;
22591
22592 EXCEPTION
22593 --Bug# 6112766 :Start
22594 WHEN rule_group_failed THEN
22595 IF get_rule_group_info%ISOPEN THEN
22596 CLOSE get_rule_group_info;
22597 END IF;
22598 x_return_status := OKL_API.G_RET_STS_ERROR;
22599 --Bug# 6112766: End
22600 WHEN pay_rule_failed THEN
22601 x_return_status := OKL_API.G_RET_STS_ERROR;
22602 END create_payment_rule_group;
22603
22604
22605 ------------------------------------------------------------------------------
22606 -- PROCEDURE create_payment_other_rules
22607 -- It creates some more rules for payment under rule group created by procedure: create_payment_rule_group and
22608 -- stacks Error, if any, and returns ERROR status to calling process.
22609 -- Calls:
22610 -- check_payment_frequency_code
22611 -- Called By:
22612 -- load_input_record
22613 ------------------------------------------------------------------------------
22614 PROCEDURE create_payment_other_rules(
22615 x_return_status OUT NOCOPY VARCHAR2,
22616 x_msg_count OUT NOCOPY NUMBER,
22617 x_msg_data OUT NOCOPY VARCHAR2,
22618 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22619 p_line_number IN okl_lines_interface.line_number%TYPE,
22620 p_payment_sch_number IN okl_payments_interface.payment_schedule_number%TYPE,
22621 p_payment_freq_code IN okl_payments_interface.payment_frequency_code%TYPE,
22622 p_arrears_flag IN okl_payments_interface.arrears_flag%TYPE,
22623 p_advance_payments IN okl_payments_interface.advance_payments%TYPE,
22624 p_payment_amount IN okl_payments_interface.payment_amount%TYPE,
22625 p_start_date IN okl_payments_interface.start_date%TYPE,
22626 p_number_of_periods IN okl_payments_interface.number_of_periods%TYPE,
22627 p_rate IN okl_payments_interface.rate%TYPE,
22628 p_comments IN okl_payments_interface.comments%TYPE,
22629 p_stub_days IN okl_payments_interface.stub_days%TYPE,
22630 p_stub_amount IN okl_payments_interface.stub_amount%TYPE,
22631 p_slh_rulv_rec IN rulv_rec_type,
22632 p_chr_id IN NUMBER,
22633 p_cle_id IN NUMBER,
22634 p_rgp_id IN NUMBER
22635 ) IS
22636
22637 l_proc_name VARCHAR2(35) := 'CREATE_PAYMENT_OTHER_RULES';
22638 x_id1 okx_tuom_v.ID1%TYPE;
22639 x_uom_code okx_tuom_v.uom_code%TYPE;
22640 pay_other_failed EXCEPTION;
22641
22642 l_rulv_rec rulv_rec_type;
22643 x_rulv_rec rulv_rec_type;
22644
22645 l_rulv_tbl rulv_tbl_type;
22646 x_rulv_tbl rulv_tbl_type;
22647
22648 BEGIN
22649
22650 x_return_status := OKL_API.G_RET_STS_ERROR;
22651
22652 l_rulv_rec := NULL;
22653 l_rulv_rec.rgp_id := p_rgp_id;
22654 l_rulv_rec.dnz_chr_id := p_chr_id;
22655 l_rulv_rec.rule_information1 := TO_CHAR(p_payment_sch_number);
22656 l_rulv_rec.rule_information_category := 'LASLL';
22657 l_rulv_rec.std_template_yn := 'N';
22658 l_rulv_rec.warn_yn := 'N';
22659
22660 check_payment_frequency_code(
22661 x_return_status => x_return_status,
22662 x_msg_count => x_msg_count,
22663 x_msg_data => x_msg_data,
22664 p_payment_freq_code => p_payment_freq_code,
22665 x_id1 => x_id1,
22666 x_uom_code => x_uom_code
22667 );
22668 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22669 okl_api.set_message(
22670 G_APP_NAME,
22671 G_INVALID_VALUE,
22672 'CONTRACT_NUM',
22673 p_contract_number||'/'||p_line_number,
22674 'COL_NAME',
22675 'PAYMENT_FREQUENCY_CODE',
22676 'COL_VALUE',
22677 p_payment_freq_code
22678 );
22679 x_return_status := OKL_API.G_RET_STS_ERROR;
22680 RAISE pay_other_failed;
22681 END IF;
22682
22683 l_rulv_rec.jtot_object1_code := 'OKL_TUOM';
22684 l_rulv_rec.object1_id1 := x_id1;
22685 l_rulv_rec.object1_id2 := '#';
22686
22687 l_rulv_rec.rule_information10 := p_arrears_flag;
22688 l_rulv_rec.rule_information5 := TO_CHAR(p_advance_payments);
22689
22690 IF (p_payment_amount IS NULL) THEN
22691 l_rulv_rec.rule_information6 := TO_CHAR(p_rate * p_number_of_periods);
22692 ELSE
22693 l_rulv_rec.rule_information6 := TO_CHAR(p_payment_amount);
22694 END IF;
22695
22696 -- l_rulv_rec.rule_information2 := get_canonicaL_date(p_start_date);
22697 l_rulv_rec.rule_information2 := NULL; -- for stub logic
22698 l_rulv_rec.rule_information3 := TO_CHAR(p_number_of_periods);
22699
22700 IF (p_comments IS NOT NULL) THEN
22701 l_rulv_rec.rule_information9 := p_comments;
22702 END IF;
22703
22704 l_rulv_rec.rule_information7 := p_stub_days;
22705 l_rulv_rec.rule_information8 := p_stub_amount;
22706
22707 -- link with SLH
22708 l_rulv_rec.jtot_object2_code := 'OKL_STRMHDR';
22709 l_rulv_rec.object2_id1 := p_slh_rulv_rec.id;
22710 l_rulv_rec.object2_id2 := '#';
22711
22712 /* Not needed now
22713 --
22714 -- populate rulv_tbl structure and call
22715 -- new payment stub routine to create LASLLs
22716 --
22717 l_rulv_tbl(1).rgp_id := l_rulv_rec.rgp_id;
22718 l_rulv_tbl(1).dnz_chr_id := l_rulv_rec.dnz_chr_id;
22719 l_rulv_tbl(1).rule_information1 := l_rulv_rec.rule_information1;
22720 l_rulv_tbl(1).rule_information_category := l_rulv_rec.rule_information_category;
22721 l_rulv_tbl(1).std_template_yn := l_rulv_rec.std_template_yn;
22722 l_rulv_tbl(1).warn_yn := l_rulv_rec.warn_yn;
22723 l_rulv_tbl(1).jtot_object1_code := l_rulv_rec.jtot_object1_code;
22724 l_rulv_tbl(1).object1_id1 := l_rulv_rec.object1_id1;
22725 l_rulv_tbl(1).object1_id2 := l_rulv_rec.object1_id2;
22726
22727 l_rulv_tbl(1).rule_information10 := l_rulv_rec.rule_information10;
22728 l_rulv_tbl(1).rule_information5 := l_rulv_rec.rule_information5;
22729 l_rulv_tbl(1).rule_information6 := l_rulv_rec.rule_information6;
22730 l_rulv_tbl(1).rule_information2 := l_rulv_rec.rule_information2;
22731 l_rulv_tbl(1).rule_information3 := l_rulv_rec.rule_information3;
22732 l_rulv_tbl(1).rule_information9 := l_rulv_rec.rule_information9;
22733
22734 l_rulv_tbl(1).rule_information7 := l_rulv_rec.rule_information7;
22735 l_rulv_tbl(1).rule_information8 := l_rulv_rec.rule_information8;
22736
22737 l_rulv_tbl(1).jtot_object2_code := l_rulv_rec.jtot_object2_code;
22738 l_rulv_tbl(1).object2_id1 := l_rulv_rec.object2_id1;
22739 l_rulv_tbl(1).object2_id2 := l_rulv_rec.object2_id2;
22740
22741 okl_la_payments_pvt_1.create_rule(
22742 p_api_version => 1.0,
22743 p_init_msg_list => OKL_API.G_FALSE,
22744 x_return_status => x_return_status,
22745 x_msg_count => x_msg_count,
22746 x_msg_data => x_msg_data,
22747 p_rulv_tbl => l_rulv_tbl,
22748 x_rulv_tbl => x_rulv_tbl
22749 );
22750
22751 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22752 x_return_status := OKL_API.G_RET_STS_ERROR;
22753 RAISE pay_other_failed;
22754 END IF;
22755 */
22756
22757 OKL_RULE_PUB.create_rule(
22758 p_api_version => 1.0,
22759 p_init_msg_list => OKL_API.G_FALSE,
22760 x_return_status => x_return_status,
22761 x_msg_count => x_msg_count,
22762 x_msg_data => x_msg_data,
22763 p_rulv_rec => l_rulv_rec,
22764 x_rulv_rec => x_rulv_rec
22765 );
22766
22767 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22768 x_return_status := OKL_API.G_RET_STS_ERROR;
22769 RAISE pay_other_failed;
22770 END IF;
22771
22772 -- Now calculate payment start date
22773 --Bug# 10257857: Modified call to send in arrears as OKL_API.G_MISS_CHAR
22774 -- so that it does not get updated to NULL
22775 OKL_LA_PAYMENTS_PVT.calculate_details(
22776 p_api_version => 1.0,
22777 p_init_msg_list => OKL_API.G_FALSE,
22778 x_return_status => x_return_status,
22779 x_msg_count => x_msg_count,
22780 x_msg_data => x_msg_data,
22781 p_chr_id => p_chr_id,
22782 p_rgp_id => p_rgp_id,
22783 p_slh_id => p_slh_rulv_rec.id,
22784 structure => NULL,
22785 frequency => NULL,
22786 arrears => OKL_API.G_MISS_CHAR,
22787 -- Bug# 6438785
22788 p_validate_date_yn => 'N'
22789 );
22790
22791 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22792 x_return_status := OKL_API.G_RET_STS_ERROR;
22793 RAISE pay_other_failed;
22794 END IF;
22795
22796 RETURN;
22797
22798 EXCEPTION
22799 WHEN pay_other_failed THEN
22800 x_return_status := OKL_API.G_RET_STS_ERROR;
22801
22802 END create_payment_other_rules;
22803
22804 ------------------------------------------------------------------------------
22805 -- PROCEDURE get_inventory_org_item_id
22806 -- It retrives Inventory Organization and Item Id and
22807 -- stacks Error, if any, and returns ERROR status to calling process.
22808 -- Calls:
22809 -- None
22810 -- Called By:
22811 -- process_other_line
22812 -- load_input_record
22813 ------------------------------------------------------------------------------
22814 PROCEDURE get_inventory_org_item_id(
22815 x_return_status OUT NOCOPY VARCHAR2,
22816 x_msg_count OUT NOCOPY NUMBER,
22817 x_msg_data OUT NOCOPY VARCHAR2,
22818 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22819 p_line_number IN okl_lines_interface.line_number%TYPE,
22820 p_line_type IN okl_lines_interface.line_type%TYPE,
22821 p_inventory_org_id IN okl_header_interface.inventory_organization_id%TYPE,
22822 p_inventory_item_id IN okl_lines_interface.inventory_item_id%TYPE,
22823 p_inventory_item_name IN okl_lines_interface.inventory_item_name%TYPE,
22824 x_inventory_org_id OUT NOCOPY NUMBER,
22825 x_inventory_item_id OUT NOCOPY NUMBER
22826 ) IS
22827 l_proc_name VARCHAR2(35) := 'GET_INVENTORY_ORG_ITEM_ID';
22828 inv_org_failed EXCEPTION;
22829 l_org_id NUMBER;
22830 l_item_id NUMBER;
22831
22832 CURSOR org_csr (p_inventory_org_id NUMBER) IS
22833 SELECT organization_id
22834 FROM hr_all_organization_units
22835 WHERE organization_id = p_inventory_org_id
22836 AND SYSDATE BETWEEN NVL(date_from, SYSDATE) AND NVL(date_to, SYSDATE);
22837
22838 /*
22839 CURSOR org_csr (p_inventory_org_name VARCHAR2,
22840 p_inventory_org_id NUMBER) IS
22841 SELECT organization_id
22842 FROM hr_all_organization_units
22843 WHERE ((name = p_inventory_org_name
22844 AND
22845 p_inventory_org_name IS NOT NULL)
22846 OR
22847 (organization_id = p_inventory_org_id
22848 AND
22849 p_inventory_org_id IS NOT NULL
22850 )
22851 )
22852 AND SYSDATE BETWEEN NVL(date_from, SYSDATE) AND NVL(date_to, SYSDATE);
22853 */
22854 CURSOR item_csr (p_inventory_org_id NUMBER,
22855 p_inventory_item_id NUMBER,
22856 p_inventory_item_name VARCHAR2) IS
22857 SELECT inventory_item_id
22858 FROM mtl_system_items
22859 WHERE ((segment1 = p_inventory_item_name
22860 AND
22861 p_inventory_item_name IS NOT NULL)
22862 OR
22863 (inventory_item_id = p_inventory_item_id
22864 AND
22865 p_inventory_item_id IS NOT NULL
22866 )
22867 )
22868 AND organization_id = p_inventory_org_id
22869 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
22870
22871 CURSOR service_item_csr (p_inventory_org_id NUMBER,
22872 p_inventory_item_id NUMBER,
22873 p_inventory_item_name VARCHAR2) IS
22874 SELECT id1
22875 FROM okx_system_items_v
22876 WHERE ((name = p_inventory_item_name
22877 AND
22878 p_inventory_item_name IS NOT NULL)
22879 OR
22880 (id1 = p_inventory_item_id
22881 AND
22882 p_inventory_item_id IS NOT NULL
22883 )
22884 )
22885 AND service_item_flag = 'Y'
22886 AND vendor_warranty_flag = 'N'
22887 AND organization_id = p_inventory_org_id
22888 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
22889
22890 BEGIN
22891
22892 x_return_status := OKL_API.G_RET_STS_SUCCESS;
22893
22894 OPEN org_csr(p_inventory_org_id);
22895 FETCH org_csr INTO l_org_id;
22896
22897 IF org_csr%NOTFOUND THEN
22898 okl_api.set_message(
22899 G_APP_NAME,
22900 G_INVALID_VALUE,
22901 'CONTRACT_NUM',
22902 p_contract_number,
22903 'COL_NAME',
22904 'INVENTORY_ORGANIZATION_ID',
22905 'COL_VALUE',
22906 p_inventory_org_id
22907 );
22908 RAISE inv_org_failed;
22909 END IF;
22910 CLOSE org_csr;
22911 x_inventory_org_id := l_org_id;
22912
22913 IF (p_line_type = 'ASSET') or (p_line_type = 'ASSET_ADDON') THEN
22914 OPEN item_csr (x_inventory_org_id,
22915 p_inventory_item_id,
22916 p_inventory_item_name);
22917 FETCH item_csr into l_item_id;
22918 IF item_csr%NOTFOUND THEN
22919 okl_api.set_message(
22920 G_APP_NAME,
22921 G_INVALID_VALUE,
22922 'CONTRACT_NUM',
22923 p_contract_number||'/'||p_line_number,
22924 'COL_NAME',
22925 'INVENTORY_ITEM_ID, NAME: ',
22926 'COL_VALUE',
22927 p_inventory_item_id||', '||p_inventory_item_name
22928 );
22929 RAISE inv_org_failed;
22930 END IF;
22931 CLOSE item_csr;
22932 ELSIF (p_line_type = 'SERVICE') THEN
22933 OPEN service_item_csr (x_inventory_org_id,
22934 p_inventory_item_id,
22935 p_inventory_item_name);
22936 FETCH service_item_csr into l_item_id;
22937 IF service_item_csr%NOTFOUND THEN
22938 okl_api.set_message(
22939 G_APP_NAME,
22940 G_INVALID_VALUE,
22941 'CONTRACT_NUM',
22942 p_contract_number||'/'||p_line_number,
22943 'COL_NAME',
22944 'INVENTORY_ITEM_ID, NAME: ',
22945 'COL_VALUE',
22946 p_inventory_item_id||', '||p_inventory_item_name
22947 );
22948 RAISE inv_org_failed;
22949 END IF;
22950 CLOSE service_item_csr;
22951 END IF; --line type
22952 x_inventory_item_id := l_item_id;
22953
22954 return;
22955
22956 EXCEPTION
22957
22958 WHEN inv_org_failed THEN
22959 IF org_csr%ISOPEN THEN
22960 CLOSE org_csr;
22961 END IF;
22962 IF item_csr%ISOPEN THEN
22963 CLOSE item_csr;
22964 END IF;
22965 IF service_item_csr%ISOPEN THEN
22966 CLOSE service_item_csr;
22967 END IF;
22968 x_return_status := OKL_API.G_RET_STS_ERROR;
22969
22970 WHEN OTHERS THEN
22971 okl_api.set_message(
22972 G_APP_NAME,
22973 G_UNEXPECTED_ERROR,
22974 'OKL_SQLCODE',
22975 SQLCODE,
22976 'OKL_SQLERRM',
22977 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
22978 );
22979 x_return_status := OKL_API.G_RET_STS_ERROR;
22980
22981 END get_inventory_org_item_id;
22982
22983 ------------------------------------------------------------------------------
22984 -- PROCEDURE get_asset_id
22985 -- It retrives Asset ID for given asset number and
22986 -- stacks Error, if any, and returns ERROR status to calling process.
22987 -- Calls:
22988 -- None
22989 -- Called By:
22990 -- load_input_record
22991 ------------------------------------------------------------------------------
22992 PROCEDURE get_asset_id(
22993 x_return_status OUT NOCOPY VARCHAR2,
22994 x_msg_count OUT NOCOPY NUMBER,
22995 x_msg_data OUT NOCOPY VARCHAR2,
22996 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22997 p_line_number IN okl_lines_interface.line_number%TYPE,
22998 p_asset_number IN okl_lines_interface.asset_number%TYPE,
22999 x_id1 OUT NOCOPY okx_assets_v.id1%TYPE,
23000 x_id2 OUT NOCOPY okx_assets_v.id2%TYPE
23001 ) IS
23002
23003 l_proc_name VARCHAR2(35) := 'GET_ASSET_ID';
23004 asset_failed EXCEPTION;
23005 l_id1 okx_assets_v.id1%TYPE;
23006 l_id2 okx_assets_v.id2%TYPE;
23007
23008 CURSOR asset_csr (p_asset_number VARCHAR2) IS
23009 SELECT id1,
23010 id2
23011 FROM okx_assets_v
23012 WHERE asset_number = p_asset_number
23013 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
23014
23015 BEGIN
23016 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23017
23018 OPEN asset_csr (p_asset_number);
23019 FETCH asset_csr INTO l_id1,
23020 l_id2;
23021 IF asset_csr%NOTFOUND THEN
23022 okl_api.set_message(
23023 G_APP_NAME,
23024 G_INVALID_VALUE,
23025 'CONTRACT_NUM',
23026 p_contract_number||'/'||p_line_number,
23027 'COL_NAME',
23028 'ASSET_NUMBER',
23029 'COL_VALUE',
23030 p_asset_number
23031 );
23032 RAISE asset_failed;
23033 END IF;
23034
23035 CLOSE asset_csr;
23036
23037 x_id1 := l_id1;
23038 x_id2 := l_id2;
23039
23040 return;
23041
23042 EXCEPTION
23043 WHEN asset_failed THEN
23044
23045 IF asset_csr%ISOPEN THEN
23046 CLOSE asset_csr;
23047 END IF;
23048
23049 x_return_status := OKL_API.G_RET_STS_ERROR;
23050
23051 END get_asset_id;
23052
23053 ------------------------------------------------------------------------------
23054 -- PROCEDURE get_asset_key_id
23055 -- It retrives ASSET_KEY segments
23056 -- Calls:
23057 -- None
23058 -- Called By:
23059 -- load_input_record
23060 ------------------------------------------------------------------------------
23061
23062 PROCEDURE get_asset_key_id(
23063 x_return_status OUT NOCOPY VARCHAR2,
23064 x_msg_count OUT NOCOPY NUMBER,
23065 x_msg_data OUT NOCOPY VARCHAR2,
23066 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
23067 p_line_number IN okc_k_lines_v.line_number%TYPE,
23068 p_comb_id IN NUMBER,
23069 p_segment1 IN VARCHAR2,
23070 p_segment2 IN VARCHAR2,
23071 p_segment3 IN VARCHAR2,
23072 p_segment4 IN VARCHAR2,
23073 p_segment5 IN VARCHAR2,
23074 p_segment6 IN VARCHAR2,
23075 p_segment7 IN VARCHAR2,
23076 p_segment8 IN VARCHAR2,
23077 p_segment9 IN VARCHAR2,
23078 p_segment10 IN VARCHAR2,
23079 x_comb_id OUT NOCOPY NUMBER
23080 ) IS
23081
23082 CURSOR flex_asset_key_csr (p_segment1 VARCHAR2,
23083 p_segment2 VARCHAR2,
23084 p_segment3 VARCHAR2,
23085 p_segment4 VARCHAR2,
23086 p_segment5 VARCHAR2,
23087 p_segment6 VARCHAR2,
23088 p_segment7 VARCHAR2,
23089 p_segment8 VARCHAR2,
23090 p_segment9 VARCHAR2,
23091 p_segment10 VARCHAR2 ) IS
23092 SELECT code_combination_id
23093 FROM fa_asset_keywords
23094 WHERE (segment1 = p_segment1
23095 OR
23096 p_segment1 IS NULL)
23097 AND (segment2 = p_segment2
23098 OR
23099 p_segment2 IS NULL)
23100 AND (segment2 = p_segment2
23101 OR
23102 p_segment2 IS NULL)
23103 AND (segment3 = p_segment3
23104 OR
23105 p_segment3 IS NULL)
23106 AND (segment4 = p_segment4
23107 OR
23108 p_segment4 IS NULL)
23109 AND (segment5 = p_segment5
23110 OR
23111 p_segment5 IS NULL)
23112 AND (segment6 = p_segment6
23113 OR
23114 p_segment6 IS NULL)
23115 AND (segment7 = p_segment7
23116 OR
23117 p_segment7 IS NULL)
23118 AND (segment8 = p_segment8
23119 OR
23120 p_segment8 IS NULL)
23121 AND (segment9 = p_segment9
23122 OR
23123 p_segment9 IS NULL)
23124 AND (segment10 = p_segment10
23125 OR
23126 p_segment10 IS NULL)
23127 AND enabled_flag <> 'N'
23128 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE)) AND NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
23129
23130 l_id NUMBER;
23131 asset_key_failed EXCEPTION;
23132 l_proc_name VARCHAR2(35) := 'GET_ASSET_KEY_ID';
23133
23134 BEGIN
23135
23136 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23137 debug_message(l_proc_name);
23138
23139 IF (p_comb_id IS NOT NULL) THEN
23140 x_comb_id := p_comb_id;
23141 ELSIF (p_segment1 IS NOT NULL
23142 OR
23143 p_segment2 IS NOT NULL
23144 OR
23145 p_segment3 IS NOT NULL
23146 OR
23147 p_segment4 IS NOT NULL
23148 OR
23149 p_segment5 IS NOT NULL
23150 OR
23151 p_segment6 IS NOT NULL
23152 OR
23153 p_segment7 IS NOT NULL
23154 OR
23155 p_segment8 IS NOT NULL
23156 OR
23157 p_segment9 IS NOT NULL
23158 OR
23159 p_segment10 IS NOT NULL) THEN
23160
23161 debug_message('Asset key segment1: '||p_segment1);
23162 OPEN flex_asset_key_csr(
23163 p_segment1,
23164 p_segment2,
23165 p_segment3,
23166 p_segment4,
23167 p_segment5,
23168 p_segment6,
23169 p_segment7,
23170 p_segment8,
23171 p_segment9,
23172 p_segment10);
23173 FETCH flex_asset_key_csr INTO l_id;
23174 IF flex_asset_key_csr%NOTFOUND THEN
23175 raise asset_key_failed;
23176 END IF;
23177 x_comb_id := l_id;
23178 END IF;
23179
23180 EXCEPTION
23181 WHEN asset_key_failed THEN
23182 IF flex_asset_key_csr%ISOPEN THEN
23183 CLOSE flex_asset_key_csr;
23184 END IF;
23185
23186 okl_api.set_message(
23187 G_APP_NAME,
23188 G_INVALID_COMBINATION,
23189 'CONTRACT_NUM',
23190 p_contract_number||'/'||p_line_number,
23191 'COMB_TYPE',
23192 'ASSET_KEY'
23193 );
23194 x_return_status := OKL_API.G_RET_STS_ERROR;
23195
23196 WHEN OTHERS THEN
23197 okl_api.set_message(
23198 G_APP_NAME,
23199 G_UNEXPECTED_ERROR,
23200 'OKL_SQLCODE',
23201 SQLCODE,
23202 'OKL_SQLERRM',
23203 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
23204 );
23205 x_return_status := OKL_API.G_RET_STS_ERROR;
23206
23207 END get_asset_key_id;
23208
23209 ------------------------------------------------------------------------------
23210 -- PROCEDURE get_flexid
23211 -- It retrives Flex Value ID from Segments value for ASSET_CATEGORY and ASSET_LOCATION and
23212 -- stacks Error, if any, and returns ERROR status to calling process.
23213 -- Calls:
23214 -- None
23215 -- Called By:
23216 -- load_input_record
23217 ------------------------------------------------------------------------------
23218
23219 PROCEDURE get_flexid(
23220 x_return_status OUT NOCOPY VARCHAR2,
23221 x_msg_count OUT NOCOPY NUMBER,
23222 x_msg_data OUT NOCOPY VARCHAR2,
23223 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
23224 p_line_number IN okc_k_lines_v.line_number%TYPE,
23225 p_type IN VARCHAR2,
23226 p_comb_id IN NUMBER,
23227 p_segment1 IN VARCHAR2,
23228 p_segment2 IN VARCHAR2,
23229 p_segment3 IN VARCHAR2,
23230 p_segment4 IN VARCHAR2,
23231 p_segment5 IN VARCHAR2,
23232 p_segment6 IN VARCHAR2,
23233 p_segment7 IN VARCHAR2,
23234 x_comb_id OUT NOCOPY NUMBER
23235 ) IS
23236 CURSOR flex_cat_csr (p_segment1 VARCHAR2,
23237 p_segment2 VARCHAR2,
23238 p_segment3 VARCHAR2,
23239 p_segment4 VARCHAR2,
23240 p_segment5 VARCHAR2,
23241 p_segment6 VARCHAR2,
23242 p_segment7 VARCHAR2 ) IS
23243 SELECT category_id
23244 FROM FA_CATEGORIES_B
23245 WHERE (segment1 = NVL(p_segment1,'NULL') OR segment1 IS NULL)
23246 AND (segment2 = NVL(p_segment2,'NULL') OR segment2 is NULL)
23247 AND (segment3 = NVL(p_segment3,'NULL') OR segment3 IS NULL)
23248 AND (segment4 = NVL(p_segment4,'NULL') OR segment4 IS NULL)
23249 AND (segment5 = NVL(p_segment5,'NULL') OR segment5 IS NULL)
23250 AND (segment6 = NVL(p_segment6,'NULL') OR segment6 IS NULL)
23251 AND (segment7 = NVL(p_segment7,'NULL') OR segment7 IS NULL)
23252 AND enabled_flag <> 'N'
23253 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
23254
23255 CURSOR flex_loc_csr (p_segment1 VARCHAR2,
23256 p_segment2 VARCHAR2,
23257 p_segment3 VARCHAR2,
23258 p_segment4 VARCHAR2,
23259 p_segment5 VARCHAR2,
23260 p_segment6 VARCHAR2,
23261 p_segment7 VARCHAR2 ) IS
23262 SELECT location_id
23263 FROM okx_ast_locs_v
23264 WHERE (segment1 = NVL(P_segment1,'NULL') OR segment1 IS NULL)
23265 AND (segment2 = NVL(p_segment2,'NULL') OR segment2 is NULL)
23266 AND (segment3 = NVL(p_segment3,'NULL') OR segment3 IS NULL)
23267 AND (segment4 = NVL(p_segment4,'NULL') OR segment4 IS NULL)
23268 AND (segment5 = NVL(p_segment5,'NULL') OR segment5 IS NULL)
23269 AND (segment6 = NVL(p_segment6,'NULL') OR segment6 IS NULL)
23270 AND (segment7 = NVL(p_segment7,'NULL') OR segment7 IS NULL)
23271 AND enabled_flag <> 'N'
23272 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
23273
23274 l_id NUMBER;
23275 flex_failed EXCEPTION;
23276
23277 BEGIN
23278
23279 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23280
23281 IF (p_comb_id IS NOT NULL) THEN
23282 x_comb_id := p_comb_id;
23283 ELSIF (p_segment1 IS NOT NULL
23284 OR
23285 p_segment2 IS NOT NULL
23286 OR
23287 p_segment3 IS NOT NULL
23288 OR
23289 p_segment4 IS NOT NULL
23290 OR
23291 p_segment5 IS NOT NULL
23292 OR
23293 p_segment6 IS NOT NULL
23294 OR
23295 p_segment7 IS NOT NULL) THEN
23296 IF (p_type = 'ASSET_CATEGORY') THEN
23297 OPEN flex_cat_csr(
23298 p_segment1,
23299 p_segment2,
23300 p_segment3,
23301 p_segment4,
23302 p_segment5,
23303 p_segment6,
23304 p_segment7);
23305 FETCH flex_cat_csr INTO l_id;
23306 IF flex_cat_csr%NOTFOUND THEN
23307 raise flex_failed;
23308 END IF;
23309 x_comb_id := l_id;
23310 ELSIF (p_type = 'ASSET_LOCATION') THEN
23311 OPEN flex_loc_csr(
23312 p_segment1,
23313 p_segment2,
23314 p_segment3,
23315 p_segment4,
23316 p_segment5,
23317 p_segment6,
23318 p_segment7);
23319 FETCH flex_loc_csr INTO l_id;
23320 IF flex_loc_csr%NOTFOUND THEN
23321 raise flex_failed;
23322 END IF;
23323 x_comb_id := l_id;
23324 END IF;
23325 END IF;
23326
23327 RETURN;
23328 EXCEPTION
23329 WHEN flex_failed THEN
23330 IF flex_cat_csr%ISOPEN THEN
23331 CLOSE flex_cat_csr;
23332 ELSIF flex_loc_csr%ISOPEN THEN
23333 CLOSE flex_loc_csr;
23334 END IF;
23335
23336 okl_api.set_message(
23337 G_APP_NAME,
23338 G_INVALID_COMBINATION,
23339 'CONTRACT_NUM',
23340 p_contract_number||'/'||p_line_number,
23341 'COMB_TYPE',
23342 p_type
23343 );
23344 x_return_status := OKL_API.G_RET_STS_ERROR;
23345
23346 WHEN OTHERS THEN
23347 x_return_status := OKL_API.G_RET_STS_ERROR;
23348
23349 END get_flexid;
23350
23351 ------------------------------------------------------------------------------
23352 -- PROCEDURE get_install_site_id
23353 -- It retrives Install Site Id from Install Site Name and
23354 -- stacks Error, if any, and returns ERROR status to calling process.
23355 -- Calls:
23356 -- None
23357 -- Called By:
23358 -- load_input_record
23359 ------------------------------------------------------------------------------
23360 PROCEDURE get_install_site_id(
23361 x_return_status OUT NOCOPY VARCHAR2,
23362 x_msg_count OUT NOCOPY NUMBER,
23363 x_msg_data OUT NOCOPY VARCHAR2,
23364 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
23365 p_line_number IN okl_lines_interface.line_number%TYPE,
23366 p_install_site_id IN okl_lines_interface.install_site_id%TYPE,
23367 p_install_site_number IN okl_lines_interface.install_site_number%TYPE,
23368 x_install_site_id OUT NOCOPY okl_lines_interface.install_site_id%TYPE
23369 ) IS
23370 l_proc_name VARCHAR2(35) := 'GET_INSTALL_SITE_ID';
23371 install_failed EXCEPTION;
23372 l_id1 okx_party_site_uses_v.id1%TYPE;
23373
23374 CURSOR install_csr (p_install_site_name okx_party_site_uses_v.name%TYPE,
23375 p_install_site_id okx_party_site_uses_v.id1%TYPE) IS
23376 SELECT id1
23377 FROM okx_party_site_uses_v
23378 WHERE ((party_site_number = p_install_site_name
23379 AND
23380 p_install_site_number IS NOT NULL)
23381 OR
23382 (id1 = p_install_site_id
23383 AND
23384 p_install_site_id IS NOT NULL
23385 )
23386 )
23387 AND site_use_type = 'INSTALL_AT'
23388 AND party_id = g_customer_id
23389 AND status = 'A';
23390
23391 BEGIN
23392 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23393
23394 OPEN install_csr (p_install_site_number,
23395 p_install_site_id);
23396 FETCH install_csr INTO l_id1;
23397
23398 IF install_csr%NOTFOUND THEN
23399 RAISE install_failed;
23400 END IF;
23401
23402 CLOSE install_csr;
23403 x_install_site_id := l_id1;
23404
23405 EXCEPTION
23406 WHEN install_failed THEN
23407 IF install_csr%ISOPEN THEN
23408 CLOSE install_csr;
23409 END IF;
23410 okl_api.set_message(
23411 G_APP_NAME,
23412 G_INVALID_VALUE,
23413 'CONTRACT_NUM',
23414 p_contract_number||'/'||p_line_number,
23415 'COL_NAME',
23416 'INSTALL_SITE_ID, NAME: ',
23417 'COL_VALUE',
23418 p_install_site_id||', '||p_install_site_number
23419 );
23420 x_return_status := OKL_API.G_RET_STS_ERROR;
23421
23422 END get_install_site_id;
23423
23424 ------------------------------------------------------------------------------
23425 -- PROCEDURE get_lse_id
23426 -- It retrives Line Style id for Contract Lines and
23427 -- stacks Error, if any, and returns ERROR status to calling process.
23428 -- Calls:
23429 -- Called By:
23430 -- process_other_line
23431 -- load_input_record
23432 ------------------------------------------------------------------------------
23433 PROCEDURE get_lse_id(
23434 x_return_status OUT NOCOPY VARCHAR2,
23435 x_msg_count OUT NOCOPY NUMBER,
23436 x_msg_data OUT NOCOPY VARCHAR2,
23437 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
23438 p_line_number IN okl_lines_interface.line_number%TYPE,
23439 p_lty_code IN VARCHAR2,
23440 p_top_line_lty_code IN VARCHAR2,
23441 x_lse_id OUT NOCOPY NUMBER
23442 ) IS
23443
23444 l_proc_name VARCHAR2(35) := 'GET_LSE_ID';
23445 lse_failed EXCEPTION;
23446 l_id NUMBER;
23447
23448 CURSOR top_lse_csr (p_lty_code VARCHAR2) IS
23449 SELECT id
23450 FROM OKC_LINE_STYLES_B ols,
23451 okc_subclass_top_line ostl
23452 WHERE LTY_CODE = p_lty_code
23453 AND ostl.scs_code = 'LEASE'
23454 AND ols.id = ostl.lse_id;
23455
23456 CURSOR sub_lse_csr (p_lty_code VARCHAR2,
23457 p_top_line_lty_code VARCHAR2) IS
23458 SELECT ols2.id
23459 FROM okc_line_styles_v ols1,
23460 okc_line_styles_v ols2,
23461 okc_subclass_top_line ostl
23462 WHERE ostl.scs_code = 'LEASE'
23463 AND ostl.lse_id = ols1.id
23464 AND ols1.lty_code = p_top_line_lty_code
23465 AND ols2.lty_code = p_lty_code
23466 AND ols2.lse_parent_id = ostl.lse_id;
23467
23468 BEGIN
23469
23470 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23471
23472 IF (p_top_line_lty_code IS NULL) THEN
23473 OPEN top_lse_csr(p_lty_code);
23474 FETCH top_lse_csr INTO l_id;
23475 IF top_lse_csr%NOTFOUND THEN
23476 okl_api.set_message(
23477 G_APP_NAME,
23478 G_INVALID_LTY_CODE,
23479 'LTY_CODE',
23480 p_lty_code,
23481 'CONTRACT_NUM',
23482 p_contract_number||'/'||p_line_number
23483 );
23484 RAISE lse_failed;
23485 END IF;
23486 CLOSE top_lse_csr;
23487
23488 x_lse_id := l_id;
23489 ELSE
23490 OPEN sub_lse_csr(p_lty_code,
23491 p_top_line_lty_code);
23492 FETCH sub_lse_csr INTO l_id;
23493 IF sub_lse_csr%NOTFOUND THEN
23494 okl_api.set_message(
23495 G_APP_NAME,
23496 G_INVALID_LTY_CODE,
23497 'LTY_CODE',
23498 p_lty_code,
23499 'CONTRACT_NUM',
23500 p_contract_number||'/'||p_line_number
23501 );
23502 RAISE lse_failed;
23503 END IF;
23504 CLOSE sub_lse_csr;
23505
23506 x_lse_id := l_id;
23507 END IF;
23508
23509 return;
23510
23511 EXCEPTION
23512 WHEN lse_failed THEN
23513 IF top_lse_csr%ISOPEN THEN
23514 CLOSE top_lse_csr;
23515 END IF;
23516 IF sub_lse_csr%ISOPEN THEN
23517 CLOSE sub_lse_csr;
23518 END IF;
23519 x_return_status := OKL_API.G_RET_STS_ERROR;
23520 END get_lse_id;
23521
23522 ------------------------------------------------------------------------------
23523 -- PROCEDURE validate_real_est
23524 -- It validates real estate record if applicable and
23525 -- stacks Error, if any, and returns ERROR status to calling process.
23526 -- Calls:
23527 -- Called By:
23528 -- process_other_line
23529 -- load_input_record
23530 ------------------------------------------------------------------------------
23531 PROCEDURE validate_real_est(
23532 x_return_status OUT NOCOPY VARCHAR2,
23533 x_msg_count OUT NOCOPY NUMBER,
23534 x_msg_data OUT NOCOPY VARCHAR2,
23535 p_intf_line IN OKL_LINES_INTERFACE%ROWTYPE
23536 ) IS
23537
23538 l_proc_name VARCHAR2(150) := 'OKL_LINES_INTERFACE: validate_real_est';
23539 l_progress varchar2(150);
23540 l_dummy number;
23541 l_prc boolean := false;
23542
23543 validate_real_est_failed EXCEPTION;
23544
23545 cursor c_prc (p_prc_code VARCHAR2) is
23546 select 1
23547 from fnd_lookups lok
23548 where lok.lookup_type = 'OKL_PROPERTY_CLASS_OPTIONS'
23549 and lok.lookup_code = p_prc_code;
23550
23551
23552 BEGIN
23553
23554 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23555
23556 -- real estate required columns check
23557 IF ((p_intf_line.real_est_init_direct_cost IS NOT NULL or
23558 p_intf_line.real_est_refinance_amt IS NOT NULL or
23559 p_intf_line.real_est_net_footage_rentable IS NOT NULL or
23560 p_intf_line.real_est_gross_footage IS NOT NULL or
23561 p_intf_line.real_est_property_class_code IS NOT NULL)
23562 AND
23563 NOT(p_intf_line.real_est_init_direct_cost IS NOT NULL and
23564 p_intf_line.real_est_refinance_amt IS NOT NULL and
23565 p_intf_line.real_est_net_footage_rentable IS NOT NULL and
23566 p_intf_line.real_est_property_class_code IS NOT NULL and
23567 p_intf_line.real_est_gross_footage IS NOT NULL)) THEN
23568
23569
23570 okl_api.set_message(
23571 G_APP_NAME,
23572 G_MISSING_VALUE_FOR_LINE,
23573 'CONTRACT_NUM',
23574 p_intf_line.contract_number_old||'/'||TO_CHAR(p_intf_line.line_number),
23575 'COL_NAME',
23576 --
23577 'REAL_EST_INIT_DIRECT_COST OR '||
23578 'REAL_EST_REFINANCE_AMT OR '||
23579 'REAL_EST_GROSS_FOOTAGE OR '||
23580 'REAL_EST_NET_FOOTAGE_RENTABLE OR '||
23581 'REAL_EST_PROPERTY_CLASS_CODE',
23582 --
23583 'LINE',
23584 p_intf_line.line_type
23585 );
23586
23587 raise validate_real_est_failed;
23588
23589 END IF;
23590 l_progress := 'Check required columns for real estate';
23591
23592 IF (p_intf_line.real_est_property_class_code IS NOT NULL) THEN
23593
23594 OPEN c_prc(p_intf_line.real_est_property_class_code);
23595 FETCH c_prc INTO l_dummy;
23596 l_prc := c_prc%NOTFOUND;
23597 CLOSE c_prc;
23598
23599 IF (l_prc) THEN
23600
23601 okl_api.set_message(
23602 G_APP_NAME,
23603 G_INVALID_VALUE,
23604 'CONTRACT_NUM',
23605 p_intf_line.contract_number_old,
23606 'COL_NAME',
23607 'REAL_EST_PROPERTY_CLASS_CODE',
23608 'COL_VALUE',
23609 p_intf_line.REAL_EST_PROPERTY_CLASS_CODE
23610 );
23611
23612 raise validate_real_est_failed;
23613 END IF;
23614 END IF;
23615 l_progress := 'Check property class code';
23616
23617 return;
23618
23619 EXCEPTION
23620 WHEN validate_real_est_failed THEN
23621 x_return_status := OKL_API.G_RET_STS_ERROR;
23622 debug_message(l_proc_name ||': '||l_progress);
23623 WHEN OTHERS THEN
23624 x_return_status := OKL_API.G_RET_STS_ERROR;
23625 debug_message(l_proc_name ||': '||l_progress);
23626
23627 END validate_real_est;
23628
23629 ------------------------------------------------------------------------------
23630 -- PROCEDURE get_link_asset_id
23631 -- It gets line id for Financial Asset Line (TOP) corrsponding to ASSET_NUMBER provided and
23632 -- stacks Error, if any, and returns ERROR status to calling process.
23633 -- Calls:
23634 -- None
23635 -- Called By:
23636 -- process_other_line
23637 ------------------------------------------------------------------------------
23638 PROCEDURE get_link_asset_id(
23639 x_return_status OUT NOCOPY VARCHAR2,
23640 x_msg_count OUT NOCOPY NUMBER,
23641 x_msg_data OUT NOCOPY VARCHAR2,
23642 p_asset_number IN okl_lines_interface.asset_number%TYPE,
23643 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
23644 p_chr_id IN okc_k_headers_v.id%TYPE,
23645 p_line_number IN okc_k_lines_v.line_number%TYPE,
23646 x_asset_line_id OUT NOCOPY okc_k_lines_v.id%TYPE
23647 ) IS
23648
23649 l_proc_name VARCHAR2(35) := 'GET_LINK_ASSET_ID';
23650 fin_failed EXCEPTION;
23651 l_line_id okc_k_lines_v.id%TYPE;
23652
23653 CURSOR fin_csr (p_chr_id NUMBER,
23654 p_asset_number VARCHAR2) IS
23655 SELECT id
23656 FROM okc_k_lines_v
23657 WHERE name = p_asset_number
23658 AND chr_id = p_chr_id
23659 AND lse_id = (
23660 SELECT id
23661 FROM okc_line_styles_v
23662 WHERE lty_code = 'FREE_FORM1' -- to determine TOP line
23663 );
23664 BEGIN
23665 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23666 OPEN fin_csr (p_chr_id,
23667 p_asset_number);
23668 FETCH fin_csr INTO l_line_id;
23669
23670 IF fin_csr%NOTFOUND THEN
23671 okl_api.set_message(
23672 G_APP_NAME,
23673 G_FIN_ASSET_ERROR,
23674 'CONTRACT_NUM',
23675 p_contract_number,
23676 'LINE_NUM',
23677 p_line_number,
23678 'ASSET_NUM',
23679 p_asset_number
23680 );
23681 raise fin_failed;
23682 END IF;
23683
23684 CLOSE fin_csr;
23685
23686 x_asset_line_id := l_line_id;
23687 --debug_message('ID: '||x_asset_line_id);
23688 RETURN;
23689
23690 EXCEPTION
23691 WHEN fin_failed THEN
23692 IF fin_csr%ISOPEN THEN
23693 CLOSE fin_csr;
23694 END IF;
23695 x_return_status := OKL_API.G_RET_STS_ERROR;
23696
23697 WHEN OTHERS THEN
23698 okl_api.set_message(
23699 G_APP_NAME,
23700 G_UNEXPECTED_ERROR,
23701 'OKL_SQLCODE',
23702 SQLCODE,
23703 'OKL_SQLERRM',
23704 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
23705 );
23706 x_return_status := OKL_API.G_RET_STS_ERROR;
23707 END get_link_asset_id;
23708
23709 ------------------------------------------------------------------------------
23710 -- PROCEDURE validate_usage_other_line
23711 -- It validates association between Usage Line Item and Inventory Item at Model Line and
23712 -- stacks Error, if any, and returns ERROR status to calling process.
23713 -- Calls:
23714 -- Called By:
23715 ------------------------------------------------------------------------------
23716 PROCEDURE validate_usage_item_assoc(
23717 x_return_status OUT NOCOPY VARCHAR2,
23718 x_msg_count OUT NOCOPY NUMBER,
23719 x_msg_data OUT NOCOPY VARCHAR2,
23720 p_contract_number IN VARCHAR2,
23721 p_line_number IN NUMBER,
23722 p_asset_line_id IN NUMBER,
23723 p_usage_item_id IN okl_lines_interface.usage_item_id%TYPE,
23724 p_usage_item_name IN VARCHAR2,
23725 p_inv_org_id IN NUMBER
23726 ) IS
23727 l_proc_name VARCHAR2(35) := 'VALIDATE_USAGE_ITEM_ASSOC';
23728 CURSOR assoc_csr (p_usage_item_id NUMBER,
23729 p_asset_line_id NUMBER) IS
23730 SELECT 'Y'
23731 FROM okc_k_items_v item,
23732 okl_k_lines_full_v model,
23733 okc_line_styles_v style,
23734 cs_counters cc,
23735 cs_ctr_associations assoc
23736 WHERE model.lse_id = style.id
23737 AND model.id = item.cle_id
23738 AND model.cle_id = p_asset_line_id
23739 AND style.lty_code = 'ITEM'
23740 AND cc.counter_group_id = assoc.counter_group_id
23741 AND cc.usage_item_id = p_usage_item_id
23742 AND assoc.source_object_id = item.object1_id1;
23743
23744 assoc_failed EXCEPTION;
23745 l_dummy VARCHAR2(1);
23746 BEGIN
23747
23748 debug_message(l_proc_name);
23749 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23750
23751 l_dummy := 'N';
23752 OPEN assoc_csr(p_usage_item_id,
23753 p_asset_line_id);
23754 FETCH assoc_csr INTO l_dummy;
23755 IF (assoc_csr%NOTFOUND
23756 OR
23757 l_dummy = 'N') THEN
23758 okl_api.set_message(
23759 G_APP_NAME,
23760 G_INVALID_USAGE_ITEM_ASSOC,
23761 'CONTRACT_NUM',
23762 p_contract_number||'/'||p_line_number,
23763 'USAGE_ITEM',
23764 p_usage_item_name||', '||p_usage_item_id
23765 );
23766 RAISE assoc_failed;
23767 END IF;
23768 CLOSE assoc_csr;
23769
23770 RETURN;
23771
23772 EXCEPTION
23773 WHEN assoc_failed THEN
23774 IF assoc_csr%ISOPEN THEN
23775 CLOSE assoc_csr;
23776 END IF;
23777 x_return_status := OKL_API.G_RET_STS_ERROR;
23778 END validate_usage_item_assoc;
23779
23780 ------------------------------------------------------------------------------
23781 -- PROCEDURE validate_term_quote
23782 -- It validates termination quote used for Rollover fee line and returns
23783 -- quote ID to caller and
23784 -- stacks Error, if any, and returns ERROR status to calling process.
23785 -- Calls:
23786 -- Called By:
23787 ------------------------------------------------------------------------------
23788 PROCEDURE validate_term_quote(
23789 x_return_status OUT NOCOPY VARCHAR2,
23790 x_msg_count OUT NOCOPY NUMBER,
23791 x_msg_data OUT NOCOPY VARCHAR2,
23792 p_chr_id IN NUMBER,
23793 p_contract_number IN VARCHAR2,
23794 p_line_number IN NUMBER,
23795 p_term_quote_id IN okl_lines_interface.termination_quote_id%TYPE,
23796 p_term_quote_number IN okl_lines_interface.termination_quote_number%TYPE,
23797 x_term_quote_id OUT NOCOPY okl_lines_interface.termination_quote_id%TYPE
23798 ) IS
23799
23800 l_proc_name VARCHAR2(35) := 'VALIDATE_TERM_QUOTE';
23801 l_quote_id NUMBER;
23802 quote_failed EXCEPTION;
23803
23804 CURSOR qte_csr (p_qte_number VARCHAR2) IS
23805 SELECT id
23806 FROM okl_trx_quotes_b
23807 WHERE quote_number = p_qte_number;
23808
23809 BEGIN
23810
23811 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23812
23813 IF (p_term_quote_number IS NOT NULL) THEN
23814 OPEN qte_csr (p_term_quote_number);
23815 FETCH qte_csr INTO l_quote_id;
23816 IF (qte_csr%NOTFOUND) THEN
23817 okl_api.set_message(
23818 G_APP_NAME,
23819 G_INVALID_VALUE,
23820 'CONTRACT_NUM',
23821 p_contract_number||'/'||p_line_number,
23822 'COL_NAME',
23823 'TERMINATION_QUOTE_NUMBER',
23824 'COL_VALUE',
23825 p_term_quote_number
23826 );
23827
23828 RAISE quote_failed;
23829 END IF;
23830 CLOSE qte_csr;
23831 ELSE
23832 l_quote_id := p_term_quote_id;
23833 END IF;
23834
23835 -- validate quote
23836 okl_maintain_fee_pvt.validate_rollover_feeLine(
23837 p_api_version => 1.0,
23838 p_init_msg_list => OKL_API.G_FALSE,
23839 x_return_status => x_return_status,
23840 x_msg_count => x_msg_count,
23841 x_msg_data => x_msg_data,
23842 p_chr_id => p_chr_id,
23843 p_qte_id => l_quote_id
23844 --p_for_qa_check => 'T'
23845 );
23846
23847 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23848 RAISE quote_failed;
23849 END IF;
23850
23851 x_term_quote_id := l_quote_id;
23852
23853 RETURN;
23854
23855 EXCEPTION
23856 WHEN quote_failed THEN
23857 x_return_status := OKL_API.G_RET_STS_ERROR;
23858 IF (qte_csr%ISOPEN) THEN
23859 CLOSE qte_csr;
23860 END IF;
23861
23862 END validate_term_quote;
23863
23864 ------------------------------------------------------------------------------
23865 -- PROCEDURE create_party_payment_hdr
23866 -- This procedure creates payment headers for pass throughs associated with Asset, Serive, and Fee lines
23867 -- stacks Error, if any, and returns ERROR status to calling process.
23868 -- Calls:
23869 --
23870 -- Called By:
23871 --
23872 ------------------------------------------------------------------------------
23873 PROCEDURE create_party_payment_hdr(
23874 x_return_status OUT NOCOPY VARCHAR2,
23875 x_msg_count OUT NOCOPY NUMBER,
23876 x_msg_data OUT NOCOPY VARCHAR2,
23877 p_contract_id IN okc_k_headers_b.id%TYPE,
23878 p_line_id IN okc_k_lines_b.id%TYPE,
23879 p_line_type IN okl_lines_interface.line_type%TYPE,
23880 p_pth_start_date IN okl_party_payment_hdr.passthru_start_date%TYPE,
23881 p_pth_base_payout_basis IN okl_party_payment_hdr.payout_basis%TYPE,
23882 p_pth_base_stream_code IN okl_lines_interface.pth_base_stream_code%TYPE,
23883 p_pth_base_stream_purpose_code IN okl_lines_interface.pth_base_stream_purpose_code%TYPE,
23884 p_pth_evg_payout_basis IN okl_party_payment_hdr.payout_basis%TYPE,
23885 p_pth_payout_basis_formula IN okl_party_payment_hdr.payout_basis_formula%TYPE,
23886 p_pth_evg_stream_code IN okl_lines_interface.pth_evg_stream_code%TYPE,
23887 p_pth_evg_stream_purpose_code IN okl_lines_interface.pth_evg_stream_purpose_code%TYPE,
23888 x_party_pmnt_hdr_tbl OUT NOCOPY okl_party_payments_pvt.pphv_tbl_type
23889 ) IS
23890
23891 l_proc_name VARCHAR2(35) := 'CREATE_PARTY_PAYMENT_HDR';
23892 l_return_status VARCHAR2(1);
23893 l_base_stream_type_id okl_strmtyp_source_v.id1%TYPE;
23894 l_evg_stream_type_id okl_strmtyp_source_v.id1%TYPE;
23895 l_yn VARCHAR2(1) := 'N';
23896 l_base_pmnt_hdr pphv_rec_type := NULL;
23897 l_evg_pmnt_hdr pphv_rec_type := NULL;
23898 l_pmnt_hdr_tbl_in pphv_tbl_type;
23899 l_pmnt_hdr_tbl_out pphv_tbl_type;
23900 l_counter NUMBER := 0;
23901 l_contract_number okc_k_headers_b.contract_number%TYPE;
23902 l_contract_start_date okc_k_headers_b.start_date%TYPE;
23903 party_pmnt_header_failed EXCEPTION;
23904 l_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
23905
23906 CURSOR contract_csr (p_contract_id NUMBER) is
23907 SELECT contract_number, start_date
23908 FROM okl_k_headers_full_v
23909 WHERE id = p_contract_id;
23910
23911 CURSOR passthru_stream_csr (p_sty_id number, p_contract_start_date date) IS
23912 SELECT 'Y'
23913 FROM okl_stream_types_uv STL
23914 WHERE STL.id = p_sty_id
23915 AND STL.start_date <= p_contract_start_date
23916 AND (STL.end_date >= p_contract_start_date OR STL.end_date IS NULL);
23917
23918 BEGIN
23919
23920 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23921
23922 OPEN contract_csr(p_contract_id);
23923 FETCH contract_csr INTO l_contract_number,l_contract_start_date;
23924
23925 IF contract_csr%NOTFOUND THEN
23926 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
23927 CLOSE contract_csr;
23928 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
23929 p_msg_name => G_LLA_CHR_ID);
23930 RAISE party_pmnt_header_failed;
23931 END IF;
23932
23933 CLOSE contract_csr;
23934
23935 IF (p_pth_base_stream_code IS NOT NULL AND
23936 p_pth_base_stream_purpose_code IS NOT NULL) THEN
23937 -- Derive the stream type ID
23938 check_stream_type_code(
23939 x_return_status => l_return_status,
23940 x_msg_count => x_msg_count,
23941 x_msg_data => x_msg_data,
23942 p_stream_type_code => p_pth_base_stream_code,
23943 p_stream_purpose => p_pth_base_stream_purpose_code,
23944 x_id1 => l_base_stream_type_id,
23945 x_name => l_stream_name
23946 );
23947 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23948 okl_api.set_message(
23949 G_APP_NAME,
23950 G_INVALID_VALUE,
23951 'CONTRACT_NUM',
23952 l_contract_number, --||'/'||TO_CHAR(p_line_number),
23953 'COL_NAME',
23954 'PTH_BASE_STREAM_CODE, PTH_BASE_STREAM_PURPOSE_CODE',
23955 'COL_VALUE',
23956 p_pth_base_stream_code||', '||p_pth_base_stream_purpose_code
23957 );
23958 x_return_status := OKL_API.G_RET_STS_ERROR;
23959 RAISE party_pmnt_header_failed;
23960 END IF;
23961
23962 -- Check if the stream type is ID is effective
23963 OPEN passthru_stream_csr (l_base_stream_type_id, l_contract_start_date);
23964 FETCH passthru_stream_csr INTO l_yn;
23965
23966 IF passthru_stream_csr%NOTFOUND THEN
23967 CLOSE passthru_stream_csr;
23968 okl_api.set_message(
23969 G_APP_NAME,
23970 G_NO_STRM_TMPL,
23971 'CONTRACT_NUM',
23972 l_contract_number, --||'/'||p_line_number,
23973 'COL_NAME',
23974 'PTH_BASE_STREAM_CODE, PTH_BASE_STREAM_PURPOSE_CODE',
23975 'COL_VALUE',
23976 p_pth_base_stream_code||', '||p_pth_base_stream_purpose_code
23977 );
23978 RAISE party_pmnt_header_failed;
23979 ELSE
23980 CLOSE passthru_stream_csr;
23981 END IF;
23982 END IF;
23983
23984 IF (p_pth_evg_stream_code IS NOT NULL AND
23985 p_pth_evg_stream_purpose_code IS NOT NULL) THEN
23986 -- Derive the stream type ID
23987 check_stream_type_code(
23988 x_return_status => l_return_status,
23989 x_msg_count => x_msg_count,
23990 x_msg_data => x_msg_data,
23991 p_stream_type_code => p_pth_evg_stream_code,
23992 p_stream_purpose => p_pth_evg_stream_purpose_code,
23993 x_id1 => l_evg_stream_type_id,
23994 x_name => l_stream_name
23995 );
23996 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23997 okl_api.set_message(
23998 G_APP_NAME,
23999 G_INVALID_VALUE,
24000 'CONTRACT_NUM',
24001 l_contract_number, --||'/'||TO_CHAR(p_line_number),
24002 'COL_NAME',
24003 'PTH_EVG_STREAM_CODE, PTH_EVG_STREAM_PURPOSE_CODE',
24004 'COL_VALUE',
24005 p_pth_evg_stream_code||', '||p_pth_evg_stream_purpose_code
24006 );
24007 x_return_status := OKL_API.G_RET_STS_ERROR;
24008 RAISE party_pmnt_header_failed;
24009 END IF;
24010
24011 -- Check if the stream type is ID is effective
24012 OPEN passthru_stream_csr (l_evg_stream_type_id, l_contract_start_date);
24013 FETCH passthru_stream_csr INTO l_yn;
24014
24015 IF passthru_stream_csr%NOTFOUND THEN
24016 CLOSE passthru_stream_csr;
24017 okl_api.set_message(
24018 G_APP_NAME,
24019 G_NO_STRM_TMPL,
24020 'CONTRACT_NUM',
24021 l_contract_number, --||'/'||p_line_number,
24022 'COL_NAME',
24023 'PTH_EVG_STREAM_CODE, PTH_EVG_STREAM_PURPOSE_CODE',
24024 'COL_VALUE',
24025 p_pth_evg_stream_code||', '||p_pth_evg_stream_purpose_code
24026 );
24027 RAISE party_pmnt_header_failed;
24028 ELSE
24029 CLOSE passthru_stream_csr;
24030 END IF;
24031 END IF;
24032
24033 IF ((p_line_type = 'ASSET') AND (p_pth_evg_payout_basis IS NOT NULL)) THEN
24034 l_evg_pmnt_hdr.dnz_chr_id := p_contract_id;
24035 l_evg_pmnt_hdr.cle_id := p_line_id;
24036 l_evg_pmnt_hdr.payout_basis := p_pth_evg_payout_basis;
24037 l_evg_pmnt_hdr.payout_basis_formula := p_pth_payout_basis_formula;
24038 l_evg_pmnt_hdr.passthru_term := 'EVERGREEN';
24039 l_evg_pmnt_hdr.passthru_stream_type_id := l_evg_stream_type_id;
24040
24041 ELSIF (p_line_type in ('SERVICE','FEE')) THEN
24042 IF (p_pth_base_payout_basis IS NOT NULL) THEN
24043 l_base_pmnt_hdr.passthru_start_date := p_pth_start_date;
24044 l_base_pmnt_hdr.dnz_chr_id := p_contract_id;
24045 l_base_pmnt_hdr.cle_id := p_line_id;
24046 l_base_pmnt_hdr.payout_basis := p_pth_base_payout_basis;
24047 l_base_pmnt_hdr.passthru_term := 'BASE';
24048 l_base_pmnt_hdr.passthru_stream_type_id := l_base_stream_type_id;
24049 END IF;
24050
24051 IF (p_pth_evg_payout_basis IS NOT NULL) THEN
24052 l_evg_pmnt_hdr.dnz_chr_id := p_contract_id;
24053 l_evg_pmnt_hdr.cle_id := p_line_id;
24054 l_evg_pmnt_hdr.payout_basis := p_pth_evg_payout_basis;
24055 l_evg_pmnt_hdr.payout_basis_formula := p_pth_payout_basis_formula;
24056 l_evg_pmnt_hdr.passthru_term := 'EVERGREEN';
24057 l_evg_pmnt_hdr.passthru_stream_type_id := l_evg_stream_type_id;
24058
24059 END IF;
24060
24061 ELSIF (p_line_type IS NULL) THEN -- Evergreen pth at contract header
24062 l_evg_pmnt_hdr.dnz_chr_id := p_contract_id;
24063 l_evg_pmnt_hdr.cle_id := NULL;
24064 l_evg_pmnt_hdr.payout_basis := p_pth_evg_payout_basis;
24065 l_evg_pmnt_hdr.payout_basis_formula := p_pth_payout_basis_formula;
24066 l_evg_pmnt_hdr.passthru_term := 'EVERGREEN';
24067 l_evg_pmnt_hdr.passthru_stream_type_id := l_evg_stream_type_id;
24068 END IF;
24069
24070 IF (l_base_pmnt_hdr.dnz_chr_id IS NOT NULL) THEN
24071 l_counter := l_counter + 1;
24072 l_pmnt_hdr_tbl_in(l_counter) := l_base_pmnt_hdr;
24073 END IF;
24074
24075 IF (l_evg_pmnt_hdr.dnz_chr_id IS NOT NULL) THEN
24076 l_counter := l_counter + 1;
24077 l_pmnt_hdr_tbl_in(l_counter) := l_evg_pmnt_hdr;
24078 END IF;
24079
24080 IF (l_pmnt_hdr_tbl_in.COUNT > 0) THEN
24081 okl_party_payments_pvt.create_party_payment_hdr(
24082 p_api_version => 1.0,
24083 x_return_status => x_return_status,
24084 x_msg_count => x_msg_count,
24085 x_msg_data => x_msg_data,
24086 p_pphv_tbl => l_pmnt_hdr_tbl_in,
24087 x_pphv_tbl => l_pmnt_hdr_tbl_out
24088 );
24089 x_party_pmnt_hdr_tbl := l_pmnt_hdr_tbl_out;
24090
24091 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24092 x_return_status := OKL_API.G_RET_STS_ERROR;
24093 RAISE party_pmnt_header_failed;
24094 END IF;
24095 END IF;
24096
24097 RETURN;
24098
24099 EXCEPTION
24100 WHEN party_pmnt_header_failed THEN
24101 x_return_status := OKL_API.G_RET_STS_ERROR;
24102
24103 END create_party_payment_hdr;
24104
24105 ------------------------------------------------------------------------------
24106 -- PROCEDURE process_other_line
24107 -- It process SERVICE, FEE lines and calls API to create reecord in respective tables and
24108 -- stacks Error, if any, and returns ERROR status to calling process.
24109 -- Calls:
24110 -- get_link_asset_id
24111 -- get_lse_id
24112 -- get_inventory_org_item_id
24113 -- Called By:
24114 -- load_input_record
24115 ------------------------------------------------------------------------------
24116 PROCEDURE process_other_line(
24117 x_return_status OUT NOCOPY VARCHAR2,
24118 x_msg_count OUT NOCOPY NUMBER,
24119 x_msg_data OUT NOCOPY VARCHAR2,
24120 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
24121 p_chr_id IN okc_k_headers_v.id%TYPE,
24122 p_line_number IN okl_lines_interface.line_number%TYPE,
24123 p_line_type IN okl_lines_interface.line_type%TYPE,
24124 p_line_type_prev IN okl_lines_interface.line_type%TYPE,
24125 p_inv_item_id IN okl_lines_interface.inventory_item_id%TYPE,
24126 p_inv_org_id IN okl_header_interface.inventory_organization_id%TYPE,
24127 p_line_amount IN okl_lines_interface.amount%TYPE,
24128 p_link_asset_amount IN okl_lines_interface.link_asset_amount%TYPE,
24129 p_init_direct_cost IN okl_lines_interface.initial_direct_cost%TYPE,
24130 p_fee_code IN okl_lines_interface.fee_code%TYPE,
24131 p_stream_purpose IN okl_lines_interface.stream_purpose_code%TYPE,
24132 p_fee_type IN okl_lines_interface.fee_type%TYPE,
24133 p_asset_number IN okl_lines_interface.asset_number%TYPE,
24134 p_currency_code IN okl_lines_interface.currency_code%TYPE,
24135 p_usage_item_name IN okl_lines_interface.usage_item_name%TYPE,
24136 p_usage_item_id IN okl_lines_interface.usage_item_id%TYPE,
24137 p_header_start_date IN DATE,
24138 p_header_end_date IN DATE,
24139 p_line_start_date IN DATE,
24140 p_line_end_date IN DATE,
24141 p_inv_item_id_prev IN okl_lines_interface.inventory_item_id%TYPE,
24142 p_term_quote_id IN OKL_LINES_INTERFACE.TERMINATION_QUOTE_ID%TYPE,
24143 p_term_quote_number IN OKL_LINES_INTERFACE.TERMINATION_QUOTE_NUMBER%TYPE,
24144 x_inv_item_id_prev OUT NOCOPY okl_lines_interface.inventory_item_id%TYPE,
24145 p_cle_id IN okl_k_lines_v.id%TYPE,
24146 x_cle_id OUT NOCOPY okc_k_lines_v.id%TYPE,
24147 x_sub_cle_id OUT NOCOPY okc_k_lines_v.id%TYPE, -- Bug# 3110115
24148 p_new_line_flag IN okl_lines_interface.explicit_new_line_flag%TYPE,
24149 p_pth_base_payout_basis IN okl_lines_interface.pth_base_payout_basis%TYPE,
24150 p_pth_base_stream_code IN okl_lines_interface.pth_base_stream_code%TYPE,
24151 p_pth_base_stream_purpose_code IN okl_lines_interface.pth_base_stream_purpose_code%TYPE,
24152 p_pth_start_date IN okl_lines_interface.pth_start_date%TYPE,
24153 p_pth_evg_payout_basis IN okl_lines_interface.pth_evg_payout_basis%TYPE,
24154 p_pth_payout_basis_formula IN okl_lines_interface.pth_payout_basis_formula%TYPE,
24155 p_pth_evg_stream_code IN okl_lines_interface.pth_evg_stream_code%TYPE,
24156 p_pth_evg_stream_purpose_code IN okl_lines_interface.pth_evg_stream_purpose_code%TYPE,
24157 p_fee_purpose_code IN okl_lines_interface.fee_purpose_code%TYPE,
24158 --Bug# 11690042
24159 p_attribute_category IN okl_lines_interface.attribute_category%TYPE DEFAULT NULL,
24160 p_attribute1 IN okl_lines_interface.attribute1%TYPE DEFAULT NULL,
24161 p_attribute2 IN okl_lines_interface.attribute2%TYPE DEFAULT NULL,
24162 p_attribute3 IN okl_lines_interface.attribute3%TYPE DEFAULT NULL,
24163 p_attribute4 IN okl_lines_interface.attribute4%TYPE DEFAULT NULL,
24164 p_attribute5 IN okl_lines_interface.attribute5%TYPE DEFAULT NULL,
24165 p_attribute6 IN okl_lines_interface.attribute6%TYPE DEFAULT NULL,
24166 p_attribute7 IN okl_lines_interface.attribute7%TYPE DEFAULT NULL,
24167 p_attribute8 IN okl_lines_interface.attribute8%TYPE DEFAULT NULL,
24168 p_attribute9 IN okl_lines_interface.attribute9%TYPE DEFAULT NULL,
24169 p_attribute10 IN okl_lines_interface.attribute10%TYPE DEFAULT NULL,
24170 p_attribute11 IN okl_lines_interface.attribute11%TYPE DEFAULT NULL,
24171 p_attribute12 IN okl_lines_interface.attribute12%TYPE DEFAULT NULL,
24172 p_attribute13 IN okl_lines_interface.attribute13%TYPE DEFAULT NULL,
24173 p_attribute14 IN okl_lines_interface.attribute14%TYPE DEFAULT NULL,
24174 p_attribute15 IN okl_lines_interface.attribute15%TYPE DEFAULT NULL,
24175 p_origination_income IN okl_lines_interface.origination_income%TYPE DEFAULT NULL
24176 ) IS
24177 l_proc_name VARCHAR2(35) := 'PROCESS_OTHER_LINE';
24178 x_lse_id okc_line_styles_v.id%TYPE;
24179 x_inv_org_id NUMBER;
24180 x_inv_item_id NUMBER;
24181 x_asset_line_id okc_k_lines_v.id%TYPE;
24182 l_lty_code okc_line_styles_v.lty_code%TYPE;
24183 l_link_lty_code okc_line_styles_v.lty_code%TYPE;
24184 l_link_top_code VARCHAR2(35);
24185 x_stream_type_id NUMBER;
24186 x_usage_item_id NUMBER;
24187 x_usage_id2 NUMBER;
24188
24189 p_klev_rec klev_rec_type;
24190 p_clev_rec clev_rec_type;
24191 x_klev_rec klev_rec_type;
24192 x_clev_rec clev_rec_type;
24193
24194 l_klev_rec klev_rec_type;
24195 l_clev_rec clev_rec_type;
24196 l_capital_amount okl_k_lines.capital_amount%type;
24197
24198 p_cimv_rec okl_okc_migration_pvt.cimv_rec_type;
24199 x_cimv_rec okl_okc_migration_pvt.cimv_rec_type;
24200
24201 service_failed EXCEPTION;
24202 l_progress VARCHAR2(10) := '100.1';
24203
24204 l_fee_types_rec fee_types_rec_type;
24205 x_fee_types_rec fee_types_rec_type;
24206
24207 x_term_quote_id NUMBER;
24208
24209 CURSOR fee_vendor_csr (p_contract_number OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
24210 p_line_number OKL_LINES_INTERFACE.LINE_NUMBER%TYPE) IS
24211 SELECT fees_vendor_name,
24212 fees_vendor_id
24213 FROM okl_party_roles_interface
24214 WHERE contract_number_old = p_contract_number
24215 AND line_number = p_line_number;
24216
24217 CURSOR capital_amount(p_line_id OKL_K_LINES.ID%TYPE)
24218 IS
24219 SELECT nvl(capital_amount , 0)
24220 from okl_k_lines
24221 where id = p_line_id;
24222
24223 CURSOR service_item_csr (p_inv_item_id OKX_SYSTEM_ITEMS_V.ID1%TYPE,
24224 p_inv_org_id OKX_SYSTEM_ITEMS_V.ID2%TYPE) IS
24225 SELECT name
24226 FROM okx_system_items_v
24227 WHERE id1 = p_inv_item_id
24228 AND id2 = p_inv_org_id;
24229
24230 l_fee_vendor_name OKL_PARTY_ROLES_INTERFACE.FEES_VENDOR_NAME%TYPE;
24231 l_fee_vendor_id OKL_PARTY_ROLES_INTERFACE.FEES_VENDOR_ID%TYPE;
24232
24233 l_service_item_name OKX_SYSTEM_ITEMS_V.NAME%TYPE;
24234
24235 -- passthrough
24236 x_party_pmnt_hdr_tbl_out pphv_tbl_type;
24237 l_counter NUMBER;
24238 -- passthrough
24239
24240 l_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
24241
24242 BEGIN
24243
24244 x_return_status := OKL_API.G_RET_STS_SUCCESS;
24245 p_klev_rec := NULL;
24246 p_clev_rec := NULL;
24247
24248 -- Set line_type based parameters
24249
24250 IF (p_line_type = 'SERVICE') THEN -- SERVICE line
24251 l_lty_code := 'SOLD_SERVICE';
24252 l_link_lty_code := 'LINK_SERV_ASSET';
24253 l_link_top_code := 'OKX_SERVICE';
24254 ELSIF (p_line_type = 'FEE') THEN -- FEE line
24255 l_lty_code := 'FEE';
24256 l_link_lty_code := 'LINK_FEE_ASSET';
24257 l_link_top_code := 'OKL_STRMTYP';
24258 ELSIF (p_line_type = 'USAGE') THEN -- USAGE line
24259 l_lty_code := 'USAGE';
24260 l_link_lty_code := 'LINK_USAGE_ASSET';
24261 l_link_top_code := NULL; --'OKL_USAGE';
24262 END IF;
24263
24264 l_progress := '100.2';
24265 x_inv_item_id := p_inv_item_id;
24266 x_inv_org_id := p_inv_org_id;
24267
24268 IF (p_line_type = 'FEE') THEN
24269
24270 check_stream_type_code(
24271 x_return_status => x_return_status,
24272 x_msg_count => x_msg_count,
24273 x_msg_data => x_msg_data,
24274 p_stream_type_code => p_fee_code,
24275 p_stream_purpose => p_stream_purpose,
24276 x_id1 => x_stream_type_id,
24277 x_name => l_stream_name
24278 );
24279 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24280 x_return_status := OKL_API.G_RET_STS_ERROR;
24281 RAISE service_failed;
24282 END IF;
24283
24284
24285 --
24286 -- UDS 10/27
24287 -- Check whether the stream is present in template for this contract
24288 --
24289
24290 x_inv_item_id := x_stream_type_id;
24291
24292 /* Added on check_line_literal
24293 validate_fee_type(
24294 x_return_status => x_return_status,
24295 p_fee_type => p_fee_type
24296 );
24297
24298 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24299 okl_api.set_message(
24300 G_APP_NAME,
24301 G_INVALID_VALUE,
24302 'CONTRACT_NUM',
24303 p_contract_number,
24304 'COL_NAME',
24305 'FEE_TYPE',
24306 'COL_VALUE',
24307 p_fee_type
24308 );
24309 RAISE service_failed;
24310 END IF;
24311 */
24312
24313 ELSIF (p_line_type = 'USAGE') THEN
24314 get_usage_item_id(
24315 x_return_status => x_return_status,
24316 p_usage_item_name => p_usage_item_name,
24317 p_usage_item_id => p_usage_item_id,
24318 p_org_id => p_inv_org_id,
24319 x_usage_item_id => x_usage_item_id,
24320 x_usage_id2 => x_usage_id2
24321 );
24322 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24323 okl_api.set_message(
24324 G_APP_NAME,
24325 G_INVALID_VALUE,
24326 'CONTRACT_NUM',
24327 p_contract_number,
24328 'COL_NAME',
24329 'USAGE_ITEM_NAME, ID',
24330 'COL_VALUE',
24331 p_usage_item_name||', '||p_usage_item_id
24332 );
24333 RAISE service_failed;
24334 END IF;
24335
24336 x_inv_item_id := x_usage_item_id;
24337 END IF;
24338
24339 l_progress := '100.3';
24340
24341 debug_message('------>Line number: '||p_line_number);
24342 debug_message('------>Prev Line type: '||p_line_type_prev);
24343 debug_message('------>Curr Line type: '||p_line_type);
24344 debug_message('------>Prec Item id : '||p_inv_item_id_prev);
24345 debug_message('------>Curr Item id : '||x_inv_item_id);
24346 -- Dont' create Top Line for same Item and Line type, create link_asset line only
24347 -- Bug 4092764: creaet top line if explicit_new_line_flag = 'Y'
24348 --
24349 -- Check for validity of the same flag
24350 -- If item and/or line type does not match
24351 -- but explicit_new_line_flag = 'N'
24352 -- raise error
24353
24354 IF ( (p_inv_item_id_prev <> x_inv_item_id
24355 OR
24356 p_line_type_prev <> p_line_type)
24357 AND
24358 p_new_line_flag = 'N') THEN
24359 okl_api.set_message(
24360 G_APP_NAME,
24361 G_INVALID_NEW_LINE_REQ,
24362 'CONTRACT_NUM',
24363 p_contract_number,
24364 'LINE_TYPE',
24365 p_line_type||'/'||p_line_number,
24366 'NEW_LINE_FLAG',
24367 p_new_line_flag
24368 );
24369 RAISE service_failed;
24370 END IF;
24371
24372 IF (p_inv_item_id_prev <> x_inv_item_id
24373 OR
24374 p_line_type_prev <> p_line_type
24375 OR
24376 NVL(p_new_line_flag, 'N') = 'Y'
24377 ) THEN -- for same inventory item create link asset line only
24378
24379 --create a blank TOP line
24380
24381 get_lse_id(
24382 x_return_status => x_return_status,
24383 x_msg_count => x_msg_count,
24384 x_msg_data => x_msg_data,
24385 p_contract_number => p_contract_number,
24386 p_line_number => p_line_number,
24387 p_lty_code => l_lty_code,
24388 p_top_line_lty_code => NULL,
24389 x_lse_id => x_lse_id
24390 );
24391 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24392 x_return_status := OKL_API.G_RET_STS_ERROR;
24393 RAISE service_failed;
24394 END IF;
24395 p_clev_rec.chr_id := p_chr_id;
24396 p_clev_rec.dnz_chr_id := p_chr_id;
24397 p_clev_rec.lse_id := x_lse_id;
24398 p_clev_rec.line_number := p_line_number;
24399 p_clev_rec.sts_code := 'NEW';
24400 p_clev_rec.exception_yn := 'N';
24401 p_clev_rec.display_sequence := 1;
24402 p_clev_rec.currency_code := p_currency_code;
24403 p_klev_rec.amount := p_line_amount;
24404 p_klev_rec.initial_direct_cost := p_init_direct_cost;
24405 p_klev_rec.fee_type := p_fee_type;
24406
24407 IF p_fee_type = 'INCOME'
24408 THEN
24409 p_klev_rec.origination_income := NVL(p_origination_income, 0 );
24410 END IF;
24411
24412 --
24413 -- Populate capital amount for CAPITALIZED FEE line
24414 -- Bug 3449762
24415 --
24416 IF ( p_line_type = 'FEE'
24417 AND
24418 p_fee_type = 'CAPITALIZED' ) THEN
24419 p_klev_rec.capital_amount := p_line_amount;
24420 END IF; -- capitalized fee
24421
24422 IF ( p_line_type = 'FEE'
24423 AND
24424 p_klev_rec.initial_direct_cost IS NOT NULL
24425 AND
24426 p_klev_rec.initial_direct_cost > p_klev_rec.amount) THEN
24427
24428 OKL_API.SET_MESSAGE(
24429 G_APP_NAME,
24430 G_INIT_DIRC_COST,
24431 'CONTRACT_NUM',
24432 p_contract_number,
24433 'LINE_NUM',
24434 p_line_number
24435 );
24436
24437 x_return_status := OKL_API.G_RET_STS_ERROR;
24438 RAISE service_failed;
24439
24440 END IF;
24441
24442 p_clev_rec.start_date := NVL(p_line_start_date, p_header_start_date);
24443 p_clev_rec.end_date := NVL(p_line_end_date,p_header_end_date);
24444
24445 /*
24446 --
24447 -- Rollover Fee line validation
24448 --
24449 IF (p_line_type = 'FEE'
24450 AND
24451 p_fee_type = 'ROLLOVER') THEN
24452
24453 validate_term_quote(
24454 x_return_status => x_return_status,
24455 x_msg_count => x_msg_count,
24456 x_msg_data => x_msg_data,
24457 p_chr_id => p_chr_id,
24458 p_contract_number => p_contract_number,
24459 p_line_number => p_line_number,
24460 p_term_quote_id => p_term_quote_id,
24461 p_term_quote_number => p_term_quote_number,
24462 x_term_quote_id => x_term_quote_id
24463 );
24464
24465 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24466 x_return_status := OKL_API.G_RET_STS_ERROR;
24467 RAISE service_failed;
24468 END IF;
24469
24470 p_klev_rec.qte_id := x_term_quote_id;
24471
24472 END IF; -- end Rollover
24473 */
24474 -- service name
24475 IF (p_line_type = 'SERVICE') THEN
24476 l_service_item_name := NULL;
24477
24478 OPEN service_item_csr(p_inv_item_id,
24479 p_inv_org_id);
24480 FETCH service_item_csr INTO l_service_item_name;
24481 CLOSE service_item_csr;
24482
24483 p_clev_rec.name := l_service_item_name;
24484 ELSIF (p_line_type = 'FEE') THEN
24485 p_klev_rec.fee_purpose_code := p_fee_purpose_code;
24486 p_clev_rec.name := l_stream_name;
24487 END IF;
24488 -- Fee type validation
24489 IF (p_line_type = 'FEE') THEN
24490
24491
24492 debug_message('------>Validate Fee TYpe');
24493
24494 l_fee_types_rec.dnz_chr_id := p_chr_id;
24495 l_fee_types_rec.fee_type := p_fee_type;
24496 l_fee_types_rec.item_id1 := x_inv_item_id;
24497 l_fee_types_rec.item_id2 := '#';
24498 l_fee_types_rec.effective_from := p_clev_rec.start_date;
24499 l_fee_types_rec.effective_to := p_clev_rec.end_date;
24500 l_fee_types_rec.amount := p_line_amount;
24501
24502 l_fee_types_rec.initial_direct_cost := p_init_direct_cost;
24503
24504 l_fee_vendor_name := NULL;
24505 l_fee_vendor_id := NULL;
24506
24507 OPEN fee_vendor_csr(p_contract_number,
24508 p_line_number);
24509 FETCH fee_vendor_csr INTO l_fee_vendor_name,
24510 l_fee_vendor_id;
24511 CLOSE fee_vendor_csr;
24512
24513 IF (l_fee_vendor_name IS NOT NULL) THEN
24514
24515 get_vendor_id (
24516 x_return_status => x_return_status,
24517 x_msg_count => x_msg_count,
24518 x_msg_data => x_msg_data,
24519 p_contract_number => p_contract_number,
24520 p_line_number => p_line_number,
24521 x_vendor_id => l_fee_vendor_id,
24522 p_vendor_name => l_fee_vendor_name
24523 );
24524
24525 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24526 RAISE service_failed;
24527 END IF;
24528 END IF;
24529
24530 l_fee_types_rec.party_id1 := l_fee_vendor_id;
24531 l_fee_types_rec.party_id2 := '#';
24532
24533 l_fee_types_rec.roll_qt := p_term_quote_number;
24534 l_fee_types_rec.qte_id := p_term_quote_id;
24535
24536 okl_maintain_fee_pvt.validate_fee_type(
24537 p_api_version => 1.0,
24538 p_init_msg_list => OKL_API.G_FALSE,
24539 x_return_status => x_return_status,
24540 x_msg_count => x_msg_count,
24541 x_msg_data => x_msg_data,
24542 p_fee_types_rec => l_fee_types_rec,
24543 x_fee_types_rec => x_fee_types_rec
24544 );
24545
24546 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24547 RAISE service_failed;
24548 END IF;
24549
24550 debug_message('=====> Qte ID: '||x_fee_types_rec.qte_id);
24551 p_klev_rec.qte_id := x_fee_types_rec.qte_id;
24552
24553 END IF; -- fee type validation
24554
24555 --Bug# 11690042
24556 IF ((p_line_type = 'SERVICE') OR (p_line_type = 'FEE')) THEN
24557
24558 debug_message('Contract line DFF...'||'Line Type: '||p_line_type);
24559 debug_message('Contract line DFF...'||'Line#: '||p_line_number);
24560
24561 p_klev_rec.validate_dff_yn := 'Y'; -- always validate DFF
24562 p_klev_rec.attribute_category := p_attribute_category;
24563 debug_message('attribute_category: '||p_attribute_category);
24564 p_klev_rec.attribute1 := p_attribute1;
24565 debug_message('attribute1: '||p_klev_rec.attribute1);
24566 p_klev_rec.attribute2 := p_attribute2;
24567 debug_message('attribute2: '||p_klev_rec.attribute2);
24568 p_klev_rec.attribute3 := p_attribute3;
24569 p_klev_rec.attribute4 := p_attribute4;
24570 p_klev_rec.attribute5 := p_attribute5;
24571 p_klev_rec.attribute6 := p_attribute6;
24572 p_klev_rec.attribute7 := p_attribute7;
24573 p_klev_rec.attribute8 := p_attribute8;
24574 p_klev_rec.attribute9 := p_attribute9;
24575 p_klev_rec.attribute10 := p_attribute10;
24576 p_klev_rec.attribute11 := p_attribute11;
24577 p_klev_rec.attribute12 := p_attribute12;
24578 p_klev_rec.attribute13 := p_attribute13;
24579 p_klev_rec.attribute14 := p_attribute14;
24580 p_klev_rec.attribute15 := p_attribute15;
24581 END IF;
24582 --Bug# 11690042
24583
24584 okl_contract_pub.create_contract_line(
24585 p_api_version => 1.0,
24586 p_init_msg_list => OKL_API.G_FALSE,
24587 x_return_status => x_return_status,
24588 x_msg_count => x_msg_count,
24589 x_msg_data => x_msg_data,
24590 p_clev_rec => p_clev_rec,
24591 p_klev_rec => p_klev_rec,
24592 x_clev_rec => x_clev_rec,
24593 x_klev_rec => x_klev_rec
24594 );
24595
24596 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24597 x_return_status := OKL_API.G_RET_STS_ERROR;
24598 RAISE service_failed;
24599 END IF;
24600
24601 x_cle_id := x_clev_rec.id;
24602 l_progress := '100.4';
24603
24604 -- create item line to link TOP line, created above, to MTL_SYSTEM_ITEMS
24605
24606 p_cimv_rec := NULL;
24607 p_cimv_rec.cle_id := x_cle_id;
24608 p_cimv_rec.chr_id := p_chr_id;
24609 p_cimv_rec.dnz_chr_id := p_chr_id;
24610
24611 IF (p_line_type = 'USAGE') THEN
24612 p_cimv_rec.object1_id1 := NULL;
24613 p_cimv_rec.object1_id2 := NULL;
24614 p_cimv_rec.jtot_object1_code := NULL;
24615 ELSIF (p_line_type = 'FEE') THEN
24616 p_cimv_rec.object1_id1 := x_stream_type_id;
24617 p_cimv_rec.object1_id2 := '#';
24618 p_cimv_rec.jtot_object1_code := l_link_top_code;
24619 ELSE
24620 p_cimv_rec.object1_id1 := x_inv_item_id;
24621 p_cimv_rec.object1_id2 := x_inv_org_id;
24622 p_cimv_rec.jtot_object1_code := l_link_top_code;
24623 END IF;
24624
24625 p_cimv_rec.exception_yn := 'N';
24626
24627 OKL_OKC_MIGRATION_PVT.create_contract_item(
24628 p_api_version => 1.0,
24629 p_init_msg_list => OKL_API.G_FALSE,
24630 x_return_status => x_return_status,
24631 x_msg_count => x_msg_count,
24632 x_msg_data => x_msg_data,
24633 p_cimv_rec => p_cimv_rec,
24634 x_cimv_rec => x_cimv_rec
24635 );
24636 l_progress := '100.5';
24637 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24638 x_return_status := OKL_API.G_RET_STS_ERROR;
24639 RAISE service_failed;
24640 END IF;
24641
24642 debug_message('Top line created for line# : '|| p_line_number);
24643 -- passthrough
24644 IF ((p_pth_base_payout_basis is NOT NULL) OR (p_pth_evg_payout_basis is NOT NULL)) THEN
24645 IF ((p_line_type = 'SERVICE') OR
24646 ((p_line_type = 'FEE') AND (p_fee_type = 'PASSTHROUGH'))) THEN
24647 debug_message('------>Create party payment starts for SERVICE / FEE : ' || p_line_type || '/'|| p_line_number);
24648 create_party_payment_hdr(
24649 x_return_status => x_return_status,
24650 x_msg_count => x_msg_count,
24651 x_msg_data => x_msg_data,
24652 p_contract_id => x_clev_rec.dnz_chr_id,
24653 p_line_id => x_clev_rec.id,
24654 p_line_type => p_line_type,
24655 p_pth_start_date => p_pth_start_date,
24656 p_pth_base_payout_basis => p_pth_base_payout_basis,
24657 p_pth_base_stream_code => p_pth_base_stream_code,
24658 p_pth_base_stream_purpose_code => p_pth_base_stream_purpose_code,
24659 p_pth_evg_payout_basis => p_pth_evg_payout_basis,
24660 p_pth_payout_basis_formula => p_pth_payout_basis_formula,
24661 p_pth_evg_stream_code => p_pth_evg_stream_code,
24662 p_pth_evg_stream_purpose_code => p_pth_evg_stream_purpose_code,
24663 x_party_pmnt_hdr_tbl => x_party_pmnt_hdr_tbl_out
24664 );
24665 debug_message('------>Create party payment ends '||x_return_status);
24666 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24667 x_return_status := OKL_API.G_RET_STS_ERROR;
24668 RAISE service_failed;
24669 END IF;
24670 END IF;
24671 IF (x_party_pmnt_hdr_tbl_out.COUNT > 0 )THEN
24672 l_counter := x_party_pmnt_hdr_tbl_out.FIRST;
24673 LOOP
24674 IF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'BASE') THEN
24675 g_base_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
24676 ELSIF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'EVERGREEN') THEN
24677 g_evg_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
24678 END IF;
24679 EXIT WHEN (l_counter = x_party_pmnt_hdr_tbl_out.LAST);
24680 l_counter := x_party_pmnt_hdr_tbl_out.NEXT(l_counter);
24681 END LOOP;
24682 END IF;
24683 END IF;
24684 ELSE
24685 x_cle_id := p_cle_id; -- use previous TOP line ID
24686 END IF; --inv_item_id
24687
24688
24689 IF (p_asset_number IS NOT NULL) THEN
24690
24691 -- create link asset line only in case asset link is present
24692 -- and link it to blank TOP line
24693 get_lse_id(
24694 x_return_status => x_return_status,
24695 x_msg_count => x_msg_count,
24696 x_msg_data => x_msg_data,
24697 p_contract_number => p_contract_number,
24698 p_line_number => p_line_number,
24699 p_lty_code => l_link_lty_code,
24700 p_top_line_lty_code => l_lty_code,
24701 x_lse_id => x_lse_id
24702 );
24703 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24704 x_return_status := OKL_API.G_RET_STS_ERROR;
24705 RAISE service_failed;
24706 END IF;
24707
24708 p_clev_rec.cle_id := x_cle_id;
24709 p_clev_rec.chr_id := NULL;
24710 p_clev_rec.dnz_chr_id := p_chr_id;
24711 p_clev_rec.lse_id := x_lse_id;
24712 p_clev_rec.line_number := p_line_number;
24713 p_clev_rec.name := p_asset_number;
24714 p_clev_rec.sts_code := 'NEW';
24715 p_clev_rec.exception_yn := 'N';
24716 p_clev_rec.display_sequence := 1;
24717 /*
24718 IF(p_line_start_date IS NULL) THEN
24719 p_clev_rec.start_date := p_line_start_date;
24720 ELSE
24721 p_clev_rec.start_date := p_header_start_date;
24722 END IF;
24723 */
24724 p_clev_rec.start_date := NVL(p_line_start_date, p_header_start_date);
24725 p_clev_rec.end_date := NVL(p_line_end_date,p_header_end_date);
24726 p_clev_rec.currency_code := p_currency_code;
24727
24728 --Bug 4688098
24729 -- p_klev_rec.capital_amount := p_link_asset_amount;
24730 IF ( p_line_type = 'FEE' AND p_fee_type = 'CAPITALIZED' )
24731 OR ( p_line_type = 'SERVICE')
24732 THEN
24733 p_klev_rec.capital_amount := p_link_asset_amount;
24734 ELSE
24735 p_klev_rec.amount :=p_link_asset_amount;
24736 END IF ;
24737 --Bug 4688098 : end
24738
24739
24740 okl_contract_pub.create_contract_line(
24741 p_api_version => 1.0,
24742 p_init_msg_list => OKL_API.G_FALSE,
24743 x_return_status => x_return_status,
24744 x_msg_count => x_msg_count,
24745 x_msg_data => x_msg_data,
24746 p_clev_rec => p_clev_rec,
24747 p_klev_rec => p_klev_rec,
24748 x_clev_rec => x_clev_rec,
24749 x_klev_rec => x_klev_rec
24750 );
24751 l_progress := '100.6';
24752
24753 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24754 x_return_status := OKL_API.G_RET_STS_ERROR;
24755 RAISE service_failed;
24756 END IF;
24757
24758 x_sub_cle_id := x_clev_rec.id; -- ID of the sub-line, Bug# 3110115
24759
24760 --link this line to financial asset line
24761 get_link_asset_id(
24762 x_return_status => x_return_status,
24763 x_msg_count => x_msg_count,
24764 x_msg_data => x_msg_data,
24765 p_asset_number => p_asset_number,
24766 p_contract_number => p_contract_number,
24767 p_chr_id => p_chr_id,
24768 p_line_number => p_line_number,
24769 x_asset_line_id => x_asset_line_id
24770 );
24771
24772 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24773 x_return_status := OKL_API.G_RET_STS_ERROR;
24774 RAISE service_failed;
24775 END IF;
24776
24777 --
24778 -- Validate Usage Item here
24779 -- check for association between Usage Item and Inventory Item for USAGE line
24780 --
24781 IF (p_line_type = 'USAGE') THEN
24782 validate_usage_item_assoc(
24783 x_return_status => x_return_status,
24784 x_msg_count => x_msg_count,
24785 x_msg_data => x_msg_data,
24786 p_contract_number => p_contract_number,
24787 p_line_number => p_line_number,
24788 p_asset_line_id => x_asset_line_id,
24789 p_usage_item_name => p_usage_item_name,
24790 p_usage_item_id => x_usage_item_id,
24791 p_inv_org_id => x_inv_org_id
24792 );
24793 l_progress := '100.7';
24794 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24795 RAISE service_failed;
24796 END IF;
24797 END IF;
24798
24799 p_cimv_rec := NULL;
24800 p_cimv_rec.cle_id := x_clev_rec.id;
24801 p_cimv_rec.chr_id := p_chr_id;
24802 p_cimv_rec.dnz_chr_id := p_chr_id;
24803 p_cimv_rec.object1_id1 := x_asset_line_id;
24804 p_cimv_rec.object1_id2 := '#';
24805 p_cimv_rec.jtot_object1_code := 'OKX_COVASST';
24806 p_cimv_rec.exception_yn := 'N';
24807
24808 okl_okc_migration_pvt.create_contract_item(
24809 p_api_version => 1.0,
24810 p_init_msg_list => OKL_API.G_FALSE,
24811 x_return_status => x_return_status,
24812 x_msg_count => x_msg_count,
24813 x_msg_data => x_msg_data,
24814 p_cimv_rec => p_cimv_rec,
24815 x_cimv_rec => x_cimv_rec
24816 );
24817 l_progress := '100.8';
24818 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24819 x_return_status := OKL_API.G_RET_STS_ERROR;
24820 RAISE service_failed;
24821 END IF;
24822
24823 -- Bug 4190051 Start
24824
24825 IF ( p_line_type = 'FEE' AND p_fee_type = 'CAPITALIZED' ) THEN
24826 null; -- Update asset x_asset_line_id with p_link_asset_amount
24827 l_clev_rec.id := x_asset_line_id;
24828 l_klev_rec.id := x_asset_line_id;
24829
24830 OPEN capital_amount(x_asset_line_id);
24831 FETCH capital_amount into l_capital_amount;
24832 CLOSE capital_amount;
24833
24834 /*begin
24835 select nvl(capital_amount , 0)
24836 into l_capital_amount
24837 from okl_k_lines
24838 where id = x_asset_line_id;
24839 end;*/
24840 l_klev_rec.capital_amount := p_link_asset_amount + l_capital_amount;
24841
24842 okl_contract_pub.update_contract_line
24843 (p_api_version => 1.0,
24844 p_init_msg_list => OKL_API.G_FALSE,
24845 x_return_status => x_return_status,
24846 x_msg_count => x_msg_count,
24847 x_msg_data => x_msg_data,
24848 p_clev_rec => l_clev_rec,
24849 p_klev_rec => l_klev_rec,
24850 x_clev_rec => x_clev_rec,
24851 x_klev_rec => x_klev_rec);
24852 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
24853 RAISE OKL_API.G_EXCEPTION_ERROR;
24854 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
24855 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
24856 END IF;
24857
24858 END IF; -- capitalized fee
24859
24860 -- Bug 4190051 Finish
24861
24862 END IF; -- p_asset_number IS NOT NULL
24863
24864 IF (p_line_type = 'FEE') THEN
24865 x_inv_item_id_prev := x_stream_type_id; -- to keep login in-line with SERVICE and USAGE line
24866 ELSIF (p_line_type = 'USAGE') THEN
24867 x_inv_item_id_prev := x_usage_item_id;
24868 ELSE
24869 x_inv_item_id_prev := x_inv_item_id; --copy current inventory item id to _prev
24870 END IF;
24871
24872 RETURN;
24873
24874 EXCEPTION
24875 WHEN service_failed THEN
24876 x_return_status := OKL_API.G_RET_STS_ERROR;
24877
24878 WHEN OTHERS THEN
24879 debug_message(l_progress);
24880
24881 okl_api.set_message(
24882 G_APP_NAME,
24883 G_UNEXPECTED_ERROR,
24884 'OKL_SQLCODE',
24885 SQLCODE,
24886 'OKL_SQLERRM',
24887 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
24888 );
24889 x_return_status := OKL_API.G_RET_STS_ERROR;
24890
24891 END process_other_line;
24892
24893 ------------------------------------------------------------------------------
24894 -- PROCEDURE get_qcl_id
24895 -- It returns qcl_id for QA checker to run
24896 -- Calls:
24897 -- Called By:
24898 ------------------------------------------------------------------------------
24899
24900 PROCEDURE get_qcl_id(
24901 x_return_status OUT NOCOPY VARCHAR2,
24902 p_qcl_name IN VARCHAR2,
24903 x_qcl_id OUT NOCOPY NUMBER) IS
24904
24905 CURSOR qcl_csr (p_qcL_name VARCHAR2) IS
24906 SELECT id
24907 FROM okc_qa_check_lists_v
24908 WHERE name = p_qcl_name;
24909
24910 l_id NUMBER;
24911
24912 BEGIN
24913
24914 x_return_status := OKL_API.G_RET_STS_SUCCESS;
24915
24916 OPEN qcl_csr(p_qcl_name);
24917 FETCH qcl_csr INTO l_id;
24918 CLOSE qcl_csr;
24919
24920 x_qcl_id := l_id;
24921
24922 END get_qcl_id;
24923
24924 ------------------------------------------------------------------------------
24925 -- PROCEDURE validate_credit_line
24926 -- It validates credit line against customer and customer account of the
24927 -- contract to be imported
24928 -- Calls:
24929 -- Called By:
24930 ------------------------------------------------------------------------------
24931 PROCEDURE validate_credit_line(
24932 x_return_status OUT NOCOPY VARCHAR2,
24933 x_msg_count OUT NOCOPY NUMBER,
24934 x_msg_data OUT NOCOPY VARCHAR2,
24935 p_contract_number IN OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE,
24936 p_template_id IN NUMBER,
24937 p_credit_line_id IN NUMBER,
24938 p_customer_id IN OKL_HEADER_INTERFACE.CUSTOMER_ID%TYPE,
24939 p_customer_number IN OKL_HEADER_INTERFACE.CUSTOMER_NUMBER%TYPE,
24940 p_customer_account_id IN OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_ID%TYPE,
24941 p_customer_account_number IN OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_NUMBER%TYPE,
24942 p_start_date IN OKL_HEADER_INTERFACE.START_DATE%TYPE,
24943 p_template_start_date IN OKL_HEADER_INTERFACE.START_DATE%TYPE
24944 ) IS
24945
24946 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
24947 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
24948 SELECT id1
24949 FROM okx_parties_v
24950 WHERE ((party_number = p_customer_number
24951 AND
24952 p_customer_number IS NOT NULL
24953 )
24954 OR
24955 (id1 = p_customer_id
24956 AND
24957 p_customer_id IS NOT NULL
24958 )
24959 );
24960
24961 CURSOR temp_st_dt_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24962 SELECT start_date
24963 FROM okc_k_headers_v
24964 WHERE id = p_chr_id;
24965
24966 CURSOR temp_cust_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24967 --Fixed Bug # 5484903
24968 SELECT object1_id1
24969 FROM okc_k_party_roles_b
24970 WHERE dnz_chr_id = p_chr_id
24971 AND chr_id = dnz_chr_id
24972 AND jtot_object1_code = 'OKX_PARTY'
24973 AND rle_code = 'LESSEE' ;
24974
24975 CURSOR temp_cust_acc_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24976 SELECT cust_acct_id
24977 FROM okc_k_headers_b
24978 WHERE id = p_chr_id;
24979
24980 CURSOR credit_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
24981 p_main_start_date OKC_K_HEADERS_V.START_DATE%TYPE) IS
24982 SELECT 'Y'
24983 FROM okc_k_headers_v
24984 WHERE id = p_chr_id
24985 AND end_date >= p_main_start_date;
24986
24987 l_customer_id OKX_PARTIES_V.ID1%TYPE;
24988 l_customer_account_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
24989 l_credit_customer_id OKX_PARTIES_V.ID1%TYPE;
24990 l_credit_customer_account_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
24991 l_rule_count NUMBER;
24992 l_rulv_tbl rulv_tbl_type;
24993 l_ok VARCHAR2(1) := '?';
24994
24995 credit_line_failed EXCEPTION;
24996
24997 BEGIN
24998
24999 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25000 /* 4414408
25001 IF (p_customer_id IS NULL
25002 AND
25003 p_customer_number IS NULL) THEN
25004
25005 -- get from template
25006
25007 l_customer_id := NULL;
25008 OPEN temp_cust_csr(p_template_id);
25009 FETCH temp_cust_csr INTO l_customer_id;
25010 CLOSE temp_cust_csr;
25011
25012 ELSE
25013 l_customer_id := NULL;
25014 OPEN customer_csr (p_customer_number,
25015 p_customer_id);
25016 FETCH customer_csr INTO l_customer_id;
25017 CLOSE customer_csr;
25018
25019 END IF;
25020 */
25021 l_customer_id := p_customer_id;
25022 debug_message('----->customer: '||l_customer_id);
25023
25024 /* 4414408
25025 IF (p_customer_account_id IS NULL
25026 AND
25027 p_customer_account_number IS NULL) THEN
25028
25029 -- get from template
25030
25031 l_rule_count := 0;
25032 l_customer_account_id := NULL;
25033
25034 -- Rule Migration
25035 -- get_contract_rules(
25036 -- x_return_status => x_return_status,
25037 -- x_msg_count => x_msg_count,
25038 -- x_msg_data => x_msg_data,
25039 -- p_chr_id => p_template_id,
25040 -- p_cle_id => NULL,
25041 -- p_rgd_code => 'LACAN',
25042 -- p_rule_code => 'CAN',
25043 -- x_rulv_tbl => l_rulv_tbl,
25044 -- x_rule_count => l_rule_count
25045 -- );
25046
25047 -- IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25048 -- RAISE credit_line_failed;
25049 -- END IF;
25050
25051 -- IF (l_rule_count > 0) THEN
25052 -- l_customer_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
25053 -- END IF;
25054
25055
25056 ELSE
25057 get_customer_account_id(
25058 x_return_status => x_return_status,
25059 x_msg_count => x_msg_count,
25060 x_msg_data => x_msg_data,
25061 p_contract_number => p_contract_number,
25062 p_customer_account_id => p_customer_account_id,
25063 p_customer_account_number => p_customer_account_number,
25064 x_customer_account_id => l_customer_account_id
25065 );
25066
25067 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25068 x_return_status := OKL_API.G_RET_STS_ERROR;
25069 RAISE credit_line_failed;
25070 END IF;
25071 END IF;
25072 */
25073 l_customer_account_id := p_customer_account_id;
25074 debug_message('----->customer Acc: '||l_customer_account_id);
25075 --
25076 -- get customer_id and customer_account_id
25077 -- for credit line contract
25078 --
25079
25080 l_credit_customer_id := NULL;
25081 OPEN temp_cust_csr(p_credit_line_id);
25082 FETCH temp_cust_csr INTO l_credit_customer_id;
25083 CLOSE temp_cust_csr;
25084
25085 l_rule_count := 0;
25086 l_credit_customer_account_id := NULL;
25087
25088 OPEN temp_cust_acc_csr (p_credit_line_id);
25089 FETCH temp_cust_acc_csr INTO l_credit_customer_account_id;
25090 CLOSE temp_cust_acc_csr;
25091
25092 /* Rule migration
25093 get_contract_rules(
25094 x_return_status => x_return_status,
25095 x_msg_count => x_msg_count,
25096 x_msg_data => x_msg_data,
25097 p_chr_id => p_credit_line_id,
25098 p_cle_id => NULL,
25099 p_rgd_code => 'LACAN',
25100 p_rule_code => 'CAN',
25101 x_rulv_tbl => l_rulv_tbl,
25102 x_rule_count => l_rule_count
25103 );
25104
25105 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25106 RAISE credit_line_failed;
25107 END IF;
25108
25109 IF (l_rule_count > 0) THEN
25110 l_credit_customer_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
25111 END IF;
25112 */
25113
25114 debug_message('----->Credit customer: '||l_credit_customer_id||', '||l_credit_customer_account_id);
25115
25116 IF (l_customer_id <> NVL(l_credit_customer_id, -1)
25117 OR
25118 l_customer_account_id <> NVL(l_credit_customer_account_id, -1)) THEN
25119 RAISE credit_line_failed;
25120 END IF;
25121
25122 -- check for end_date on credit line contract
25123 l_ok := '?';
25124 OPEN credit_csr (p_credit_line_id,
25125 nvl(p_start_date,p_template_start_date));
25126 FETCH credit_csr INTO l_ok;
25127 CLOSE credit_csr;
25128
25129 debug_message('Flag: '||l_ok);
25130
25131 IF (l_ok <> 'Y') THEN
25132 RAISE credit_line_failed;
25133 END IF;
25134
25135 EXCEPTION
25136 WHEN credit_line_failed THEN
25137 x_return_status := OKL_API.G_RET_STS_ERROR;
25138 END validate_credit_line;
25139
25140 ------------------------------------------------------------------------------
25141 -- PROCEDURE contract_after_yield
25142 -- Call this process after SuperTrump returns with yield. Call this process
25143 -- from OKL_LA_STREAM_PVT.UPDATE_CONTRACT_YIELD for every contract
25144 -- Calls:
25145 -- Called By:
25146 ------------------------------------------------------------------------------
25147 PROCEDURE contract_after_yield(
25148 p_api_version IN NUMBER,
25149 p_init_msg_list IN VARCHAR2,
25150 x_return_status OUT NOCOPY VARCHAR2,
25151 x_msg_count OUT NOCOPY NUMBER,
25152 x_msg_data OUT NOCOPY VARCHAR2,
25153 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE
25154 ) IS
25155
25156 l_api_name VARCHAR2(35) := 'contract_after_yield';
25157 l_proc_name VARCHAR2(35) := 'CONTRACT_AFTER_YIELD';
25158 l_api_version NUMBER := 1.0;
25159
25160 after_yield_failed EXCEPTION;
25161
25162 CURSOR contract_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
25163 SELECT contract_number,
25164 orig_system_reference1
25165 FROM okc_k_headers_v
25166 WHERE id = p_chr_id
25167 AND orig_system_source_code = 'OKL_IMPORT';
25168
25169 CURSOR stage_csr (p_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE) IS
25170 SELECT import_request_stage
25171 FROM okl_header_interface
25172 WHERE contract_number = p_contract_number
25173 AND status = 'INTERFACED';
25174
25175 l_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
25176 l_orig_contract OKC_K_HEADERS_V.ORIG_SYSTEM_REFERENCE1%TYPE;
25177 l_import_stage OKC_K_HEADERS_V.STS_CODE%TYPE;
25178 l_process_status VARCHAR2(1);
25179 BEGIN
25180
25181 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25182 debug_message(l_proc_name);
25183 x_return_status := OKL_API.START_ACTIVITY(
25184 p_api_name => l_api_name,
25185 p_pkg_name => G_PKG_NAME,
25186 p_init_msg_list => p_init_msg_list,
25187 l_api_version => l_api_version,
25188 p_api_version => p_api_version,
25189 p_api_type => G_API_TYPE,
25190 x_return_status => x_return_status);
25191
25192 -- check if activity started successfully
25193 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
25194 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
25195 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) then
25196 raise OKL_API.G_EXCEPTION_ERROR;
25197 END IF;
25198
25199 l_contract_number := '?';
25200 OPEN contract_csr (p_chr_id);
25201 FETCH contract_csr INTO l_contract_number,
25202 l_orig_contract;
25203 IF contract_csr%NOTFOUND THEN
25204 RAISE after_yield_failed;
25205 END IF;
25206 CLOSE contract_csr;
25207
25208 l_import_stage := '?';
25209 IF (l_contract_number <> '?') THEN
25210 OPEN stage_csr(l_contract_number);
25211 FETCH stage_csr INTO l_import_stage;
25212 CLOSE stage_csr;
25213 END IF;
25214
25215 IF (l_import_stage IN ('COMPLETE','APPROVED', 'BOOKED')) THEN
25216
25217 IF (l_import_stage = 'COMPLETE') THEN
25218 --
25219 -- Generate Journal Entries
25220 --
25221 debug_message('Calling : okl_contract_book_pub.generate_journal_entries');
25222 okl_contract_book_pub.generate_journal_entries(
25223 p_api_version => p_api_version,
25224 p_init_msg_list => p_init_msg_list,
25225 p_commit => Okl_Api.G_FALSE,
25226 p_contract_id => p_chr_id,
25227 p_transaction_type => 'Booking',
25228 p_draft_yn => Okc_Api.G_TRUE,
25229 x_return_status => x_return_status,
25230 x_msg_count => x_msg_count,
25231 x_msg_data => x_msg_data
25232 );
25233 /*
25234 --
25235 Do not want to handle and throw exception
25236 which might cause Yield Generation to go for toss
25237 --
25238 */
25239 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25240 RAISE after_yield_failed;
25241 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25242 RAISE after_yield_failed;
25243 END IF;
25244
25245 ELSIF (l_import_stage = 'APPROVED') THEN
25246 --
25247 -- Generate Journal Entries
25248 --
25249 debug_message('Calling : okl_contract_book_pub.generate_journal_entries');
25250 okl_contract_book_pub.generate_journal_entries(
25251 p_api_version => p_api_version,
25252 p_init_msg_list => p_init_msg_list,
25253 p_commit => Okl_Api.G_FALSE,
25254 p_contract_id => p_chr_id,
25255 p_transaction_type => 'Booking',
25256 p_draft_yn => Okc_Api.G_TRUE,
25257 x_return_status => x_return_status,
25258 x_msg_count => x_msg_count,
25259 x_msg_data => x_msg_data
25260 );
25261
25262 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25263 RAISE after_yield_failed;
25264 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25265 RAISE after_yield_failed;
25266 END IF;
25267
25268 --Bug# 2566822 : AME/WF integration in approval process
25269 --debug_message('Calling : okl_contract_book_pub.submit_for_approval');
25270 debug_message('Calling : okl_contract_book_pvt.approve_contract');
25271 --
25272 -- Submit for Approval
25273 --
25274 --Bug# 2566822 : AME/WF integration in approval process
25275 --okl_contract_book_pub.submit_for_approval(
25276
25277 -- Bug# 12967955: When importing contracts in APPROVED status, submit
25278 -- contract for approval if workflow/AME profile is enabled. After approval
25279 -- automatically activate the contract
25280 --okl_contract_book_pvt.approve_contract(
25281 okl_contract_book_pvt.approve_activate_contract(
25282 p_api_version => p_api_version,
25283 p_init_msg_list => p_init_msg_list,
25284 x_return_status => x_return_status,
25285 x_msg_count => x_msg_count,
25286 x_msg_data => x_msg_data,
25287 p_chr_id => p_chr_id,
25288 x_process_status => l_process_status
25289 );
25290
25291 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25292 RAISE after_yield_failed;
25293 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR)
25294 OR (l_process_status = OKL_API.G_RET_STS_ERROR) THEN
25295 RAISE after_yield_failed;
25296 END IF;
25297
25298 ELSIF (l_import_stage = 'BOOKED') THEN
25299 --
25300 -- Generate Journal Entries
25301 --
25302 debug_message('Calling : okl_contract_book_pub.generate_journal_entries');
25303
25304 okl_contract_book_pub.generate_journal_entries(
25305 p_api_version => p_api_version,
25306 p_init_msg_list => p_init_msg_list,
25307 p_commit => Okl_Api.G_FALSE,
25308 p_contract_id => p_chr_id,
25309 p_transaction_type => 'Booking',
25310 p_draft_yn => Okc_Api.G_TRUE,
25311 x_return_status => x_return_status,
25312 x_msg_count => x_msg_count,
25313 x_msg_data => x_msg_data
25314 );
25315
25316 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25317 RAISE after_yield_failed;
25318 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25319 RAISE after_yield_failed;
25320 END IF;
25321
25322
25323 --Bug# 2566822 : AME/WF integration in approval process
25324 --debug_message('Calling : okl_contract_book_pub.submit_for_approval');
25325 debug_message('Calling : okl_contract_book_pvt.approve_contract');
25326 --
25327 -- Submit for Approval
25328 --
25329 --Bug# 2566822 : AME/WF integration in approval process
25330 --okl_contract_book_pub.submit_for_approval(
25331 okl_contract_book_pvt.approve_contract(
25332 p_api_version => p_api_version,
25333 p_init_msg_list => p_init_msg_list,
25334 x_return_status => x_return_status,
25335 x_msg_count => x_msg_count,
25336 x_msg_data => x_msg_data,
25337 p_chr_id => p_chr_id
25338 );
25339
25340 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25341 RAISE after_yield_failed;
25342 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25343 RAISE after_yield_failed;
25344 END IF;
25345
25346
25347 debug_message('Calling : okl_contract_book_pub.activate_contract');
25348 okl_contract_book_pub.activate_contract(
25349 p_api_version => p_api_version,
25350 p_init_msg_list => p_init_msg_list,
25351 x_return_status => x_return_status,
25352 x_msg_count => x_msg_count,
25353 x_msg_data => x_msg_data,
25354 p_chr_id => p_chr_id
25355 );
25356
25357 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25358 RAISE after_yield_failed;
25359 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25360 RAISE after_yield_failed;
25361 END IF;
25362
25363 -- R12B Authoring OA Migration
25364 -- Update the status of the Submit Contract task to Complete
25365 OKL_BOOK_CONTROLLER_PVT.update_book_controller_trx(
25366 p_api_version => p_api_version,
25367 p_init_msg_list => p_init_msg_list,
25368 x_return_status => x_return_status,
25369 x_msg_count => x_msg_count,
25370 x_msg_data => x_msg_data,
25371 p_khr_id => p_chr_id ,
25372 p_prog_short_name => OKL_BOOK_CONTROLLER_PVT.G_SUBMIT_CONTRACT,
25373 p_progress_status => OKL_BOOK_CONTROLLER_PVT.G_PROG_STS_COMPLETE);
25374
25375 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25376 RAISE after_yield_failed;
25377 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25378 RAISE after_yield_failed;
25379 END IF;
25380
25381 END IF; -- import_stage
25382
25383 END IF;
25384
25385 Update_Interface_Status(
25386 p_contract_number => l_orig_contract,
25387 p_new_contract_number => l_contract_number,
25388 p_status => 'FINAL',
25389 x_return_status => x_return_status
25390 );
25391
25392 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25393 RAISE after_yield_failed;
25394 END IF;
25395
25396 OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
25397 x_msg_data => x_msg_data);
25398
25399
25400 RETURN;
25401
25402 EXCEPTION
25403 when after_yield_failed THEN
25404 IF contract_csr%ISOPEN THEN
25405 CLOSE contract_csr;
25406 END IF;
25407 x_return_status := OKL_API.G_RET_STS_SUCCESS; -- to allow Yield process to complete SUCCESSFULLY
25408
25409 when OKL_API.G_EXCEPTION_ERROR then
25410 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
25411 p_api_name => l_api_name,
25412 p_pkg_name => G_PKG_NAME,
25413 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
25414 x_msg_count => x_msg_count,
25415 x_msg_data => x_msg_data,
25416 p_api_type => G_API_TYPE);
25417
25418
25419 when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
25420 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
25421 p_api_name => l_api_name,
25422 p_pkg_name => G_PKG_NAME,
25423 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
25424 x_msg_count => x_msg_count,
25425 x_msg_data => x_msg_data,
25426 p_api_type => G_API_TYPE);
25427
25428 when OTHERS then
25429 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
25430 p_api_name => l_api_name,
25431 p_pkg_name => G_PKG_NAME,
25432 p_exc_name => 'OTHERS',
25433 x_msg_count => x_msg_count,
25434 x_msg_data => x_msg_data,
25435 p_api_type => G_API_TYPE);
25436
25437 END contract_after_yield;
25438
25439 ------------------------------------------------------------------------------
25440 -- PROCEDURE contract_further_process
25441 -- It process contract beyond status 'NEW'. It calls QA Checker and finally submits
25442 -- request to generate streams and
25443 -- stacks Error, if any, and returns ERROR status to calling process.
25444 -- Calls:
25445 -- Called By:
25446 -- process_record
25447 ------------------------------------------------------------------------------
25448 PROCEDURE contract_further_process(
25449 p_init_msg_list IN VARCHAR2,
25450 x_return_status OUT NOCOPY VARCHAR2,
25451 x_msg_count OUT NOCOPY NUMBER,
25452 x_msg_data OUT NOCOPY VARCHAR2,
25453 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE,
25454 p_import_stage IN VARCHAR2
25455 ) IS
25456 l_api_name VARCHAR2(35) := 'create_rebook_contract';
25457 l_proc_name VARCHAR2(35) := 'CREATE_REBOOK_CONTRACT';
25458 l_api_version CONSTANT NUMBER := 1;
25459 l_qa_check_status VARCHAR2(1) := 'S';
25460
25461 l_qcl_id NUMBER;
25462 l_msg_tbl Okl_Qa_Check_Pub.msg_tbl_type;
25463 x_trx_number NUMBER;
25464 x_trx_status VARCHAR2(100);
25465
25466 -- R12B Authoring OA Migration
25467 l_upfront_tax_status VARCHAR2(1) := 'S';
25468
25469 BEGIN
25470
25471 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25472
25473 IF (p_import_stage IN ('PASSED','COMPLETE','APPROVED','BOOKED')) THEN
25474 /* 4414408
25475 get_qcl_id(
25476 x_return_status => x_return_status,
25477 p_qcl_name => 'OKL LA QA CHECK LIST',
25478 x_qcl_id => l_qcl_id);
25479
25480 debug_message('ID : '||l_qcl_id);
25481 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
25482 */
25483 --fnd_file.put_line(fnd_file.output, 'Running QA Checker...');
25484 debug_message('ID : '||g_qcl_id);
25485 write_to_log('Running QA Checker...');
25486 okl_contract_book_pub.execute_qa_check_list(
25487 p_api_version => 1.0,
25488 p_init_msg_list => OKL_API.G_FALSE,
25489 x_return_status => x_return_status,
25490 x_msg_count => x_msg_count,
25491 x_msg_data => x_msg_data,
25492 p_qcl_id => g_qcl_id, -- 4414408
25493 p_chr_id => p_chr_id,
25494 x_msg_tbl => l_msg_tbl
25495 );
25496
25497 FOR i IN 1..l_msg_tbl.LAST
25498 LOOP
25499 IF (l_msg_tbl(i).error_status <> 'S') THEN
25500
25501 write_to_log('Name : '||l_msg_tbl(i).name);
25502 write_to_log('Description : '||l_msg_tbl(i).description);
25503 write_to_log('Error Status: '||l_msg_tbl(i).error_status);
25504 write_to_log('Data : '||l_msg_tbl(i).data);
25505
25506 END IF;
25507
25508 IF (l_msg_tbl(i).error_status = 'E') THEN
25509 l_qa_check_status := 'E';
25510 END IF;
25511 END LOOP;
25512
25513 debug_message('After 1st Qa Checker '|| l_qa_check_status);
25514 commit;
25515
25516 -- END IF; -- Success
25517
25518 -- R12B Authoring OA Migration
25519 -- Call API to calculate upfront tax if QA check is complete
25520 IF (l_qa_check_status = 'S') THEN
25521
25522 OKL_CONTRACT_BOOK_PVT.calculate_upfront_tax(
25523 p_api_version => 1.0,
25524 p_init_msg_list => OKL_API.G_FALSE,
25525 x_return_status => x_return_status,
25526 x_msg_count => x_msg_count,
25527 x_msg_data => x_msg_data,
25528 p_chr_id => p_chr_id,
25529 x_process_status => l_upfront_tax_status);
25530
25531 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
25532 commit;
25533 ELSE
25534 report_error(x_msg_count, x_msg_data);
25535 rollback;
25536 l_upfront_tax_status := 'E';
25537 END IF;
25538
25539 END IF;
25540
25541 END IF; -- Import Stage
25542
25543 debug_message('QA Error Status: '||l_qa_check_status);
25544
25545 IF (p_import_stage IN ('COMPLETE', 'APPROVED', 'BOOKED')) THEN
25546 -- R12B Authoring OA Migration
25547 -- If Upfront Tax is complete, then call API to generate streams
25548 IF (l_upfront_tax_status = 'S') THEN
25549 --IF (l_qa_check_status = 'S') THEN
25550
25551 --fnd_file.put_line(fnd_file.output, 'Submitting Request to generate Streams....');
25552 write_to_log('Submitting Request to generate Streams....');
25553
25554 --OKL_GENERATE_STREAMS_PUB.GENERATE_STREAMS(
25555 OKL_LA_STREAM_PUB.GEN_INTR_EXTR_STREAM (
25556 p_api_version => 1.0,
25557 p_init_msg_list => OKL_API.G_FALSE,
25558 p_khr_id => p_chr_id,
25559 p_generation_ctx_code => 'AUTH',
25560 x_trx_number => x_trx_number,
25561 x_trx_status => x_trx_status,
25562 x_return_status => x_return_status,
25563 x_msg_count => x_msg_count,
25564 x_msg_data => x_msg_data
25565 );
25566
25567 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
25568 commit; -- required for stream generation
25569 --fnd_file.put_line(fnd_file.output,'Req ID: '||x_trx_number);
25570 write_to_log('Req ID: '||x_trx_number);
25571 ELSE
25572 report_error(
25573 x_msg_count, x_msg_data);
25574 rollback;
25575 END IF;
25576 END IF; -- upfront tax status
25577 END IF; -- import_stage
25578
25579 RETURN;
25580
25581 EXCEPTION
25582 WHEN OTHERS THEN
25583
25584 okl_api.set_message(
25585 G_APP_NAME,
25586 G_UNEXPECTED_ERROR,
25587 'OKL_SQLCODE',
25588 SQLCODE,
25589 'OKL_SQLERRM',
25590 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
25591 );
25592 x_return_status := OKL_API.G_RET_STS_ERROR;
25593
25594 report_error (
25595 x_msg_count => x_msg_count,
25596 x_msg_data => x_msg_data
25597 );
25598
25599 END contract_further_process;
25600
25601 PROCEDURE get_tal_id(
25602 x_return_status OUT NOCOPY VARCHAR2,
25603 p_fa_line_id IN NUMBER,
25604 x_tal_id OUT NOCOPY NUMBER
25605 ) IS
25606
25607 CURSOR tal_csr (p_id NUMBER) IS
25608 SELECT id
25609 FROM okl_txl_assets_v
25610 WHERE kle_id = p_id;
25611
25612 tal_failed EXCEPTION;
25613 l_id NUMBER;
25614
25615 BEGIN
25616 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25617 OPEN tal_csr(p_fa_line_id);
25618 FETCH tal_csr INTO l_id;
25619 IF tal_csr%NOTFOUND THEN
25620 RAISE tal_failed;
25621 END IF;
25622 CLOSE tal_csr;
25623 x_tal_id := l_id;
25624 RETURN;
25625 EXCEPTION
25626 WHEN tal_failed THEN
25627 IF tal_csr%ISOPEN THEN
25628 CLOSE tal_csr;
25629 END IF;
25630 okl_api.set_message(
25631 G_APP_NAME,
25632 G_OKL_TXD_ID
25633 );
25634 x_return_status := OKL_API.G_RET_STS_ERROR;
25635 END get_tal_id;
25636
25637 ------------------------------------------------------------------------------
25638 -- PROCEDURE populate_header_rec
25639 -- It checks template contract and interface data to populate final header record and
25640 -- stacks Error, if any, and returns ERROR status to calling process.
25641 -- Calls:
25642 --
25643 -- Called By:
25644 --
25645 ------------------------------------------------------------------------------
25646 PROCEDURE populate_header_rec(
25647 x_return_status OUT NOCOPY VARCHAR2,
25648 x_msg_count OUT NOCOPY NUMBER,
25649 x_msg_data OUT NOCOPY VARCHAR2,
25650 p_temp_header IN template_h_rec_type,
25651 p_intf_header IN intf_h_rec_type,
25652 x_chrv_rec OUT NOCOPY chrv_rec_type,
25653 x_khrv_rec OUT NOCOPY khrv_rec_type
25654 ) IS
25655 l_proc_name VARCHAR2(35) := 'POPULATE_HEADER_REC';
25656 -- l_qcl_id NUMBER;
25657 x_program_agreement_id OKC_K_HEADERS_V.ID%TYPE;
25658 x_product_id NUMBER;
25659
25660 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
25661 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
25662 SELECT id1
25663 FROM okx_parties_v
25664 WHERE ((party_number = p_customer_number
25665 AND
25666 p_customer_number IS NOT NULL
25667 )
25668 OR
25669 (id1 = p_customer_id
25670 AND
25671 p_customer_id IS NOT NULL
25672 )
25673 );
25674
25675 l_id1 OKX_PARTIES_V.ID1%TYPE;
25676 x_customer_account_id NUMBER;
25677 x_bill_to_address_id NUMBER;
25678 pop_header_failed EXCEPTION;
25679
25680 BEGIN
25681
25682 -- Bug 4350579 start
25683 -- Validation from check
25684 --
25685 x_return_status := check_header_literal (
25686 p_contract_number => p_intf_header.contract_number_old,
25687 p_template_id => p_temp_header.id,
25688 p_application_code => p_intf_header.application_code,
25689 p_contract_category => NVL(p_intf_header.contract_category,p_temp_header.scs_code),
25690 p_import_request_stage => p_intf_header.import_request_stage,
25691 p_converted_account => NVL(p_intf_header.converted_account,
25692 p_temp_header.converted_account_yn),
25693 p_security_deposit_hold_flag => p_intf_header.security_deposit_hold_flag,
25694 p_security_deposit_net_flag => p_intf_header.security_deposit_net_flag,
25695 p_review_invoice_flag => p_intf_header.review_invoice_flag,
25696 p_date_signed => NVL(p_intf_header.date_signed,p_temp_header.date_signed),
25697 p_start_date => NVL(p_intf_header.start_date,p_temp_header.start_date),
25698 p_date_approved => NVL(p_intf_header.date_approved,p_temp_header.date_approved),
25699 p_term => NVL(p_intf_header.term,p_temp_header.term_duration),
25700 p_accepted_date => NVL(p_intf_header.accepted_date,p_temp_header.accepted_date),
25701 p_deal_type_code => NVL(p_intf_header.deal_type_code,p_temp_header.deal_type),
25702 p_bill_to_address => p_intf_header.bill_to_address,
25703 p_bill_to_address_id => p_intf_header.bill_to_address_id,
25704 p_authoring_org_id => NVL(p_intf_header.authoring_org_id,
25705 p_temp_header.authoring_org_id),
25706 p_inv_organization_id => NVL(p_intf_header.inventory_organization_id,
25707 p_temp_header.inv_organization_id),
25708 p_customer_account_number => p_intf_header.customer_account_number,
25709 p_customer_account_id => p_intf_header.customer_account_id,
25710 p_eot_purchase_opt_type => p_intf_header.eot_purchase_opt_type,
25711 p_expected_delivery_date => p_intf_header.expected_delivery_date,
25712 p_currency_code => NVL(p_intf_header.currency_code,
25713 p_temp_header.currency_code)
25714 );
25715
25716 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25717 x_return_status := OKL_API.G_RET_STS_ERROR;
25718 RAISE pop_header_failed;
25719 END IF;
25720
25721
25722 -- Bug 4350579 end
25723
25724 x_chrv_rec.sts_code := 'NEW';
25725 x_chrv_rec.scs_code := NVL(p_intf_header.contract_category, p_temp_header.scs_code);
25726 x_chrv_rec.contract_number := p_intf_header.contract_number;
25727 x_chrv_rec.currency_code := NVL(p_intf_header.currency_code, p_temp_header.currency_code);
25728 x_chrv_rec.cust_po_number := NVL(p_intf_header.customer_po_number, p_temp_header.cust_po_number);
25729 x_chrv_rec.short_description := NVL(p_intf_header.contract_description, p_temp_header.short_description);
25730 x_chrv_rec.description := NVL(p_intf_header.contract_description, p_temp_header.description);
25731 x_chrv_rec.date_approved := NVL(p_intf_header.date_approved, p_temp_header.date_approved);
25732 x_chrv_rec.archived_yn := 'N';
25733 x_chrv_rec.deleted_yn := 'N';
25734 x_chrv_rec.cust_po_number_req_yn := 'N';
25735 x_chrv_rec.pre_pay_req_yn := 'N';
25736 x_chrv_rec.template_yn := 'N';
25737 x_chrv_rec.chr_type := 'CYA';
25738 x_chrv_rec.date_signed := NVL(p_intf_header.date_signed, p_temp_header.date_signed);
25739 x_chrv_rec.start_date := NVL(p_intf_header.start_date, NVL(p_temp_header.start_date, SYSDATE));
25740 -- Added by asahoo for Bug#5416376
25741 x_chrv_rec.end_date := OKL_LLA_UTIL_PVT.calculate_end_date(nvl(x_chrv_rec.start_date, SYSDATE),
25742 nvl(p_intf_header.term,NVL(p_temp_header.term_duration, 0)));
25743 x_chrv_rec.authoring_org_id := NVL(p_intf_header.authoring_org_id, p_temp_header.authoring_org_id);
25744 x_chrv_rec.inv_organization_id := NVL(p_intf_header.inventory_organization_id, p_temp_header.inv_organization_id);
25745 x_chrv_rec.buy_or_sell := 'S';
25746 x_chrv_rec.issue_or_receive := 'I';
25747 x_chrv_rec.orig_system_source_code := 'OKL_IMPORT'; -- p_intf_header.contract_source; Only one source for 1st release
25748 x_chrv_rec.orig_system_reference1 := p_intf_header.contract_number_old;
25749
25750 -- Validated customer
25751 l_id1 := NULL;
25752 OPEN customer_csr (p_intf_header.customer_number,
25753 p_intf_header.customer_id);
25754 FETCH customer_csr INTO l_id1;
25755 CLOSE customer_csr;
25756
25757 IF (l_id1 IS NOT NULL) THEN
25758 g_customer_id := l_id1;
25759 ELSE
25760 okl_api.set_message(
25761 G_APP_NAME,
25762 G_INVALID_VALUE,
25763 'CONTRACT_NUM',
25764 p_intf_header.contract_number_old,
25765 'COL_NAME',
25766 'CUSTOMER_ID, NUMBER: ',
25767 'COL_VALUE',
25768 p_intf_header.customer_id||', '||p_intf_header.customer_number
25769 );
25770
25771 x_return_status := OKL_API.G_RET_STS_ERROR;
25772 RAISE pop_header_failed;
25773 END IF;
25774
25775 x_customer_account_id := NULL;
25776 IF (p_intf_header.customer_account_id IS NOT NULL
25777 OR
25778 p_intf_header.customer_account_number IS NOT NULL) THEN
25779 get_customer_account_id(
25780 x_return_status => x_return_status,
25781 x_msg_count => x_msg_count,
25782 x_msg_data => x_msg_data,
25783 p_contract_number => p_intf_header.contract_number_old,
25784 p_customer_id => g_customer_id,
25785 p_customer_account_id => p_intf_header.customer_account_id,
25786 p_customer_account_number => p_intf_header.customer_account_number,
25787 x_customer_account_id => x_customer_account_id
25788 );
25789 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25790 x_return_status := OKL_API.G_RET_STS_ERROR;
25791 RAISE pop_header_failed;
25792 END IF;
25793 ELSIF (p_intf_header.template_number IS NOT NULL) THEN
25794 x_customer_account_id := p_temp_header.cust_acct_id;
25795 END IF;
25796
25797 IF (x_customer_account_id IS NULL
25798 AND
25799 p_intf_header.import_request_stage <> 'NEW') THEN
25800 okl_api.set_message(
25801 G_APP_NAME,
25802 G_MISSING_VALUE_FOR_STAGE,
25803 'CONTRACT_NUM',
25804 p_intf_header.contract_number_old,
25805 'COL_NAME',
25806 'CUSTOMER_ACCOUNT',
25807 'STAGE',
25808 p_intf_header.import_request_stage
25809 );
25810 x_return_status := OKL_API.G_RET_STS_ERROR;
25811 RAISE pop_header_failed;
25812 END IF;
25813
25814 x_chrv_rec.cust_acct_id := x_customer_account_id;
25815 g_customer_account_id := x_customer_account_id;
25816
25817 x_bill_to_address_id := NULL;
25818 IF (p_intf_header.bill_to_address_id IS NOT NULL
25819 OR
25820 p_intf_header.bill_to_address IS NOT NULL) THEN
25821 get_bill_to_address_id(
25822 x_return_status => x_return_status,
25823 x_msg_count => x_msg_count,
25824 x_msg_data => x_msg_data,
25825 p_contract_number => p_intf_header.contract_number,
25826 p_auth_org_id => p_intf_header.authoring_org_id,
25827 p_bill_to_address_id => p_intf_header.bill_to_address_id,
25828 p_bill_to_address => p_intf_header.bill_to_address,
25829 p_customer_account_id => x_customer_account_id,
25830 x_bill_to_address_id => x_bill_to_address_id
25831 );
25832 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25833 x_return_status := OKL_API.G_RET_STS_ERROR;
25834 RAISE pop_header_failed;
25835 END IF;
25836
25837 ELSIF (p_intf_header.template_number IS NOT NULL) THEN
25838 x_bill_to_address_id := p_temp_header.bill_to_site_use_id;
25839 END IF;
25840
25841 IF (x_bill_to_address_id IS NULL
25842 AND
25843 p_intf_header.import_request_stage <> 'NEW') THEN
25844 okl_api.set_message(
25845 G_APP_NAME,
25846 G_MISSING_VALUE_FOR_STAGE,
25847 'CONTRACT_NUM',
25848 p_intf_header.contract_number_old,
25849 'COL_NAME',
25850 'BILL_TO_ADDRESS',
25851 'STAGE',
25852 p_intf_header.import_request_stage
25853 );
25854 x_return_status := OKL_API.G_RET_STS_ERROR;
25855 RAISE pop_header_failed;
25856 END IF;
25857
25858 g_bill_to_address_id := x_bill_to_address_id;
25859 x_chrv_rec.bill_to_site_use_id := x_bill_to_address_id;
25860
25861 /* 4414408
25862 get_qcl_id(
25863 x_return_status => x_return_status,
25864 p_qcl_name => 'OKL LA QA CHECK LIST',
25865 x_qcl_id => l_qcl_id
25866 );
25867 */
25868
25869 x_chrv_rec.qcl_id := g_qcl_id;
25870
25871 --
25872 -- Bug 3990456
25873 -- For template import populate
25874 -- orig_system_id1 and template_used columns
25875 --
25876 IF (p_temp_header.id IS NOT NULL) THEN
25877 x_chrv_rec.orig_system_id1 := p_temp_header.id;
25878 x_chrv_rec.template_used := p_temp_header.contract_number;
25879 END IF;
25880
25881 IF (NVL(p_intf_header.program_agreement_id,p_temp_header.khr_id) IS NOT NULL
25882 OR
25883 p_intf_header.program_agreement_number IS NOT NULL) THEN
25884
25885 x_return_status := get_prog_agreement_id(
25886 p_scs_code => 'PROGRAM',
25887 p_agreement_number => p_intf_header.program_agreement_number,
25888 p_agreement_id => NVL(p_intf_header.program_agreement_id,
25889 p_temp_header.khr_id),
25890 p_auth_org_id => x_chrv_rec.authoring_org_id,
25891 x_agreement_id => x_program_agreement_id
25892 );
25893
25894 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25895 okl_api.set_message(
25896 G_APP_NAME,
25897 G_INVALID_VALUE,
25898 'CONTRACT_NUM',
25899 p_intf_header.contract_number_old,
25900 'COL_NAME',
25901 'PROGRAM_AGREEMENT_ID, NUMBER: ',
25902 'COL_VALUE',
25903 p_intf_header.program_agreement_id||', '||p_intf_header.program_agreement_number
25904 );
25905 RAISE pop_header_failed;
25906 END IF;
25907 x_khrv_rec.khr_id := x_program_agreement_id;
25908 ELSE
25909 x_khrv_rec.khr_id := p_temp_header.khr_id;
25910 END IF;
25911
25912 IF (p_intf_header.product_id IS NOT NULL
25913 OR
25914 p_intf_header.product_name IS NOT NULL) THEN
25915 x_return_status := get_product_id(p_product_id => p_intf_header.product_id,
25916 p_product_name => p_intf_header.product_name,
25917 x_product_id => x_product_id );
25918
25919 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25920 okl_api.set_message(
25921 G_APP_NAME,
25922 G_INVALID_VALUE,
25923 'CONTRACT_NUM',
25924 p_intf_header.contract_number_old,
25925 'COL_NAME',
25926 'PRODUCT_ID, NAME: ',
25927 'COL_VALUE',
25928 p_intf_header.product_id||', '||p_intf_header.product_name
25929 );
25930
25931 x_return_status := OKL_API.G_RET_STS_ERROR;
25932
25933 RAISE pop_header_failed;
25934 END IF;
25935 x_khrv_rec.pdt_id := x_product_id;
25936 ELSE
25937 x_khrv_rec.pdt_id := p_temp_header.pdt_id;
25938 END IF;
25939
25940 IF (NVL(p_intf_header.assignable_yn,'N') NOT IN ('Y','N')) THEN
25941 okl_api.set_message(
25942 G_APP_NAME,
25943 G_INVALID_VALUE,
25944 'CONTRACT_NUM',
25945 p_intf_header.contract_number_old,
25946 'COL_NAME',
25947 'ASSIGNABLE_YN',
25948 'COL_VALUE',
25949 p_intf_header.assignable_yn
25950 );
25951
25952 x_return_status := OKL_API.G_RET_STS_ERROR;
25953
25954 RAISE pop_header_failed;
25955 END IF;
25956
25957 -- start cklee bug# 3440442
25958 IF (NVL(p_intf_header.prefunding_eligible_flag,'N') NOT IN ('Y','N')) THEN
25959 okl_api.set_message(
25960 G_APP_NAME,
25961 G_INVALID_VALUE,
25962 'CONTRACT_NUM',
25963 p_intf_header.contract_number_old,
25964 'COL_NAME',
25965 'PREFUNDING_ELIGIBLE_FLAG',
25966 'COL_VALUE',
25967 p_intf_header.prefunding_eligible_flag
25968 );
25969
25970 x_return_status := OKL_API.G_RET_STS_ERROR;
25971
25972 RAISE pop_header_failed;
25973 END IF;
25974 -- end cklee bug# 3440442
25975
25976 x_khrv_rec.amd_code := NVL(p_intf_header.acceptance_method_code, p_temp_header.amd_code);
25977 x_khrv_rec.converted_account_yn := NVL(p_intf_header.converted_account, p_temp_header.converted_account_yn);
25978
25979 /* Not used since 11.5.9, Product is defaulting deal_type_code
25980 x_khrv_rec.deal_type := NVL(p_intf_header.deal_type_code, p_temp_header.deal_type);
25981 */
25982 x_khrv_rec.expected_delivery_date := NVL(p_intf_header.expected_delivery_date, p_temp_header.expected_delivery_date);
25983 x_khrv_rec.accepted_date := NVL(p_intf_header.accepted_date, p_temp_header.accepted_date);
25984 x_khrv_rec.term_duration := NVL(p_intf_header.term, p_temp_header.term_duration);
25985 x_khrv_rec.currency_conversion_type := NVL(p_intf_header.currency_conversion_type,
25986 p_temp_header.currency_conversion_type);
25987 x_khrv_rec.currency_conversion_rate := NVL(p_intf_header.currency_conversion_rate,
25988 p_temp_header.currency_conversion_rate);
25989 x_khrv_rec.currency_conversion_date := NVL(p_intf_header.currency_conversion_date,
25990 p_temp_header.currency_conversion_date);
25991 x_khrv_rec.assignable_yn := NVL(p_intf_header.assignable_yn,p_temp_header.assignable_yn);
25992 x_khrv_rec.prefunding_eligible_yn := NVL(p_intf_header.prefunding_eligible_flag,p_temp_header.prefunding_eligible_yn);
25993 x_khrv_rec.credit_act_yn := NVL(p_intf_header.consumer_credit_act_deal_flag,
25994 p_temp_header.credit_act_yn); -- dedey for bug 4637590
25995
25996 -- Contract addl field, Bug 4558486
25997
25998 debug_message('Contract DFF...');
25999
26000 x_khrv_rec.validate_dff_yn := 'Y'; -- always validate DFF
26001 x_khrv_rec.attribute_category := NVL(p_intf_header.attribute_category,
26002 p_temp_header.attribute_category);
26003 debug_message('attribute_category: '||x_khrv_rec.attribute_category);
26004 x_khrv_rec.attribute1 := NVL(p_intf_header.attribute1,
26005 p_temp_header.attribute1);
26006 debug_message('attribute1: '||x_khrv_rec.attribute1);
26007 x_khrv_rec.attribute2 := NVL(p_intf_header.attribute2,
26008 p_temp_header.attribute2);
26009 debug_message('attribute2: '||x_khrv_rec.attribute2);
26010 x_khrv_rec.attribute3 := NVL(p_intf_header.attribute3,
26011 p_temp_header.attribute3);
26012 x_khrv_rec.attribute4 := NVL(p_intf_header.attribute4,
26013 p_temp_header.attribute4);
26014 x_khrv_rec.attribute5 := NVL(p_intf_header.attribute5,
26015 p_temp_header.attribute5);
26016 x_khrv_rec.attribute6 := NVL(p_intf_header.attribute6,
26017 p_temp_header.attribute6);
26018 x_khrv_rec.attribute7 := NVL(p_intf_header.attribute7,
26019 p_temp_header.attribute7);
26020 x_khrv_rec.attribute8 := NVL(p_intf_header.attribute8,
26021 p_temp_header.attribute8);
26022 x_khrv_rec.attribute9 := NVL(p_intf_header.attribute9,
26023 p_temp_header.attribute9);
26024 x_khrv_rec.attribute10 := NVL(p_intf_header.attribute10,
26025 p_temp_header.attribute10);
26026 x_khrv_rec.attribute11 := NVL(p_intf_header.attribute11,
26027 p_temp_header.attribute11);
26028 x_khrv_rec.attribute12 := NVL(p_intf_header.attribute12,
26029 p_temp_header.attribute12);
26030 x_khrv_rec.attribute13 := NVL(p_intf_header.attribute13,
26031 p_temp_header.attribute13);
26032 x_khrv_rec.attribute14 := NVL(p_intf_header.attribute14,
26033 p_temp_header.attribute14);
26034 x_khrv_rec.attribute15 := NVL(p_intf_header.attribute15,
26035 p_temp_header.attribute15);
26036 -- Contract addl field, Bug 4558486
26037
26038
26039 RETURN;
26040
26041 EXCEPTION
26042 WHEN pop_header_failed THEN
26043 NULL; -- caller will handle appropriate exception
26044 END populate_header_rec;
26045
26046 ------------------------------------------------------------------------------
26047 -- PROCEDURE check_payment_level
26048 -- This procedure determines payment level for SERVICE and FEE lines.
26049 -- If asset_number column is populated at SERVICE and FEE lines, payment
26050 -- will be attached to sub-line level.
26051 --
26052 -- If asset_number column is not populated at SERVICE and FEE lines, payment
26053 -- will be attached to top-line level.
26054 --
26055 -- Calls:
26056 -- Called By:
26057 -- load_input_record
26058 ------------------------------------------------------------------------------
26059 PROCEDURE check_payment_level(
26060 x_return_status OUT NOCOPY VARCHAR2,
26061 x_msg_count OUT NOCOPY VARCHAR2,
26062 x_msg_data OUT NOCOPY VARCHAR2,
26063 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
26064 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
26065 x_payment_level OUT NOCOPY VARCHAR2
26066 ) IS
26067
26068 l_proc_name VARCHAR2(35) := 'CHECK_PAYMENT_LEVEL';
26069
26070 CURSOR line_csr (p_cont_number OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
26071 p_line OKL_LINES_INTERFACE.LINE_NUMBER%TYPE) IS
26072 SELECT line_type,
26073 asset_number
26074 FROM okl_lines_interface
26075 WHERE contract_number_old = p_cont_number
26076 AND line_number = p_line;
26077
26078 l_line_type OKL_LINES_INTERFACE.LINE_TYPE%TYPE;
26079 l_asset_number OKL_LINES_INTERFACE.ASSET_NUMBER%TYPE;
26080
26081 BEGIN
26082 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26083 debug_message(l_proc_name);
26084
26085 x_payment_level := 'TOP'; -- default
26086
26087 l_line_type := NULL;
26088 l_asset_number := NULL;
26089
26090 OPEN line_csr (p_contract_number,
26091 p_line_number);
26092 FETCH line_csr INTO l_line_type,
26093 l_asset_number;
26094 CLOSE line_csr;
26095
26096 IF (l_line_type IN ('SERVICE', 'FEE')) THEN
26097 IF (l_asset_number IS NOT NULL) THEN
26098 x_payment_level := 'SUB';
26099 ELSE
26100 x_payment_level := 'TOP';
26101 END IF;
26102 ELSE
26103 x_payment_level := 'TOP'; -- For other lines attach payment at TOP level only
26104 END IF;
26105
26106 EXCEPTION
26107 WHEN OTHERS THEN
26108 okl_api.set_message(
26109 G_APP_NAME,
26110 G_UNEXPECTED_ERROR,
26111 'OKL_SQLCODE',
26112 SQLCODE,
26113 'OKL_SQLERRM',
26114 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26115 );
26116 x_return_status := OKL_API.G_RET_STS_ERROR;
26117
26118 END check_payment_level;
26119
26120
26121 ------------------------------------------------------------------------------
26122 -- PROCEDURE create_lessee_as_vendor
26123 -- This procedure creates lessee as vendor and attach pay site to it
26124 -- Calls:
26125 -- Called By:
26126 -- load_input_record
26127 ------------------------------------------------------------------------------
26128 PROCEDURE create_lessee_as_vendor(
26129 x_return_status OUT NOCOPY VARCHAR2,
26130 x_msg_count OUT NOCOPY NUMBER,
26131 x_msg_data OUT NOCOPY VARCHAR2,
26132 p_chr_id IN NUMBER,
26133 p_contract_num IN VARCHAR2,
26134 p_cpl_id IN NUMBER,
26135 p_lessee_vendor_id IN NUMBER,
26136 p_lessee_vendor_name IN VARCHAR2,
26137 p_lessee_site_id IN NUMBER,
26138 p_lessee_site_code IN VARCHAR2,
26139 p_authoring_org_id IN NUMBER
26140 ) IS
26141
26142 l_proc_name VARCHAR2(35) := 'CREATE_LESSEE_AS_VENDOR';
26143 CURSOR vendor_csr (p_vendor_id NUMBER,
26144 p_vendor_name VARCHAR2) IS
26145 SELECT vendor_id
26146 FROM po_vendors
26147 WHERE ( (vendor_id = p_vendor_id
26148 AND
26149 p_vendor_id IS NOT NULL
26150 )
26151 OR (
26152 vendor_name = p_vendor_name
26153 AND
26154 p_vendor_name IS NOT NULL
26155 )
26156 );
26157
26158 CURSOR vendor_site_csr (p_vendor_id NUMBER,
26159 p_site_id NUMBER,
26160 p_site_code VARCHAR2,
26161 p_auth_org_id NUMBER) IS
26162 select vendor_site_id
26163 from po_vendor_sites_all
26164 where ( (vendor_site_id = p_site_id
26165 AND
26166 p_site_id IS NOT NULL)
26167 OR
26168 (vendor_site_code = p_site_code
26169 AND
26170 p_site_code IS NOT NULL)
26171 )
26172 and org_id = p_auth_org_id
26173 and vendor_id = p_vendor_id;
26174
26175 l_vendor_id po_vendors.vendor_id%TYPE;
26176 l_vendor_site_id po_vendor_sites_all.vendor_site_id%TYPE;
26177 l_ppydv_rec ppydv_rec_type;
26178 x_ppydv_rec ppydv_rec_type;
26179
26180 lessee_failed EXCEPTION;
26181
26182 BEGIN
26183
26184 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26185 debug_message(l_proc_name);
26186
26187 debug_message('------>Vendor: '||p_lessee_vendor_id||', '||p_lessee_vendor_name);
26188 debug_message('------>Vendor Site: '||p_lessee_site_id||', '||p_lessee_site_code);
26189
26190 IF (p_lessee_vendor_id IS NOT NULL
26191 OR
26192 p_lessee_vendor_name IS NOT NULL) THEN
26193
26194 -- Check vendor
26195 OPEN vendor_csr (p_lessee_vendor_id,
26196 p_lessee_vendor_name);
26197 FETCH vendor_csr INTO l_vendor_id;
26198 IF vendor_csr%NOTFOUND THEN
26199 okl_api.set_message(
26200 G_APP_NAME,
26201 G_INVALID_VALUE,
26202 'CONTRACT_NUM',
26203 p_contract_num,
26204 'COL_NAME',
26205 'LESSEE_AS_VENDOR_ID OR LESSEE_AS_VENDOR_NAME',
26206 'COL_VALUE',
26207 p_lessee_vendor_id||', '||p_lessee_vendor_name
26208 );
26209 RAISE lessee_failed;
26210 END IF;
26211 CLOSE vendor_csr;
26212
26213 debug_message('------> Vendor valid');
26214 -- Check vendor Pay site
26215 OPEN vendor_site_csr(l_vendor_id,
26216 p_lessee_site_id,
26217 p_lessee_site_code,
26218 p_authoring_org_id);
26219
26220 FETCH vendor_site_csr INTO l_vendor_site_id;
26221 IF vendor_site_csr%NOTFOUND THEN
26222 okl_api.set_message(
26223 G_APP_NAME,
26224 G_INVALID_VALUE,
26225 'CONTRACT_NUM',
26226 p_contract_num,
26227 'COL_NAME',
26228 'LESSEE_AS_VENDOR_SITE_ID OR LESSEE_AS_VENDOR_SITE_CODE',
26229 'COL_VALUE',
26230 p_lessee_site_id||', '||p_lessee_site_code
26231 );
26232 RAISE lessee_failed;
26233 END IF;
26234 CLOSE vendor_site_csr;
26235 debug_message('------> Vendor site valid');
26236
26237 -- create lessee as vendor here
26238 l_ppydv_rec.cpl_id := p_cpl_id;
26239 l_ppydv_rec.vendor_id := l_vendor_id;
26240 l_ppydv_rec.pay_site_id := l_vendor_site_id;
26241
26242 debug_message('------> Before creation of lessee as vendor');
26243 okl_lessee_as_vendor_pvt.create_lessee_as_vendor(
26244 p_api_version => 1.0,
26245 p_init_msg_list => OKL_API.G_FALSE,
26246 x_return_status => x_return_status,
26247 x_msg_count => x_msg_count,
26248 x_msg_data => x_msg_data,
26249 p_chr_id => p_chr_id,
26250 p_ppydv_rec => l_ppydv_rec,
26251 x_ppydv_rec => x_ppydv_rec
26252 );
26253
26254 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26255 RAISE lessee_failed;
26256 END IF;
26257 debug_message('------> After creation of lessee as vendor '||x_return_status);
26258
26259 END IF; -- vendor_id NOT NULL
26260
26261 EXCEPTION
26262 WHEN lessee_failed THEN
26263 IF vendor_csr%ISOPEN THEN
26264 CLOSE vendor_csr;
26265 END IF;
26266 IF vendor_site_csr%ISOPEN THEN
26267 CLOSE vendor_site_csr;
26268 END IF;
26269 x_return_status := OKL_API.G_RET_STS_ERROR;
26270
26271 WHEN OTHERS THEN
26272 okl_api.set_message(
26273 G_APP_NAME,
26274 G_UNEXPECTED_ERROR,
26275 'OKL_SQLCODE',
26276 SQLCODE,
26277 'OKL_SQLERRM',
26278 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26279 );
26280 x_return_status := OKL_API.G_RET_STS_ERROR;
26281
26282 END create_lessee_as_vendor;
26283
26284 ------------------------------------------------------------------------------
26285 -- PROCEDURE get_txd_id
26286 -- This procedure gets okl_txd_assets_b.id, required to update in case of
26287 -- released asset import with mutiple tax books.
26288 -- Calls:
26289 -- Called By:
26290 -- load_input_record
26291 ------------------------------------------------------------------------------
26292 PROCEDURE get_txd_id (
26293 x_return_status OUT NOCOPY VARCHAR2,
26294 x_msg_count OUT NOCOPY NUMBER,
26295 x_msg_data OUT NOCOPY VARCHAR2,
26296 p_contract_number IN VARCHAR2,
26297 p_tal_id IN NUMBER,
26298 p_tax_book IN VARCHAR2,
26299 x_txd_id OUT NOCOPY OKL_TXD_ASSETS_B.ID%TYPE
26300 ) IS
26301
26302 CURSOR txd_csr (p_tal_id NUMBER,
26303 p_tax_book VARCHAR2) IS
26304 SELECT id
26305 FROM okl_txd_assets_b
26306 WHERE tal_id = p_tal_id
26307 AND tax_book = p_tax_book;
26308
26309 l_proc_name VARCHAR2(35) := 'GET_TXD_ID';
26310 BEGIN
26311
26312 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26313 debug_message(l_proc_name);
26314
26315 OPEN txd_csr (p_tal_id,
26316 p_tax_book);
26317 FETCH txd_csr INTO x_txd_id;
26318 IF (txd_csr%NOTFOUND) THEN
26319 okl_api.set_message(
26320 G_APP_NAME,
26321 G_INVALID_VALUE,
26322 'CONTRACT_NUM',
26323 p_contract_number,
26324 'COL_NAME',
26325 'TAX_BOOK',
26326 'COL_VALUE',
26327 p_tax_book
26328 );
26329
26330 x_return_status := OKL_API.G_RET_STS_ERROR;
26331 END IF;
26332 CLOSE txd_csr;
26333
26334 EXCEPTION
26335
26336 WHEN OTHERS THEN
26337
26338 okl_api.set_message(
26339 G_APP_NAME,
26340 G_UNEXPECTED_ERROR,
26341 'OKL_SQLCODE',
26342 SQLCODE,
26343 'OKL_SQLERRM',
26344 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26345 );
26346 x_return_status := OKL_API.G_RET_STS_ERROR;
26347 END get_txd_id;
26348
26349 ------------------------------------------------------------------------------
26350 -- PROCEDURE create_release_asset_rule
26351 -- This procedure creates release asset rule at contract header
26352 -- Calls:
26353 -- Called By:
26354 -- load_input_record
26355 ------------------------------------------------------------------------------
26356 PROCEDURE create_release_asset_rule(
26357 x_return_status OUT NOCOPY VARCHAR2,
26358 x_msg_count OUT NOCOPY NUMBER,
26359 x_msg_data OUT NOCOPY VARCHAR2,
26360 p_chr_id IN NUMBER,
26361 p_release_asset_flag IN VARCHAR2
26362 ) IS
26363
26364 l_proc_name VARCHAR2(35) := 'CREATE_RELEASE_ASSET_RULE';
26365
26366 l_rgpv_rec rgpv_rec_type;
26367 x_rgpv_rec rgpv_rec_type;
26368
26369 l_rulv_rec rulv_rec_type;
26370 x_rulv_rec rulv_rec_type;
26371
26372 l_rgp_id NUMBER := NULL;
26373 rel_rule_failed EXCEPTION;
26374
26375 BEGIN
26376
26377 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26378 debug_message(l_proc_name);
26379
26380 l_rgpv_rec := NULL;
26381 l_rgp_id := NULL;
26382
26383 l_rgpv_rec.rgd_code := 'LARLES';
26384 l_rgpv_rec.chr_id := p_chr_id;
26385 l_rgpv_rec.dnz_chr_id := p_chr_id;
26386 l_rgpv_rec.cle_id := NULL;
26387 l_rgpv_rec.rgp_type := 'KRG';
26388
26389 l_rulv_rec := NULL;
26390
26391 l_rulv_rec.dnz_chr_id := p_chr_id;
26392 l_rulv_rec.rule_information_category := 'LARLES';
26393 -- Bug #15992711 : Start
26394 -- The rule information should always be null
26395 -- l_rulv_rec.rule_information1 := p_release_asset_flag;
26396 l_rulv_rec.rule_information1 := NULL;
26397 -- Bug #15992711 : Start
26398
26399 l_rulv_rec.std_template_yn := 'N';
26400 l_rulv_rec.warn_yn := 'N';
26401
26402 create_rule_group_and_rule(
26403 x_return_status => x_return_status,
26404 x_msg_count => x_msg_count,
26405 x_msg_data => x_msg_data,
26406 p_rgp_id => l_rgp_id,
26407 p_rgpv_rec => l_rgpv_rec,
26408 p_rulv_rec => l_rulv_rec,
26409 x_rgpv_rec => x_rgpv_rec,
26410 x_rulv_rec => x_rulv_rec
26411 );
26412
26413 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26414 raise rel_rule_failed;
26415 END IF;
26416
26417 debug_message('------>Rule: LARLES/LARLES processed');
26418
26419 EXCEPTION
26420
26421 WHEN rel_rule_failed THEN
26422 x_return_status := OKL_API.G_RET_STS_ERROR;
26423
26424 WHEN OTHERS THEN
26425 okl_api.set_message(
26426 G_APP_NAME,
26427 G_UNEXPECTED_ERROR,
26428 'OKL_SQLCODE',
26429 SQLCODE,
26430 'OKL_SQLERRM',
26431 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26432 );
26433 x_return_status := OKL_API.G_RET_STS_ERROR;
26434 END create_release_asset_rule;
26435
26436 ------------------------------------------------------------------------------
26437 -- PROCEDURE process_release_asset
26438 -- This procedure creates asset line using released asset
26439 -- Calls:
26440 -- Called By:
26441 -- load_input_record
26442 ------------------------------------------------------------------------------
26443
26444 PROCEDURE process_release_asset(
26445 x_return_status OUT NOCOPY VARCHAR2,
26446 x_msg_count OUT NOCOPY NUMBER,
26447 x_msg_data OUT NOCOPY VARCHAR2,
26448 p_chr_id IN VARCHAR2,
26449 p_contract_number IN VARCHAR2,
26450 p_asset_number IN VARCHAR2,
26451 p_asset_id IN OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE,
26452 p_line_number IN NUMBER,
26453 p_re_lease_yn IN VARCHAR2, -- Bug #15992711 : added new parameter, to pass value of re_lease_yn flag
26454 p_install_site_id IN okl_lines_interface.install_site_id%TYPE,
26455 p_install_site_num IN okl_lines_interface.install_site_number%TYPE,
26456 p_unit_price IN okl_lines_interface.original_cost%TYPE,
26457 p_deprn_method IN okl_lines_interface.depreciation_method_code%TYPE,
26458 p_life_in_months IN okl_lines_interface.life_in_months%TYPE,
26459 p_deprn_rate IN okl_lines_interface.depreciation_rate%TYPE,
26460 p_asset_location_id IN okl_lines_interface.asset_location_id%TYPE,
26461 p_asset_loc_segment1 IN okl_lines_interface.asset_location_segment1%TYPE,
26462 p_asset_loc_segment2 IN okl_lines_interface.asset_location_segment2%TYPE,
26463 p_asset_loc_segment3 IN okl_lines_interface.asset_location_segment3%TYPE,
26464 p_asset_loc_segment4 IN okl_lines_interface.asset_location_segment4%TYPE,
26465 p_asset_loc_segment5 IN okl_lines_interface.asset_location_segment5%TYPE,
26466 p_asset_loc_segment6 IN okl_lines_interface.asset_location_segment6%TYPE,
26467 p_asset_loc_segment7 IN okl_lines_interface.asset_location_segment7%TYPE,
26468 p_salvage_value IN okl_lines_interface.salvage_value%TYPE,
26469 p_salvage_ptg IN okl_lines_interface.salvage_value_percent%TYPE,
26470 p_residual_grnty_amt IN okl_lines_interface.residual_amount_guarantee%TYPE,
26471 p_residual_code IN okl_lines_interface.guarantor_type_code%TYPE,
26472 p_residual_ptg IN okl_lines_interface.residual_percent%TYPE,
26473 p_residual_amt IN okl_lines_interface.residual_amount%TYPE,
26474 p_tax_book IN okl_lines_interface.tax_book%TYPE,
26475 p_tax_deprn IN okl_lines_interface.deprn_method_tax%TYPE,
26476 p_tax_life_in_mnth IN okl_lines_interface.life_in_months_tax%TYPE,
26477 p_tax_deprn_rate IN okl_lines_interface.deprn_rate_tax%TYPE,
26478 p_pth_base_payout_basis IN okl_lines_interface.pth_base_payout_basis%TYPE,
26479 p_pth_base_stream_code IN okl_lines_interface.pth_base_stream_code%TYPE,
26480 p_pth_base_stream_purpose_code IN okl_lines_interface.pth_base_stream_purpose_code%TYPE,
26481 p_pth_start_date IN okl_lines_interface.pth_start_date%TYPE,
26482 p_pth_evg_payout_basis IN okl_lines_interface.pth_evg_payout_basis%TYPE,
26483 p_pth_payout_basis_formula IN okl_lines_interface.pth_payout_basis_formula%TYPE,
26484 p_pth_evg_stream_code IN okl_lines_interface.pth_evg_stream_code%TYPE,
26485 p_pth_evg_stream_purpose_code IN okl_lines_interface.pth_evg_stream_purpose_code%TYPE,
26486 p_attribute_category IN okl_lines_interface.attribute_category%TYPE,
26487 p_attribute1 IN okl_lines_interface.attribute1%TYPE,
26488 p_attribute2 IN okl_lines_interface.attribute2%TYPE,
26489 p_attribute3 IN okl_lines_interface.attribute3%TYPE,
26490 p_attribute4 IN okl_lines_interface.attribute4%TYPE,
26491 p_attribute5 IN okl_lines_interface.attribute5%TYPE,
26492 p_attribute6 IN okl_lines_interface.attribute6%TYPE,
26493 p_attribute7 IN okl_lines_interface.attribute7%TYPE,
26494 p_attribute8 IN okl_lines_interface.attribute8%TYPE,
26495 p_attribute9 IN okl_lines_interface.attribute9%TYPE,
26496 p_attribute10 IN okl_lines_interface.attribute10%TYPE,
26497 p_attribute11 IN okl_lines_interface.attribute11%TYPE,
26498 p_attribute12 IN okl_lines_interface.attribute12%TYPE,
26499 p_attribute13 IN okl_lines_interface.attribute13%TYPE,
26500 p_attribute14 IN okl_lines_interface.attribute14%TYPE,
26501 p_attribute15 IN okl_lines_interface.attribute15%TYPE,
26502 --Bug# 16344245
26503 p_amount_balance_legacy IN okl_lines_interface.amount_balance_legacy%TYPE,
26504 p_dt_effective_balance_legacy IN okl_lines_interface.dt_effective_balance_legacy%TYPE,
26505 --Bug# 16344245
26506 x_clev_fin_rec OUT NOCOPY clev_rec_type,
26507 x_clev_model_rec OUT NOCOPY clev_rec_type,
26508 x_clev_fa_rec OUT NOCOPY clev_rec_type,
26509 x_clev_ib_rec OUT NOCOPY clev_rec_type
26510 ) IS
26511
26512 l_proc_name VARCHAR2(35) := 'PROCESS_RELEASE_ASSET';
26513 release_failed EXCEPTION;
26514
26515 l_clev_fin_rec clev_rec_type;
26516 l_klev_fin_rec klev_rec_type;
26517 l_clev_fa_rec clev_rec_type;
26518 l_cimv_fa_rec cimv_rec_type;
26519 l_talv_fa_rec talv_rec_type;
26520 l_itiv_ib_tbl itiv_tbl_type;
26521 l_cimv_model_rec cimv_rec_type;
26522 x_lse_id NUMBER;
26523 x_comb_id NUMBER;
26524 x_install_site_id NUMBER;
26525
26526 x_txd_id NUMBER;
26527 l_tal_id NUMBER;
26528
26529 l_adpv_rec adpv_rec_type;
26530 x_adpv_rec adpv_rec_type;
26531
26532 x_party_pmnt_hdr_tbl_out pphv_tbl_type;
26533 l_counter NUMBER;
26534
26535 BEGIN
26536
26537 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26538 debug_message(l_proc_name);
26539
26540 debug_message('------> Contract id: '||p_chr_id);
26541 debug_message('------> Asset id: '||p_asset_id);
26542
26543 debug_message('------> Residual : '||p_residual_ptg||'/'||p_residual_amt);
26544 debug_message('------> Unit Price : '||p_unit_price);
26545 l_cimv_fa_rec.object1_id1 := p_asset_id;
26546 l_cimv_fa_rec.object1_id2 := '#';
26547 l_clev_fin_rec.dnz_chr_id := p_chr_id;
26548
26549 IF (p_unit_price IS NOT NULL) THEN
26550 l_clev_fin_rec.price_unit := p_unit_price;
26551 l_talv_fa_rec.original_cost := p_unit_price;
26552 END IF;
26553
26554 IF (p_residual_grnty_amt IS NOT NULL) THEN
26555 l_klev_fin_rec.residual_grnty_amount := p_residual_grnty_amt;
26556 END IF;
26557
26558 IF (p_residual_ptg IS NOT NULL) THEN
26559 l_klev_fin_rec.residual_percentage := p_residual_ptg;
26560 END IF;
26561
26562 IF (p_residual_amt IS NOT NULL) THEN
26563 l_klev_fin_rec.residual_value := p_residual_amt;
26564 END IF;
26565 l_klev_fin_rec.residual_code := NVL(p_residual_code,'NONE');
26566
26567 IF (p_deprn_method IS NOT NULL) THEN
26568 l_talv_fa_rec.deprn_method := p_deprn_method;
26569 END IF;
26570
26571 IF (p_life_in_months IS NOT NULL) THEN
26572 l_talv_fa_rec.life_in_months := p_life_in_months;
26573 END IF;
26574
26575 IF (p_deprn_rate IS NOT NULL) THEN
26576 l_talv_fa_rec.deprn_rate := p_deprn_rate;
26577 END IF;
26578
26579 IF (p_salvage_value IS NOT NULL) THEN
26580 l_talv_fa_rec.salvage_value := p_salvage_value;
26581 END IF;
26582
26583 IF (p_salvage_value IS NOT NULL) THEN
26584 l_talv_fa_rec.percent_salvage_value := p_salvage_ptg;
26585 END IF;
26586
26587 x_comb_id := NULL;
26588 get_flexid(
26589 x_return_status => x_return_status,
26590 x_msg_count => x_msg_count,
26591 x_msg_data => x_msg_data,
26592 p_type => 'ASSET_LOCATION',
26593 p_contract_number => p_contract_number,
26594 p_line_number => p_line_number,
26595 p_comb_id => p_asset_location_id,
26596 p_segment1 => p_asset_loc_segment1,
26597 p_segment2 => p_asset_loc_segment2,
26598 p_segment3 => p_asset_loc_segment3,
26599 p_segment4 => p_asset_loc_segment4,
26600 p_segment5 => p_asset_loc_segment5,
26601 p_segment6 => p_asset_loc_segment6,
26602 p_segment7 => p_asset_loc_segment7,
26603 x_comb_id => x_comb_id
26604 );
26605 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26606 x_return_status := OKL_API.G_RET_STS_ERROR;
26607 RAISE release_failed;
26608 END IF;
26609
26610 IF (x_comb_id IS NOT NULL) THEN
26611 l_talv_fa_rec.fa_location_id := x_comb_id;
26612 END IF;
26613
26614 IF (p_install_site_id IS NOT NULL
26615 OR
26616 p_install_site_num IS NOT NULL) THEN
26617 get_install_site_id(
26618 x_return_status => x_return_status,
26619 x_msg_count => x_msg_count,
26620 x_msg_data => x_msg_data,
26621 p_contract_number => p_contract_number,
26622 p_line_number => p_line_number,
26623 p_install_site_id => p_install_site_id,
26624 p_install_site_number => p_install_site_num,
26625 x_install_site_id => x_install_site_id
26626 );
26627
26628 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26629 x_return_status := OKL_API.G_RET_STS_ERROR;
26630 RAISE release_failed;
26631 END IF;
26632 l_itiv_ib_tbl(1).object_id1_new := x_install_site_id;
26633 END IF;
26634
26635 -- Contract addl field, Bug 4558486
26636
26637 debug_message('Contract release Asset line DFF...'||'Line#: '||p_line_number);
26638
26639 l_klev_fin_rec.validate_dff_yn := 'Y'; -- always validate DFF
26640 l_klev_fin_rec.attribute_category := p_attribute_category;
26641 debug_message('attribute_category: '||l_klev_fin_rec.attribute_category);
26642 l_klev_fin_rec.attribute1 := p_attribute1;
26643 debug_message('attribute1: '||l_klev_fin_rec.attribute1);
26644 l_klev_fin_rec.attribute2 := p_attribute2;
26645 debug_message('attribute2: '||l_klev_fin_rec.attribute2);
26646 l_klev_fin_rec.attribute3 := p_attribute3;
26647 l_klev_fin_rec.attribute4 := p_attribute4;
26648 l_klev_fin_rec.attribute5 := p_attribute5;
26649 l_klev_fin_rec.attribute6 := p_attribute6;
26650 l_klev_fin_rec.attribute7 := p_attribute7;
26651 l_klev_fin_rec.attribute8 := p_attribute8;
26652 l_klev_fin_rec.attribute9 := p_attribute9;
26653 l_klev_fin_rec.attribute10 := p_attribute10;
26654 l_klev_fin_rec.attribute11 := p_attribute11;
26655 l_klev_fin_rec.attribute12 := p_attribute12;
26656 l_klev_fin_rec.attribute13 := p_attribute13;
26657 l_klev_fin_rec.attribute14 := p_attribute14;
26658 l_klev_fin_rec.attribute15 := p_attribute15;
26659 l_klev_fin_rec.re_lease_yn := p_re_lease_yn; -- Bug #15992711 added the line
26660
26661 -- Contract addl field, Bug 4558486
26662
26663 --Bug# 16344245
26664 debug_message('Contract Asset line Balance from Legacy...'||'Line#: '||p_line_number);
26665
26666 l_klev_fin_rec.amount_balance_legacy := p_amount_balance_legacy;
26667 l_klev_fin_rec.dt_effective_balance_legacy := p_dt_effective_balance_legacy;
26668
26669 debug_message('amount_balance_legacy: '||l_klev_fin_rec.amount_balance_legacy);
26670 debug_message('dt_effective_balance_legacy: '||l_klev_fin_rec.dt_effective_balance_legacy);
26671 --Bug# 16344245
26672
26673 debug_message('======>Before calling create_all_line');
26674 okl_create_kle_pvt.Create_all_line(
26675 p_api_version => 1.0,
26676 p_init_msg_list => OKL_API.G_FALSE,
26677 x_return_status => x_return_status,
26678 x_msg_count => x_msg_count,
26679 x_msg_data => x_msg_data,
26680 p_new_yn => 'N',
26681 p_asset_number => p_asset_number,-- Bug #15992711 changed from NULL, --p_asset_number,
26682 p_clev_fin_rec => l_clev_fin_rec,
26683 p_klev_fin_rec => l_klev_fin_rec,
26684 p_cimv_model_rec => l_cimv_model_rec,
26685 p_clev_fa_rec => l_clev_fa_rec,
26686 p_cimv_fa_rec => l_cimv_fa_rec,
26687 p_talv_fa_rec => l_talv_fa_rec,
26688 p_itiv_ib_tbl => l_itiv_ib_tbl,
26689 x_clev_fin_rec => x_clev_fin_rec,
26690 x_clev_model_rec => x_clev_model_rec,
26691 x_clev_fa_rec => x_clev_fa_rec,
26692 x_clev_ib_rec => x_clev_ib_rec
26693 );
26694
26695 debug_message('======>After calling create_all_line '||x_return_status);
26696
26697 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26698 x_return_status := OKL_API.G_RET_STS_ERROR;
26699 RAISE release_failed;
26700 END IF;
26701
26702 debug_message('------> clev_fin_rec.id: '||x_clev_fin_rec.id);
26703 debug_message('------> clev_model_rec.id: '||x_clev_model_rec.id);
26704 debug_message('------> clev_fa_rec.id: '||x_clev_fa_rec.id);
26705 debug_message('------> clev_ib_rec.id: '||x_clev_ib_rec.id);
26706
26707 debug_message('------>Line created');
26708
26709 IF (p_pth_evg_payout_basis is NOT NULL) THEN
26710 debug_message('------>Create party payment starts for Released Asset: '||p_asset_number || '/ '|| p_line_number);
26711 create_party_payment_hdr(
26712 x_return_status => x_return_status,
26713 x_msg_count => x_msg_count,
26714 x_msg_data => x_msg_data,
26715 p_contract_id => x_clev_fin_rec.dnz_chr_id,
26716 p_line_id => x_clev_fin_rec.id,
26717 p_line_type => 'ASSET',
26718 p_pth_start_date => p_pth_start_date,
26719 p_pth_base_payout_basis => p_pth_base_payout_basis,
26720 p_pth_base_stream_code => p_pth_base_stream_code,
26721 p_pth_base_stream_purpose_code => p_pth_base_stream_purpose_code,
26722 p_pth_evg_payout_basis => p_pth_evg_payout_basis,
26723 p_pth_payout_basis_formula => p_pth_payout_basis_formula,
26724 p_pth_evg_stream_code => p_pth_evg_stream_code,
26725 p_pth_evg_stream_purpose_code => p_pth_evg_stream_purpose_code,
26726 x_party_pmnt_hdr_tbl => x_party_pmnt_hdr_tbl_out
26727 );
26728
26729 debug_message('------>Create party payment ends '||x_return_status);
26730 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26731 x_return_status := OKL_API.G_RET_STS_ERROR;
26732 RAISE release_failed;
26733 END IF;
26734 IF (x_party_pmnt_hdr_tbl_out.COUNT > 0 )THEN
26735 l_counter := x_party_pmnt_hdr_tbl_out.FIRST;
26736 LOOP
26737 IF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'BASE') THEN
26738 g_base_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
26739 ELSIF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'EVERGREEN') THEN
26740 g_evg_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
26741 END IF;
26742 EXIT WHEN (l_counter = x_party_pmnt_hdr_tbl_out.LAST);
26743 l_counter := x_party_pmnt_hdr_tbl_out.NEXT(l_counter);
26744 END LOOP;
26745 END IF;
26746 END IF;
26747
26748 -- Update TXD record for tax book, only if tax book is present
26749 IF (p_tax_book IS NOT NULL) THEN
26750 get_tal_id(
26751 x_return_status => x_return_status,
26752 p_fa_line_id => x_clev_fa_rec.id,
26753 x_tal_id => l_tal_id);
26754
26755 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26756 x_return_status := OKL_API.G_RET_STS_ERROR;
26757 RAISE release_failed;
26758 END IF;
26759
26760 debug_message('------> tal_id : '||l_tal_id);
26761
26762 get_txd_id (
26763 x_return_status => x_return_status,
26764 x_msg_count => x_msg_count,
26765 x_msg_data => x_msg_data,
26766 p_contract_number => p_contract_number,
26767 p_tal_id => l_tal_id,
26768 p_tax_book => p_tax_book,
26769 x_txd_id => x_txd_id
26770 );
26771
26772 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26773 x_return_status := OKL_API.G_RET_STS_ERROR;
26774 RAISE release_failed;
26775 END IF;
26776
26777 l_adpv_rec.id := x_txd_id;
26778 l_adpv_rec.asset_number := p_asset_number;
26779 l_adpv_rec.tal_id := l_tal_id;
26780
26781 IF (p_tax_deprn IS NOT NULL) THEN
26782 l_adpv_rec.deprn_method_tax := p_tax_deprn;
26783 END IF;
26784
26785 IF (p_tax_deprn_rate IS NOT NULL) THEN
26786 l_adpv_rec.deprn_rate_tax := p_tax_deprn_rate;
26787 END IF;
26788
26789 IF (p_tax_life_in_mnth IS NOT NULL) THEN
26790 l_adpv_rec.life_in_months_tax := p_tax_life_in_mnth;
26791 END IF;
26792
26793 okl_txd_assets_pub.update_txd_asset_def(
26794 p_api_version => 1.0,
26795 p_init_msg_list => OKL_API.G_FALSE,
26796 x_return_status => x_return_status,
26797 x_msg_count => x_msg_count,
26798 x_msg_data => x_msg_data,
26799 p_adpv_rec => l_adpv_rec,
26800 x_adpv_rec => x_adpv_rec
26801 );
26802
26803 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26804 x_return_status := OKL_API.G_RET_STS_ERROR;
26805 RAISE release_failed;
26806 END IF;
26807
26808 debug_message('------>TXD Line Updated');
26809
26810 END IF; -- p_asset_number not null
26811
26812 EXCEPTION
26813
26814 WHEN release_failed THEN
26815 x_return_status := OKL_API.G_RET_STS_ERROR;
26816
26817 WHEN OTHERS THEN
26818 okl_api.set_message(
26819 G_APP_NAME,
26820 G_UNEXPECTED_ERROR,
26821 'OKL_SQLCODE',
26822 SQLCODE,
26823 'OKL_SQLERRM',
26824 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26825 );
26826 x_return_status := OKL_API.G_RET_STS_ERROR;
26827
26828 END process_release_asset;
26829
26830 ------------------------------------------------------------------------------
26831 -- PROCEDURE process_addon
26832 -- This procedure processes and creates addon line for each asset.
26833 -- Calls:
26834 -- Called By:
26835 -- load_input_record
26836 ------------------------------------------------------------------------------
26837
26838 PROCEDURE process_addon(
26839 x_return_status OUT NOCOPY VARCHAR2,
26840 x_msg_count OUT NOCOPY NUMBER,
26841 x_msg_data OUT NOCOPY VARCHAR2,
26842 p_auth_org_id IN NUMBER,
26843 p_contract_num IN VARCHAR2,
26844 p_chr_id IN NUMBER,
26845 p_fa_cle_id IN NUMBER,
26846 p_asset_num IN VARCHAR2,
26847 p_model_line_id IN NUMBER,
26848 p_number_of_items IN NUMBER
26849 ) IS
26850
26851 subtype clev_tbl_type is OKL_CREATE_KLE_PUB.clev_tbl_type;
26852 subtype klev_tbl_type is OKL_CREATE_KLE_PUB.klev_tbl_type;
26853 subtype cimv_tbl_type is OKL_CREATE_KLE_PUB.cimv_tbl_type;
26854
26855 -- Not needed these following three lines : AKP
26856 /*subtype clev_rec_type is OKL_CREATE_KLE_PUB.clev_rec_type;
26857 subtype klev_rec_type is OKL_CREATE_KLE_PUB.klev_rec_type;
26858 subtype cimv_rec_type is OKL_CREATE_KLE_PUB.cimv_rec_type; */
26859
26860 l_clev_tbl clev_tbl_type;
26861 l_klev_tbl klev_tbl_type;
26862 l_cimv_tbl cimv_tbl_type;
26863
26864 x_clev_tbl clev_tbl_type;
26865 x_klev_tbl klev_tbl_type;
26866 x_cimv_tbl cimv_tbl_type;
26867
26868 l_clev_rec clev_rec_type;
26869 l_klev_rec klev_rec_type;
26870 x_fin_clev_rec clev_rec_type;
26871 x_fin_klev_rec klev_rec_type;
26872 l_cimv_rec cimv_rec_type;
26873
26874 l_proc_name VARCHAR2(35):= 'PROCESS_ADDON';
26875 addon_failed EXCEPTION;
26876
26877 x_inventory_org_id NUMBER;
26878 x_inventory_item_id NUMBER;
26879
26880 x_asset_vendor_id NUMBER;
26881 p_cplv_rec cplv_rec_type;
26882 x_cplv_rec cplv_rec_type;
26883 l_kplv_rec kplv_rec_type;
26884 x_kplv_rec kplv_rec_type;
26885
26886 x_ship_to_site_id okx_party_site_uses_v.id1%TYPE;
26887 p_sidv_rec sidv_rec_type;
26888 x_sidv_rec sidv_rec_type;
26889
26890 CURSOR addon_csr (p_contract_number VARCHAR2,
26891 p_asset_number VARCHAR2) IS
26892 SELECT *
26893 FROM okl_lines_interface
26894 WHERE line_type = 'ASSET_ADDON'
26895 AND contract_number_old = p_contract_number
26896 AND asset_number = p_asset_number;
26897
26898 CURSOR okl_party_csr (p_contract_number_old VARCHAR2,
26899 p_line_number NUMBER) IS
26900 SELECT *
26901 FROM okl_party_roles_interface
26902 WHERE contract_number_old = p_contract_number_old
26903 AND ( (line_number = p_line_number
26904 AND
26905 p_line_number IS NOT NULL
26906 )
26907 OR
26908 (line_number IS NULL
26909 AND
26910 p_line_number IS NULL
26911 )
26912 );
26913
26914 BEGIN
26915
26916 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26917 debug_message(l_proc_name);
26918
26919 FOR addon_rec IN addon_csr (p_contract_num,
26920 p_asset_num)
26921 LOOP
26922 debug_message('Processing Addon line number: '||addon_rec.line_number);
26923 -- validate addon
26924
26925 -- Get Item and Organization Info, for All line type
26926 IF (addon_rec.inventory_item_id IS NOT NULL
26927 OR
26928 addon_rec.inventory_item_name IS NOT NULL) THEN
26929 get_inventory_org_item_id(
26930 x_return_status => x_return_status,
26931 x_msg_count => x_msg_count,
26932 x_msg_data => x_msg_data,
26933 p_contract_number => p_contract_num,
26934 p_line_number => addon_rec.line_number,
26935 p_line_type => addon_rec.line_type,
26936 p_inventory_org_id => p_auth_org_id,
26937 p_inventory_item_id => addon_rec.inventory_item_id,
26938 p_inventory_item_name => addon_rec.inventory_item_name,
26939 x_inventory_org_id => x_inventory_org_id,
26940 x_inventory_item_id => x_inventory_item_id
26941 );
26942
26943 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26944 x_return_status := OKL_API.G_RET_STS_ERROR;
26945 RAISE addon_failed;
26946 END IF;
26947
26948 -- Populate records and call create addon api
26949 l_clev_rec.cle_id := p_model_line_id;
26950 l_clev_rec.dnz_chr_id := p_chr_id;
26951 l_clev_rec.comments := addon_rec.DESCRIPTION;
26952 l_clev_rec.price_unit := addon_rec.ORIGINAL_COST;
26953 l_clev_rec.exception_yn := 'N';
26954
26955 l_klev_rec.MANUFACTURER_NAME := addon_rec.MAKE;
26956 l_klev_rec.MODEL_NUMBER := addon_rec.MODEL;
26957 l_klev_rec.YEAR_OF_MANUFACTURE := addon_rec.YEAR_OF_MANUFACTURE;
26958
26959 l_cimv_rec.object1_id1 := x_inventory_item_id;
26960 l_cimv_rec.object1_id2 := x_inventory_org_id;
26961 l_cimv_rec.exception_yn := 'N';
26962 l_cimv_rec.number_of_items := p_number_of_items;
26963
26964 l_clev_tbl(1) := l_clev_rec;
26965 l_klev_tbl(1) := l_klev_rec;
26966 l_cimv_tbl(1) := l_cimv_rec;
26967
26968 okl_create_kle_pub.create_add_on_line(
26969 p_api_version => 1,
26970 p_init_msg_list => OKC_API.G_FALSE,
26971 x_return_status => x_return_status,
26972 x_msg_count => x_msg_count,
26973 x_msg_data => x_msg_data,
26974 p_new_yn => 'Y',
26975 p_asset_number => p_asset_num,
26976 p_clev_tbl => l_clev_tbl,
26977 p_klev_tbl => l_klev_tbl,
26978 p_cimv_tbl => l_cimv_tbl,
26979 x_clev_tbl => x_clev_tbl,
26980 x_klev_tbl => x_klev_tbl,
26981 x_fin_clev_rec => x_fin_clev_rec,
26982 x_fin_klev_rec => x_fin_klev_rec,
26983 x_cimv_tbl => x_cimv_tbl);
26984
26985 debug_message('x_clev_tbl(1).id=' || x_clev_tbl(1).ID);
26986 --debug_message('x_klev_tbl(1).id=' || x_klev_tbl(1).ID);
26987 --debug_message('x_fin_clev_tbl(1).id=' || x_fin_clev_tbl(1).ID);
26988 --debug_message('x_fin_klev_tbl(1).id=' || x_fin_klev_tbl(1).ID);
26989 --debug_message('x_cimv_tbl(1).id=' || x_cimv_tbl(1).ID);
26990
26991 debug_message('After create_add_on_line: x_return_status=' || x_return_status);
26992 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26993 RAISE addon_failed;
26994 END IF;
26995
26996 -- Do process party role
26997 FOR okl_party_rec IN okl_party_csr(p_contract_num, addon_rec.line_number)
26998 LOOP
26999 IF (okl_party_rec.ASSET_VENDOR_ID IS NOT NULL) THEN
27000 x_asset_vendor_id := okl_party_rec.ASSET_VENDOR_ID;
27001 ELSE
27002 get_vendor_id (
27003 x_return_status => x_return_status,
27004 x_msg_count => x_msg_count,
27005 x_msg_data => x_msg_data,
27006 p_contract_number => p_contract_num,
27007 p_line_number => addon_rec.line_number,
27008 x_vendor_id => x_asset_vendor_id,
27009 p_vendor_name => okl_party_rec.ASSET_VENDOR_NAME
27010 );
27011 debug_message('Addon:x_asset_vendor_id=' || x_asset_vendor_id);
27012 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27013 RAISE addon_failed;
27014 END IF;
27015 END IF;
27016
27017 IF (x_asset_vendor_id IS NOT NULL) THEN
27018 p_cplv_rec := NULL;
27019 p_cplv_rec.chr_id := NULL;
27020 p_cplv_rec.dnz_chr_id := p_chr_id;
27021 p_cplv_rec.cle_id := x_clev_tbl(1).ID;
27022 p_cplv_rec.object1_id1 := TO_CHAR(x_asset_vendor_id);
27023 p_cplv_rec.object1_id2 := '#';
27024 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
27025 p_cplv_rec.rle_code := 'OKL_VENDOR';
27026 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
27027 p_api_version => 1.0,
27028 p_init_msg_list => OKL_API.G_FALSE,
27029 x_return_status => x_return_status,
27030 x_msg_count => x_msg_count,
27031 x_msg_data => x_msg_data,
27032 p_cplv_rec => p_cplv_rec,
27033 p_kplv_rec => l_kplv_rec,
27034 x_cplv_rec => x_cplv_rec,
27035 x_kplv_rec => x_kplv_rec
27036 );
27037
27038 debug_message('x_cplv_rec.id=' || x_cplv_rec.ID);
27039 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27040 RAISE addon_failed;
27041 END IF;
27042
27043 END IF;
27044
27045 END LOOP; -- okl_party_csr
27046
27047 -- Do create supp invoice details
27048 IF (x_asset_vendor_id is NOT NULL) THEN
27049 debug_message('x_clev_tbl(1).ID=' || x_clev_tbl(1).ID);
27050 debug_message('p_fa_cle_id=' || p_fa_cle_id);
27051 p_sidv_rec.cle_id := x_clev_tbl(1).id;
27052 p_sidv_rec.fa_cle_id := p_fa_cle_id;
27053 p_sidv_rec.invoice_number := addon_rec.vendor_invoice_number;
27054 p_sidv_rec.date_invoiced := addon_rec.vendor_invoice_date;
27055 IF (addon_rec.ship_to_site_id IS NOT NULL
27056 OR
27057 addon_rec.ship_to_site_number IS NOT NULL) THEN
27058 get_ship_to_site(
27059 x_return_status => x_return_status,
27060 x_msg_count => x_msg_count,
27061 x_msg_data => x_msg_data,
27062 p_contract_number => p_contract_num,
27063 p_line_number => addon_rec.line_number,
27064 p_auth_org_id => p_auth_org_id,
27065 p_ship_to_site_number => addon_rec.ship_to_site_number,
27066 p_ship_to_site_id => addon_rec.ship_to_site_id,
27067 x_ship_to_site_id => x_ship_to_site_id
27068 );
27069 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27070 RAISE addon_failed;
27071 x_return_status := OKL_API.G_RET_STS_ERROR;
27072 END IF;
27073
27074 debug_message('x_ship_to_site_id=' || x_ship_to_site_id);
27075 p_sidv_rec.shipping_address_id1 := x_ship_to_site_id;
27076 p_sidv_rec.shipping_address_id2 := '#';
27077 p_sidv_rec.shipping_address_code := 'OKX_CUSTSITE';
27078 END IF;
27079
27080 okl_supp_invoice_dtls_pub.create_sup_inv_dtls(
27081 p_api_version => 1.0,
27082 x_return_status => x_return_status,
27083 x_msg_count => x_msg_count,
27084 x_msg_data => x_msg_data,
27085 p_sidv_rec => p_sidv_rec,
27086 x_sidv_rec => x_sidv_rec
27087 );
27088 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27089 x_return_status := OKL_API.G_RET_STS_ERROR;
27090 RAISE addon_failed;
27091 END IF;
27092 ELSE
27093 IF (addon_rec.vendor_invoice_number IS NOT NULL OR
27094 addon_rec.vendor_invoice_date IS NOT NULL OR
27095 addon_rec.ship_to_site_id IS NOT NULL OR
27096 addon_rec.ship_to_site_number IS NOT NULL) THEN
27097 okl_api.set_message(
27098 G_APP_NAME,
27099 G_MISSING_VALUE_FOR_LINE,
27100 'CONTRACT_NUM',
27101 p_contract_num, --||'/'||addon_rec.line_number,
27102 'COL_NAME',
27103 'ADDON:ASSET_VENDOR_ID, ADDON:ASSET_VENDOR_NAME',
27104 'LINE',
27105 'Line Number ' || addon_rec.line_number || ' in party_roles_interface'
27106 );
27107 RAISE addon_failed;
27108 END IF;
27109 END IF;
27110
27111
27112 -- Done processing. Now delete the tables.
27113 l_clev_tbl.delete;
27114 l_klev_tbl.delete;
27115 l_cimv_tbl.delete;
27116
27117 END IF;
27118
27119
27120 END LOOP;
27121
27122 EXCEPTION
27123 WHEN addon_failed THEN
27124 x_return_status := OKL_API.G_RET_STS_ERROR;
27125
27126 END process_addon;
27127
27128 ------------------------------------------------------------------------------
27129 -- PROCEDURE process_subsidy
27130 -- This procedure processes and creates subsidy line for each asset.
27131 -- Calls:
27132 -- Called By:
27133 -- load_input_record
27134 ------------------------------------------------------------------------------
27135 PROCEDURE process_subsidy(
27136 x_return_status OUT NOCOPY VARCHAR2,
27137 x_msg_count OUT NOCOPY NUMBER,
27138 x_msg_data OUT NOCOPY VARCHAR2,
27139 p_auth_org_id IN NUMBER,
27140 p_contract_num IN VARCHAR2,
27141 p_chr_id IN NUMBER,
27142 p_asset_line_id IN NUMBER,
27143 p_asset_num IN VARCHAR2
27144 ) IS
27145 l_proc_name VARCHAR2(35):= 'PROCESS_SUBSIDY';
27146 subsidy_failed EXCEPTION;
27147
27148 CURSOR subsidy_csr (p_contract_number VARCHAR2,
27149 p_asset_number VARCHAR2) IS
27150 SELECT *
27151 FROM okl_lines_interface
27152 WHERE line_type = 'ASSET_SUBSIDY'
27153 AND contract_number_old = p_contract_number
27154 AND asset_number = p_asset_number;
27155
27156 l_subsidy_id okl_subsidies_b.id%TYPE;
27157 l_vendor_id okl_subsidies_b.vendor_id%TYPE;
27158 l_paysite_id NUMBER;
27159 l_payterm_id NUMBER;
27160
27161 l_asb_rec okl_asset_subsidy_pvt.asb_rec_type;
27162 x_asb_rec okl_asset_subsidy_pvt.asb_rec_type;
27163
27164 l_srfvv_rec okl_subsidy_rfnd_dtls_pvt.srfvv_rec_type;
27165 x_srfvv_rec okl_subsidy_rfnd_dtls_pvt.srfvv_rec_type;
27166
27167 CURSOR vendor_csr (p_name VARCHAR2) IS
27168 SELECT vendor_id
27169 FROM po_vendors
27170 WHERE vendor_name = p_name;
27171
27172 CURSOR sub_id_csr (p_name okl_subsidies_b.name%TYPE,
27173 p_org NUMBER) IS
27174 SELECT id
27175 FROM okl_subsidies_b
27176 WHERE name = p_name
27177 AND org_id = p_org;
27178
27179 CURSOR paysite_csr (p_code po_vendor_sites_all.vendor_site_code%TYPE,
27180 p_ven_id NUMBER,
27181 p_org NUMBER) IS
27182 SELECT vendor_site_id
27183 FROM po_vendor_sites_all
27184 WHERE vendor_site_code = p_code
27185 AND vendor_id = p_ven_id
27186 AND org_id = p_org;
27187
27188 CURSOR payterm_csr (p_name okx_payables_terms_v.name%TYPE) IS
27189 SELECT id1
27190 FROM okx_payables_terms_v
27191 WHERE NAME = p_name
27192 AND status = 'A';
27193
27194 BEGIN
27195 x_return_status := OKL_API.G_RET_STS_SUCCESS;
27196 debug_message(l_proc_name);
27197
27198 FOR subsidy_rec IN subsidy_csr (p_contract_num,
27199 p_asset_num)
27200 LOOP
27201 debug_message('Processing Subsidy line number: '||subsidy_rec.line_number);
27202 -- validate subsidy
27203 IF (subsidy_rec.subsidy_id IS NOT NULL) THEN
27204 l_subsidy_id := subsidy_rec.subsidy_id;
27205 ELSIF (subsidy_rec.subsidy_name IS NOT NULL) THEN
27206 OPEN sub_id_csr (subsidy_rec.subsidy_name,
27207 p_auth_org_id);
27208 FETCH sub_id_csr INTO l_subsidy_id;
27209 IF sub_id_csr%NOTFOUND THEN
27210 -- Error
27211 okl_api.set_message(
27212 G_APP_NAME,
27213 G_INVALID_VALUE,
27214 'CONTRACT_NUM',
27215 p_contract_num||'/'||subsidy_rec.line_number,
27216 'COL_NAME',
27217 'SUBSIDY_NAME',
27218 'COL_VALUE',
27219 subsidy_rec.subsidy_name
27220 );
27221 RAISE subsidy_failed;
27222 END IF;
27223 CLOSE sub_id_csr;
27224 ELSE
27225 okl_api.set_message(
27226 G_APP_NAME,
27227 G_MISSING_VALUE_FOR_LINE,
27228 'CONTRACT_NUM',
27229 p_contract_num||'/'||subsidy_rec.line_number,
27230 'COL_NAME',
27231 'SUBSIDY_ID, NAME'
27232 );
27233 RAISE subsidy_failed;
27234 END IF;
27235
27236 -- validate vendor
27237 IF (subsidy_rec.subsidy_party_id IS NOT NULL) THEN
27238 l_vendor_id := subsidy_rec.subsidy_party_id;
27239 ELSIF (subsidy_rec.subsidy_party_name IS NOT NULL) THEN
27240 OPEN vendor_csr (subsidy_rec.subsidy_party_name);
27241 FETCH vendor_csr INTO l_vendor_id;
27242 IF vendor_csr%NOTFOUND THEN
27243 okl_api.set_message(
27244 G_APP_NAME,
27245 G_INVALID_VALUE,
27246 'CONTRACT_NUM',
27247 p_contract_num||'/'||subsidy_rec.line_number,
27248 'COL_NAME',
27249 'SUBSIDY_PARTY_ID, NAME',
27250 'COL_VALUE',
27251 subsidy_rec.subsidy_party_id||', '||subsidy_rec.subsidy_party_name
27252 );
27253 RAISE subsidy_failed;
27254 END IF;
27255 CLOSE vendor_csr;
27256 ELSE
27257 l_vendor_id := NULL;
27258 END IF;
27259
27260 l_asb_rec.subsidy_id := l_subsidy_id;
27261 l_asb_rec.subsidy_override_amount := subsidy_rec.subsidy_override_amount;
27262 l_asb_rec.dnz_chr_id := p_chr_id;
27263 l_asb_rec.asset_cle_id := p_asset_line_id;
27264 l_asb_rec.vendor_id := l_vendor_id;
27265
27266 debug_message('Subsidy: '||l_asb_rec.subsidy_id);
27267 debug_message('Override: '||l_asb_rec.subsidy_override_amount);
27268 debug_message('asset_cle_id: '||l_asb_rec.asset_cle_id);
27269 debug_message('vendor: '||l_asb_rec.vendor_id);
27270
27271 okl_asset_subsidy_pvt.create_asset_subsidy(
27272 p_api_version => 1.0,
27273 p_init_msg_list => OKL_API.G_FALSE,
27274 x_return_status => x_return_status,
27275 x_msg_count => x_msg_count,
27276 x_msg_data => x_msg_data,
27277 p_asb_rec => l_asb_rec,
27278 x_asb_rec => x_asb_rec
27279 );
27280
27281 debug_message('okl_asset_subsidy_pvt.create_asset_subsidy: '||x_return_status);
27282
27283 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27284 RAISE subsidy_failed;
27285 END IF;
27286
27287 -- refund detail if any
27288 IF (subsidy_rec.subsidy_refnd_paysite_id IS NOT NULL
27289 OR
27290 subsidy_rec.subsidy_refnd_paysite_code IS NOT NULL
27291 OR
27292 subsidy_rec.subsidy_refnd_payterm_id IS NOT NULL
27293 OR
27294 subsidy_rec.subsidy_refnd_payterm_name IS NOT NULL
27295 OR
27296 subsidy_rec.subsidy_refnd_paymethod_code IS NOT NULL) THEN
27297
27298 IF (subsidy_rec.subsidy_refnd_paysite_id IS NOT NULL) THEN
27299 l_paysite_id := subsidy_rec.subsidy_refnd_paysite_id;
27300 ELSIF (subsidy_rec.subsidy_refnd_paysite_code IS NOT NULL) THEN
27301 -- get pay site id
27302 OPEN paysite_csr(subsidy_rec.subsidy_refnd_paysite_code,
27303 l_vendor_id,
27304 p_auth_org_id);
27305 FETCH paysite_csr INTO l_paysite_id;
27306 IF paysite_csr%NOTFOUND THEN
27307 -- error
27308 okl_api.set_message(
27309 G_APP_NAME,
27310 G_INVALID_VALUE,
27311 'CONTRACT_NUM',
27312 p_contract_num||'/'||subsidy_rec.line_number,
27313 'COL_NAME',
27314 'SUBSIDY_REFND_PAYSITE_ID, CODE',
27315 'COL_VALUE',
27316 subsidy_rec.subsidy_refnd_paysite_id||', '||subsidy_rec.subsidy_refnd_paysite_code
27317 );
27318 RAISE subsidy_failed;
27319 END IF;
27320 CLOSE paysite_csr;
27321 ELSE
27322 okl_api.set_message(
27323 G_APP_NAME,
27324 G_MISSING_VALUE_FOR_LINE,
27325 'CONTRACT_NUM',
27326 p_contract_num||'/'||subsidy_rec.line_number,
27327 'COL_NAME',
27328 'SUBSIDY_REFND_PAYSITE_ID/CODE'
27329 );
27330 RAISE subsidy_failed;
27331 END IF;
27332
27333 IF (subsidy_rec.subsidy_refnd_payterm_id IS NOT NULL) THEN
27334 l_payterm_id := subsidy_rec.subsidy_refnd_payterm_id;
27335 ELSIF (subsidy_rec.subsidy_refnd_payterm_name IS NOT NULL) THEN
27336 -- get payterm id
27337 OPEN payterm_csr(subsidy_rec.subsidy_refnd_payterm_name);
27338 FETCH payterm_csr INTO l_payterm_id;
27339 IF payterm_csr%NOTFOUND THEN
27340 -- error
27341 okl_api.set_message(
27342 G_APP_NAME,
27343 G_INVALID_VALUE,
27344 'CONTRACT_NUM',
27345 p_contract_num||'/'||subsidy_rec.line_number,
27346 'COL_NAME',
27347 'SUBSIDY_REFND_PAYTERM_ID, NAME',
27348 'COL_VALUE',
27349 subsidy_rec.subsidy_refnd_payterm_id||', '||subsidy_rec.subsidy_refnd_payterm_name
27350 );
27351 RAISE subsidy_failed;
27352 END IF;
27353 CLOSE payterm_csr;
27354 ELSE
27355 okl_api.set_message(
27356 G_APP_NAME,
27357 G_MISSING_VALUE_FOR_LINE,
27358 'CONTRACT_NUM',
27359 p_contract_num||'/'||subsidy_rec.line_number,
27360 'COL_NAME',
27361 'SUBSIDY_REFND_PAYTERM_ID/NAME'
27362 );
27363 RAISE subsidy_failed;
27364 END IF;
27365
27366 l_srfvv_rec.cpl_id := x_asb_rec.cpl_id;
27367 l_srfvv_rec.vendor_id := l_vendor_id;
27368 l_srfvv_rec.pay_site_id := l_paysite_id;
27369 l_srfvv_rec.payment_term_id := l_payterm_id;
27370 l_srfvv_rec.payment_method_code := subsidy_rec.subsidy_refnd_paymethod_code;
27371 l_srfvv_rec.pay_group_code := subsidy_rec.subsidy_refnd_paygroup_code;
27372
27373 debug_message('l_srfvv_rec.cpl_id: '||l_srfvv_rec.cpl_id);
27374 debug_message('l_srfvv_rec.vendor_id: '||l_srfvv_rec.vendor_id);
27375 debug_message('l_srfvv_rec.pay_site_id: '||l_srfvv_rec.pay_site_id);
27376 debug_message('l_srfvv_rec.payment_term_id: '||l_srfvv_rec.payment_term_id);
27377 debug_message('l_srfvv_rec.payment_method_code: '||l_srfvv_rec.payment_method_code);
27378 debug_message('l_srfvv_rec.pay_group_code: '||l_srfvv_rec.pay_group_code);
27379
27380 okl_subsidy_rfnd_dtls_pvt.create_refund_dtls(
27381 p_api_version => 1.0,
27382 p_init_msg_list => OKL_API.G_FALSE,
27383 x_return_status => x_return_status,
27384 x_msg_count => x_msg_count,
27385 x_msg_data => x_msg_data,
27386 p_srfvv_rec => l_srfvv_rec,
27387 x_srfvv_rec => x_srfvv_rec
27388 );
27389
27390 debug_message('okl_subsidy_rfnd_dtls_pvt.create_refund_dtls: '||x_return_status);
27391 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27392 RAISE subsidy_failed;
27393 END IF;
27394
27395 END IF; -- refund detail
27396
27397 END LOOP; --subsidy_rec
27398
27399 EXCEPTION
27400 WHEN subsidy_failed THEN
27401 x_return_status := OKL_API.G_RET_STS_ERROR;
27402 END process_subsidy;
27403
27404 ------------------------------------------------------------------------------
27405 -- PROCEDURE check_and_delete
27406 -- This procedure deletes contracts from OLM and
27407 -- stacks Error, if any, and returns ERROR status to calling process.
27408 -- Calls:
27409 ------------------------------------------------------------------------------
27410
27411 PROCEDURE check_and_delete(
27412 x_return_status OUT NOCOPY VARCHAR2,
27413 x_msg_count OUT NOCOPY NUMBER,
27414 x_msg_data OUT NOCOPY VARCHAR2,
27415 p_contract_number IN varchar2,
27416 p_delete_before_import_yn IN varchar2 -- akp_delete
27417 ) IS
27418
27419 l_proc_name VARCHAR2(35) := 'CHECK_AND_DELETE';
27420 l_contract_id okc_k_headers_b.id%type;
27421
27422 cursor get_contract_id(p_contract_no varchar2) is
27423 select id
27424 from okc_k_headers_b
27425 where contract_number = p_contract_no;
27426
27427 -- udhenuko Bug#5666768 Start
27428 l_ipyv_rec okl_ipy_pvt.ipyv_rec_type;
27429 l_ins_id okl_ins_policies_b.id%TYPE;
27430 cursor get_ins_id_csr(p_khr_id in number) is
27431 select id
27432 from okl_ins_policies_b where khr_id=p_khr_id;
27433 --Bug#5666768 end
27434
27435 BEGIN
27436 x_return_status := OKL_API.G_RET_STS_SUCCESS;
27437 debug_message(l_proc_name);
27438
27439 if (p_contract_number is null) then
27440 return;
27441 end if;
27442
27443 if (upper(nvl(p_delete_before_import_yn, 'N')) <> 'Y') then
27444 return;
27445 end if;
27446
27447 debug_message('Contract ' || p_contract_number || ' picked up for delete...');
27448 open get_contract_id(p_contract_number);
27449 fetch get_contract_id into l_contract_id;
27450 if get_contract_id%notfound then
27451 close get_contract_id;
27452 debug_message('Contract ' || p_contract_number || ' not found in OLM for delete...');
27453 return;
27454 else
27455 close get_contract_id;
27456
27457 -- Call Delete API
27458 okl_contract_pub.delete_contract(
27459 p_api_version => 1.0,
27460 p_init_msg_list => OKL_API.G_FALSE,
27461 x_return_status => x_return_status,
27462 x_msg_count => x_msg_count,
27463 x_msg_data => x_msg_data,
27464 p_contract_id => l_contract_id );
27465 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
27466 debug_message('Contract ' || p_contract_number || ' deleted from OLM...');
27467 ELSE
27468 debug_message('Error during delete contract ' || p_contract_number );
27469 END IF;
27470
27471 --Bug#5666768 - Start. Invoke the TAPI
27472 open get_ins_id_csr(l_contract_id);
27473 fetch get_ins_id_csr into l_ins_id;
27474 if get_ins_id_csr%notfound then
27475 close get_ins_id_csr;
27476 debug_message('Insurance Policy for Contract ' || p_contract_number || ' not found..');
27477 return;
27478 end if;
27479 close get_ins_id_csr;
27480 l_ipyv_rec.id:=l_ins_id;
27481 OKL_INS_POLICIES_PUB.delete_ins_policies(p_api_version => 1.0,
27482 p_init_msg_list => OKL_API.G_FALSE,
27483 x_return_status => x_return_status,
27484 x_msg_count => x_msg_count,
27485 x_msg_data => x_msg_data,
27486 p_ipyv_rec => l_ipyv_rec);
27487 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
27488 debug_message('Contract ' || p_contract_number || ' deleted from OLM after delete_ins_policies...');
27489 ELSE
27490 debug_message('Error during OKL_INS_POLICIES_PUB.delete_ins_policies ' || p_contract_number );
27491 END IF;
27492 end if;
27493 --Bug#5666768 end
27494
27495 END check_and_delete;
27496
27497 ------------------------------------------------------------------------------
27498 -- PROCEDURE Load_Input_Record
27499 -- It Reads data from Interface Tables and Validates. During process of validation it
27500 -- stacks Error, if any, and returns ERROR status to calling process.
27501 -- Calls:
27502 -- get_agreement_id
27503 -- get_product_id
27504 -- create_party_role
27505 -- create_contact
27506 -- create_header_rules
27507 -- get_lse_id
27508 -- get_inventory_org_item_id
27509 -- get_asset_id
27510 -- get_install_site_id
27511 -- process_other_line
27512 -- create_line_rules
27513 -- process_party_role
27514 -- process_term
27515 -- create_payment_rule_group
27516 -- check_payment_frequency_code
27517 -- create_payment_other_rules
27518 -- report_error
27519 -- update_interface_status
27520 -- Called By:
27521 -- process_record
27522 ------------------------------------------------------------------------------
27523 PROCEDURE Load_Input_Record(
27524 p_init_msg_list IN VARCHAR2,
27525 x_return_status OUT NOCOPY VARCHAR2,
27526 x_msg_count OUT NOCOPY NUMBER,
27527 x_msg_data OUT NOCOPY VARCHAR2,
27528 p_batch_number IN VARCHAR2,
27529 p_start_date_from IN DATE,
27530 p_start_date_to IN DATE,
27531 p_contract_number IN VARCHAR2,
27532 p_customer_number IN VARCHAR2,
27533 x_total_loaded OUT NOCOPY NUMBER
27534 ) IS
27535
27536 -- local variables
27537 l_proc_name VARCHAR2(35) := 'LOAD_INPUT_RECORD';
27538 l_progress VARCHAR2(3) := NULL;
27539 x_master_lease_id OKC_K_HEADERS_V.ID%TYPE;
27540 x_customer_account_id NUMBER;
27541 x_inventory_org_id NUMBER;
27542 x_inventory_item_id NUMBER;
27543 x_lse_id NUMBER;
27544 x_id1 okx_assets_v.id1%TYPE;
27545 x_id2 okx_assets_v.id2%TYPE;
27546 l_no_of_lines NUMBER;
27547 l_ib_line_count NUMBER;
27548 -- l_new_yn VARCHAR2(1);
27549 x_comb_id NUMBER;
27550 x_rgp_id NUMBER;
27551 l_contract_number_old_prev okl_header_interface.contract_number_old%TYPE;
27552 l_line_number_prev okl_lines_interface.line_number%TYPE;
27553 l_asset_number_prev okl_payments_interface.asset_number%TYPE;
27554 l_payment_type_code_prev okl_payments_interface.payment_type_code%TYPE;
27555 l_pmnt_sch_num_prev NUMBER;
27556 l_start_date_prev DATE;
27557 l_number_of_periods_prev NUMBER;
27558 x_pmnt_freq_id okx_tuom_v.id1%TYPE;
27559 x_uom_code okx_tuom_v.uom_code%TYPE;
27560 l_mult_factor NUMBER;
27561 l_current_start_date DATE;
27562 x_install_site_id okx_party_site_uses_v.id1%TYPE;
27563 l_rule_create_flag VARCHAR2(1) := 'Y';
27564
27565 x_inv_item_id_prev NUMBER;
27566 p_inv_item_id_prev NUMBER;
27567 p_line_type_prev VARCHAR2(35);
27568 x_ship_to_site_id okx_party_site_uses_v.id1%TYPE;
27569 l_rg_id NUMBER;
27570
27571 x_cle_id okc_k_lines_v.id%TYPE;
27572 p_cle_id okc_k_lines_v.id%TYPE;
27573
27574 -- Header Rec
27575 p_chrv_rec chrv_rec_type;
27576 p_khrv_rec khrv_rec_type;
27577 x_chrv_rec chrv_rec_type;
27578 x_khrv_rec khrv_rec_type;
27579
27580 l_chrv_rec chrv_rec_type;
27581 l_khrv_rec khrv_rec_type;
27582
27583 l_gvev_rec gvev_rec_type;
27584 x_gvev_rec gvev_rec_type;
27585
27586 -- Party Role Rec
27587 p_cplv_rec cplv_rec_type;
27588 x_cplv_rec cplv_rec_type;
27589
27590 -- Lines Rec
27591 p_clev_fin_rec clev_rec_type;
27592 p_klev_fin_rec klev_rec_type;
27593 p_cimv_model_rec cimv_rec_type;
27594 p_clev_fa_rec clev_rec_type;
27595 p_cimv_fa_rec cimv_rec_type;
27596 p_talv_fa_rec talv_rec_type;
27597 p_itiv_ib_tbl itiv_tbl_type;
27598 p_sidv_rec sidv_rec_type;
27599 x_sidv_rec sidv_rec_type;
27600
27601 x_clev_fin_rec clev_rec_type;
27602 x_clev_model_rec clev_rec_type;
27603 x_clev_fa_rec clev_rec_type;
27604 x_clev_ib_rec clev_rec_type;
27605
27606 l_talv_rec tlpv_rec_type;
27607 x_talv_rec tlpv_rec_type;
27608
27609 x_slh_rulv_rec rulv_rec_type;
27610
27611 l_adpv_rec adpv_rec_type;
27612 x_adpv_rec adpv_rec_type;
27613 l_tal_id NUMBER;
27614
27615 l_msg_tbl Okl_Qa_Check_Pub.msg_tbl_type;
27616
27617 l_intf_h_rec intf_h_rec_type;
27618 okl_header_rec intf_h_rec_type; --cklee
27619
27620 l_header_template template_h_rec_type; -- Header template record
27621
27622 l_service_line_id OKC_K_LINES_V.ID%TYPE;
27623 l_fee_line_id OKC_K_LINES_V.ID%TYPE;
27624 l_usage_line_id OKC_K_LINES_V.ID%TYPE;
27625
27626 x_update_status VARCHAR2(1);
27627
27628 header_validation_failed EXCEPTION;
27629 line_validation_failed EXCEPTION;
27630 load_failed EXCEPTION;
27631
27632 --Bug# 13478101
27633 l_pdt_parameter_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
27634 x_rulv_tbl OKL_RULE_PUB.rulv_tbl_type;
27635
27636 CURSOR l_var_int_sched_csr(p_chr_id IN NUMBER) IS
27637 SELECT rgp.id rgp_id,
27638 slh.id slh_id
27639 FROM okc_rule_groups_b rgp,
27640 okc_rules_b slh,
27641 okl_strm_type_b sty
27642 WHERE rgp.chr_id = p_chr_id
27643 AND rgp.dnz_chr_id = p_chr_id
27644 AND rgp.rgd_code = 'LALEVL'
27645 AND slh.rgp_id = rgp.id
27646 AND slh.dnz_chr_id = rgp.dnz_chr_id
27647 AND slh.rule_information_category = 'LASLH'
27648 AND sty.id = slh.object1_id1
27649 AND slh.jtot_object1_code = 'OKL_STRMTYP'
27650 AND sty.stream_type_purpose = 'VARIABLE_INTEREST_SCHEDULE';
27651
27652 l_var_int_sched_rec l_var_int_sched_csr%ROWTYPE;
27653 --Bug# 13478101
27654
27655 CURSOR le_entity(p_org_id NUMBER ,
27656 p_legal_entity NUMBER) IS
27657 select 1 from
27658 xle_le_ou_ledger_v
27659 where OPERATING_UNIT_ID=p_org_id
27660 and LEGAL_ENTITY_ID=p_legal_entity; -- cusrsor to get LE for an OU
27661
27662
27663 CURSOR proc_cob_csr (p_batch_number VARCHAR2,
27664 p_start_date_from DATE,
27665 p_start_date_to DATE,
27666 p_contract_number VARCHAR2,
27667 p_customer_number VARCHAR2 ) IS
27668
27669 SELECT BATCH_NUMBER
27670 ,TEMPLATE_NUMBER
27671 ,STATUS
27672 ,CREATED_BY
27673 ,DATE_CREATED
27674 ,DATE_CREATED_IN_OKL
27675 ,APPLICATION_CODE
27676 ,CONTRACT_CATEGORY
27677 ,CONTRACT_NUMBER_OLD
27678 ,CONTRACT_SOURCE
27679 ,CONTRACT_NUMBER
27680 ,CUSTOMER_NUMBER
27681 ,CUSTOMER_ID
27682 ,CUSTOMER_ACCOUNT_NUMBER
27683 ,CUSTOMER_ACCOUNT_ID
27684 ,START_DATE
27685 ,IMPORT_REQUEST_STAGE
27686 ,CURRENCY_CODE
27687 ,CUSTOMER_PO_NUMBER
27688 ,DATE_SIGNED
27689 ,DATE_APPROVED
27690 ,ACCEPTANCE_METHOD_CODE
27691 ,CONSUMER_CREDIT_ACT_DEAL_FLAG
27692 ,TERM
27693 ,CONVERTED_ACCOUNT
27694 ,ACCEPTED_DATE
27695 ,DEAL_TYPE_CODE
27696 ,EXPECTED_DELIVERY_DATE
27697 ,CONTRACT_DESCRIPTION
27698 ,SALESPERSON_NAME
27699 ,SALESPERSON_ID
27700 ,PRIVATE_LABEL_NUMBER
27701 ,PRIVATE_LABEL_ID
27702 ,PRIVATE_LABEL_URL
27703 ,PROGRAM_AGREEMENT_NUMBER
27704 ,PROGRAM_AGREEMENT_ID
27705 ,PROGRAM_VENDOR_NAME
27706 ,PROGRAM_VENDOR_ID
27707 ,MASTER_LEASE_AGREEMENT_NUMBER
27708 ,MASTER_LEASE_AGREEMENT_ID
27709 ,PRODUCT_NAME
27710 ,PRODUCT_ID
27711 ,CALCULATE_RESIDUAL_INSURANCE
27712 ,REBOOK_LIMIT_DATE
27713 ,IMPORT_REQUEST_ID
27714 ,END_OF_TERM_OPTION
27715 ,END_OF_TERM_AMOUNT
27716 ,MID_TERM_OPTION
27717 ,MID_TERM_AMOUNT
27718 ,SECURITY_DEPOSIT_HOLD_FLAG
27719 ,SECURITY_DEPOSIT_NET_FLAG
27720 ,SECURITY_DEPOSIT_DATE
27721 ,RENEWAL_NOTICE_DAYS
27722 ,RENEWAL_OPTION
27723 ,RENEWAL_AMOUNT
27724 ,LATE_INTEREST_HELD_UNTIL_DATE
27725 ,LATE_INTEREST_EXEMPT_FLAG
27726 ,LATE_INTEREST_PRODUCT_CODE
27727 ,LATE_CHARGE_HELD_UNTIL_DATE
27728 ,LATE_CHARGE_PRODUCT_CODE
27729 ,LATE_CHARGE_EXEMPT_FLAG
27730 ,VARIABLE_RATE
27731 ,CONVERT_TYPE
27732 ,CONVERSION_METHOD
27733 ,DATE_OF_CONVERSION
27734 ,CONVERT_BY_DATE
27735 ,VARIABLE_METHOD
27736 ,INDEX_NAME
27737 ,BASE_RATE
27738 ,ADDER
27739 ,MINIMUM_RATE
27740 ,MAXIMUM_RATE
27741 ,TOLERANCE
27742 ,ADJUSTMENT_FREQUENCY
27743 ,DAYS_IN_YEAR
27744 ,DAYS_IN_MONTH
27745 ,INTEREST_METHOD
27746 ,INTEREST_START_DATE
27747 ,METHOD_OF_CALCULATION
27748 ,FORMULA_NAME
27749 ,CAPITALIZE_FLAG
27750 ,NON_NOTIFICATION_FLAG
27751 ,TAX_WITHHOLDING_FLAG
27752 ,TAX_CALC_FORMULA_NAME
27753 ,TAX_OWNER
27754 ,FACTORING_DATE
27755 ,FACTORING_PERCENTAGE
27756 ,FACTORING_DISCOUNT_RATE
27757 ,EVERGREEN_ELIGIBLE_FLAG
27758 ,BILL_TO_ADDRESS_ID
27759 ,BILL_TO_ADDRESS
27760 ,BANK_ACCOUNT_ID
27761 ,BANK_ACCOUNT_NUMBER
27762 ,REASON_FOR_INVOICE_REVIEW
27763 ,INVOICE_REVIEW_UNTIL_DATE
27764 ,INVOICE_FORMAT_ID
27765 ,INVOICE_FORMAT_CODE
27766 ,PRINT_LEAD_DAYS --hariven bug 5359935
27767 ,REVIEW_INVOICE_FLAG
27768 ,PAYMENT_METHOD_ID
27769 ,PAYMENT_METHOD
27770 ,AUTHORING_ORG_ID
27771 ,INVENTORY_ORGANIZATION_ID
27772 ,POLICY_NUMBER
27773 ,POLICY_EFFECTIVE_FROM
27774 ,POLICY_EFFECTIVE_TO
27775 ,COVERED_AMOUNT
27776 ,DEDUCTIBLE_AMOUNT
27777 ,ENDORSEMENT
27778 ,NAME_OF_INSURED
27779 ,LESSOR_INSURED_FLAG
27780 ,LESSOR_PAYEE_FLAG
27781 ,INSURANCE_COMPANY_NAME
27782 ,INSURANCE_COMPANY_ID
27783 ,INSURANCE_COMPANY_SITE_NAME
27784 ,INSURANCE_COMPANY_SITE_ID
27785 ,AGENT_NAME
27786 ,AGENT_ID
27787 ,AGENT_ADDRESS_SITE_NAME
27788 ,AGENT_ADDRESS_SITE_ID
27789 ,PROOF_DUE_DATE
27790 ,PROOF_PROVIDED_DATE
27791 ,PREFUNDING_ELIGIBLE_FLAG
27792 ,PRIVATE_ACTIVITY_BOND_FLAG
27793 ,RVI_AUTO_CALCULATE_FLAG
27794 ,RVI_GUARANTEED_AMOUNT
27795 ,RVI_PRESENT_GUARANTEED_AMOUNT
27796 ,RVI_PREMIUM_AMOUNT
27797 ,RVI_RATE
27798 ,FLOOR_PRICE_FORMULA
27799 ,REMKT_SALE_PRICE_FORMULA
27800 ,REPURCHASE_QUOTE_OPTION
27801 ,REPURCHASE_QUOTE_FORMULA
27802 ,SALE_PRICE_OPTION
27803 ,SALE_PRICE_AMOUNT
27804 ,SALE_PRICE_FORMULA
27805 ,SALE_PRICE_PRORATE
27806 ,DISCOUNT_RATE_OPTION
27807 ,DISCOUNT_RATE_AMOUNT
27808 ,DISCOUNT_RATE_FORMULA
27809 ,DISCOUNT_RATE_PRORATE
27810 ,QUOTE_FEE_OPTION
27811 ,QUOTE_FEE_AMOUNT
27812 ,QUOTE_FEE_FORMULA
27813 ,QUOTE_FEE_PRORATE
27814 ,ERT_PURCHASE_OPT
27815 ,ERT_PURCHASE_OPT_TYPE
27816 ,ERT_PURCHASE_OPT_AMOUNT
27817 ,ERT_PURCHASE_OPT_FORMULA
27818 ,ERT_PURCHASE_OPT_PRORATE
27819 ,ERT_PURCHASE_OPT_MAX_OPT
27820 ,ERT_PURCHASE_OPT_MAX_AMT
27821 ,ERT_PURCHASE_OPT_MAX_FORMULA
27822 ,ERT_PURCHASE_OPT_MIN_OPT
27823 ,ERT_PURCHASE_OPT_MIN_AMT
27824 ,ERT_PURCHASE_OPT_MIN_FORMULA
27825 ,EOT_PURCHASE_OPT
27826 ,EOT_PURCHASE_OPT_TYPE
27827 ,EOT_PURCHASE_OPT_AMOUNT
27828 ,EOT_PURCHASE_OPT_FORMULA
27829 ,EOT_PURCHASE_OPT_PRORATE
27830 ,EOT_PURCHASE_OPT_MAX_OPT
27831 ,EOT_PURCHASE_OPT_MAX_AMT
27832 ,EOT_PURCHASE_OPT_MAX_FORMULA
27833 ,EOT_PURCHASE_OPT_MIN_OPT
27834 ,EOT_PURCHASE_OPT_MIN_AMT
27835 ,EOT_PURCHASE_OPT_MIN_FORMULA
27836 ,TQP_ERL_TERMINATION_ALWD_FLAG
27837 ,TQP_PRT_TERMINATION_ALWD_FLAG
27838 ,QUOTE_EFFECTIVE_DAYS
27839 ,QUOTE_EFF_MAX_DAYS
27840 ,EOT_TOLERANCE_DAYS
27841 ,PRT_TERMINATION_APPROVAL_REQ
27842 ,PRT_TERMINATION_ALLOWED_FLAG
27843 ,GAIN_LOSS_APPROVAL_REQ
27844 ,GAIN_LOSS_NET_QUOTE_OPT
27845 ,GAIN_LOSS_NET_QUOTE_AMT
27846 ,GAIN_LOSS_NET_QUOTE_FORMULA
27847 ,GAIN_LOSS_TOLERANCE_ALLOWED
27848 ,QUOTE_RCPT_CONTRACT_ROLE
27849 ,QUOTE_APPROVER_CONTRACT_ROLE
27850 ,QUOTE_CRTSY_COPY_CONTRACT_ROLE
27851 ,ERT_QUOTE_CALC_TERM_OPTION
27852 ,ERT_QUOTE_CALC_TERM_FORMULA
27853 ,ERT_CONTRACT_OBLIG_OPT
27854 ,ERT_CONTRACT_OBLIG_AMOUNT
27855 ,ERT_CONTRACT_OBLIG_FORMULA
27856 ,ERT_CONTRACT_OBLIG_PRORATE
27857 ,ERT_DISC_RATE_OPT
27858 ,ERT_DISC_RATE_AMOUNT
27859 ,ERT_DISC_RATE_FORMULA
27860 ,ERT_DISC_RATE_PRORATE
27861 ,ERT_QUOTE_FEE_OPT
27862 ,ERT_QUOTE_FEE_AMOUNT
27863 ,ERT_QUOTE_FEE_FORMULA
27864 ,ERT_QUOTE_FEE_PRORATE
27865 ,ERT_RETURN_FEE_OPTION
27866 ,ERT_RETURN_FEE_AMOUNT
27867 ,ERT_RETURN_FEE_FORMULA
27868 ,ERT_RETURN_FEE_PRORATE
27869 ,ERT_ROLL_INCTV_OPTION
27870 ,ERT_ROLL_INCTV_AMOUNT
27871 ,ERT_ROLL_INCTV_FORMULA
27872 ,ERT_ROLL_INCTV_PRORATE
27873 ,ERT_SECU_DEP_DISPO_OPTION
27874 ,ERT_SECU_DEP_DISPO_AMOUNT
27875 ,ERT_SECU_DEP_DISPO_FORMULA
27876 ,ERT_SECU_DEP_DISPO_PRORATE
27877 ,ERT_TERM_PENALTY_OPTION
27878 ,ERT_TERM_PENALTY_AMOUNT
27879 ,ERT_TERM_PENALTY_FORMULA
27880 ,ERT_TERM_PENALTY_PRORATE
27881 ,ERT_TERM_PENALTY_CAP_OPTION
27882 ,ERT_TERM_PENALTY_CAP_AMOUNT
27883 ,ERT_TERM_PENALTY_CAP_FORMULA
27884 ,ERT_EST_PROP_TAX_OPTION
27885 ,ERT_EST_PROP_TAX_AMOUNT
27886 ,ERT_EST_PROP_TAX_FORMULA
27887 ,ERT_EST_PROP_TAX_PRORATE
27888 ,ERT_CONTR_FEES_OPTION
27889 ,ERT_OUTSTND_BAL_OPTION
27890 ,ERT_SERV_MANT_OPTION
27891 ,EOT_QUOTE_CALC_TERM_OPTION
27892 ,EOT_QUOTE_CALC_TERM_FORMULA
27893 ,EOT_CONTRACT_OBLIG_OPT
27894 ,EOT_CONTRACT_OBLIG_AMOUNT
27895 ,EOT_CONTRACT_OBLIG_FORMULA
27896 ,EOT_CONTRACT_OBLIG_PRORATE
27897 ,EOT_DISC_RATE_OPT
27898 ,EOT_DISC_RATE_AMOUNT
27899 ,EOT_DISC_RATE_FORMULA
27900 ,EOT_DISC_RATE_PRORATE
27901 ,EOT_QUOTE_FEE_OPT
27902 ,EOT_QUOTE_FEE_AMOUNT
27903 ,EOT_QUOTE_FEE_FORMULA
27904 ,EOT_QUOTE_FEE_PRORATE
27905 ,EOT_RETURN_FEE_OPTION
27906 ,EOT_RETURN_FEE_AMOUNT
27907 ,EOT_RETURN_FEE_FORMULA
27908 ,EOT_RETURN_FEE_PRORATE
27909 ,EOT_ROLL_INCTV_OPTION
27910 ,EOT_ROLL_INCTV_AMOUNT
27911 ,EOT_ROLL_INCTV_FORMULA
27912 ,EOT_ROLL_INCTV_PRORATE
27913 ,EOT_SECU_DEP_DISPO_OPTION
27914 ,EOT_SECU_DEP_DISPO_AMOUNT
27915 ,EOT_SECU_DEP_DISPO_FORMULA
27916 ,EOT_SECU_DEP_DISPO_PRORATE
27917 ,EOT_TERM_PENALTY_OPTION
27918 ,EOT_TERM_PENALTY_AMOUNT
27919 ,EOT_TERM_PENALTY_FORMULA
27920 ,EOT_TERM_PENALTY_PRORATE
27921 ,EOT_TERM_PENALTY_CAP_OPTION
27922 ,EOT_TERM_PENALTY_CAP_AMOUNT
27923 ,EOT_TERM_PENALTY_CAP_FORMULA
27924 ,EOT_EST_PROP_TAX_OPTION
27925 ,EOT_EST_PROP_TAX_AMOUNT
27926 ,EOT_EST_PROP_TAX_FORMULA
27927 ,EOT_EST_PROP_TAX_PRORATE
27928 ,EOT_CONTR_FEES_OPTION
27929 ,EOT_OUTSTND_BAL_OPTION
27930 ,EOT_SERV_MANT_OPTION
27931 ,EVERGREEN_PASSTHRU_FEES
27932 ,EVERGREEN_PASSTHRU_PERCENT
27933 ,LIEN_TYPE
27934 ,FILING_NUMBER
27935 ,FILING_DATE
27936 ,FILING_STATUS
27937 ,LIEN_HOLDER_NAME
27938 ,LIEN_HOLDER_ID
27939 ,JURISDICTION
27940 ,SUB_JURISDICTION
27941 ,LIEN_EXPIRATION_DATE
27942 ,LIEN_CONTINUATION_NUMBER
27943 ,LIEN_CONTINUATION_DATE
27944 ,TITLE_TYPE
27945 ,TITLE_ISSUER_NAME
27946 ,TITLE_ISSUER_ID
27947 ,TITLE_DATE
27948 ,TITLE_NUMBER
27949 ,REGISTRATION_NUMBER
27950 ,LOCATION
27951 ,TITLE_CUSTODIAN_NAME
27952 ,TITLE_CUSTODIAN_ID
27953 ,PAYEE_SITE
27954 ,REGISTRATION_LOCATION
27955 ,REG_EXPIRATION_DATE
27956 ,CREDIT_LINE_ID
27957 ,CREDIT_LINE_NUMBER
27958 ,PRTFL_APPROVAL_REQ
27959 ,PRTFL_ASSGN_GROUP
27960 ,PRTFL_BUDGET_AMT_OPT
27961 ,PRTFL_BUDGET_FIXED_AMT
27962 ,PRTFL_BUDGET_AMT_FORMULA
27963 ,PRTFL_DAYS_FROM_CON_EXPR
27964 ,PRTFL_STRATEGY
27965 ,PROP_TAX_APPLICABLE
27966 ,PROP_TAX_LEASE_REP
27967 ,MEX_TAX_SUB_BASIC_WTHLD
27968 ,MEX_TAX_CALC_FORMULA
27969 ,AUS_TAX_STAMP_DUTY
27970 ,CURRENCY_CONVERSION_TYPE
27971 ,CURRENCY_CONVERSION_RATE
27972 ,CURRENCY_CONVERSION_DATE
27973 ,ASSIGNABLE_YN
27974 ,LESSEE_VENDOR_ID
27975 ,LESSEE_VENDOR_NAME
27976 ,LESSEE_VENDOR_SITE_ID
27977 ,LESSEE_VENDOR_SITE_CODE
27978 ,INSURANCE_COMPANY_NUMBER
27979 ,INSURANCE_COMPANY_SITE_NUMBER
27980 ,AGENT_NUMBER
27981 ,AGENT_ADDRESS_SITE_NUMBER
27982 ,CASH_APPL_RULE_NAME
27983 ,PROP_TAX_BILL_METHOD
27984 ,GAIN_LOSS_TOLRNC_ALLWD_AMT
27985 ,GAIN_LOSS_TOLRNC_ALLWD_FRML
27986 ,GAIN_LOSS_TOLRNC_BASIS
27987 ,GAIN_LOSS_APPRV_PROC_FRML
27988 ,ERT_ABSORBED_FEE_FRML
27989 ,ERT_EXPENSE_FEE_FRML
27990 ,ERT_FINANCED_FEE_FRML
27991 ,ERT_GENERAL_FEE_FRML
27992 ,ERT_INCOME_FEE_FRML
27993 ,ERT_MISC_FEE_FRML
27994 ,ERT_PASSTHRU_FEE_FRML
27995 ,ERT_ROLLOVER_FEE_FRML
27996 ,EOT_ABSORBED_FEE_FRML
27997 ,EOT_EXPENSE_FEE_FRML
27998 ,EOT_FINANCED_FEE_FRML
27999 ,EOT_GENERAL_FEE_FRML
28000 ,EOT_INCOME_FEE_FRML
28001 ,EOT_MISC_FEE_FRML
28002 ,EOT_PASSTHRU_FEE_FRML
28003 ,EOT_ROLLOVER_FEE_FRML
28004 ,DELETE_BEFORE_IMPORT_YN
28005 ,ST_UPDATE_LINES_FROM_CONTRACT
28006 ,ST_INTEREST_DISCLOSED
28007 ,ST_TRANSFER_OF_TITLE
28008 ,ST_SALE_AND_LEASE_BACK
28009 ,ST_PURCHASE_OF_LEASE
28010 ,ST_EQUIPMENT_USAGE
28011 ,ST_EQUIPMENT_AGE
28012 ,ST_ASSET_UPFRONT_TAX
28013 ,ST_BILL_STREAM_TYPE_CODE
28014 ,ST_BILL_STREAM_PURPOSE_CODE
28015 ,ST_FIN_STREAM_TYPE_CODE
28016 ,ST_FIN_STREAM_PURPOSE_CODE
28017 ,ST_CAP_STREAM_TYPE_CODE
28018 ,ST_CAP_STREAM_PURPOSE_CODE
28019 ,ST_TAX_SCHEDULE_APPLIES_FLAG
28020 FROM okl_header_interface
28021 WHERE (
28022 batch_number = p_batch_number
28023 OR
28024 contract_number_old = p_contract_number
28025 OR
28026 (
28027 customer_number = p_customer_number
28028 AND
28029 start_date between p_start_date_from AND p_start_date_to
28030 )
28031 )
28032 AND nvl(scheduled_worker_id,'NONE') = g_instance_number
28033 AND status = 'INTERFACED'
28034 AND import_request_stage <> 'NEW' ; --Process INTERFACED contract upto import_request_stage
28035
28036 --
28037 -- Cursor to fetch Header Interface Records
28038 --
28039
28040 CURSOR okl_header_csr (p_batch_number VARCHAR2,
28041 p_start_date_from DATE,
28042 p_start_date_to DATE,
28043 p_contract_number VARCHAR2,
28044 p_customer_number VARCHAR2 ) IS
28045
28046 SELECT
28047 BATCH_NUMBER
28048 ,TEMPLATE_NUMBER
28049 ,STATUS
28050 ,CREATED_BY
28051 ,DATE_CREATED
28052 ,DATE_CREATED_IN_OKL
28053 ,APPLICATION_CODE
28054 ,CONTRACT_CATEGORY
28055 ,CONTRACT_NUMBER_OLD
28056 ,CONTRACT_SOURCE
28057 ,CONTRACT_NUMBER
28058 ,CUSTOMER_NUMBER
28059 ,CUSTOMER_ID
28060 ,CUSTOMER_ACCOUNT_NUMBER
28061 ,CUSTOMER_ACCOUNT_ID
28062 ,START_DATE
28063 ,IMPORT_REQUEST_STAGE
28064 ,CURRENCY_CODE
28065 ,CUSTOMER_PO_NUMBER
28066 ,DATE_SIGNED
28067 ,DATE_APPROVED
28068 ,ACCEPTANCE_METHOD_CODE
28069 ,CONSUMER_CREDIT_ACT_DEAL_FLAG
28070 ,TERM
28071 ,CONVERTED_ACCOUNT
28072 ,ACCEPTED_DATE
28073 ,DEAL_TYPE_CODE
28074 ,EXPECTED_DELIVERY_DATE
28075 ,CONTRACT_DESCRIPTION
28076 ,SALESPERSON_NAME
28077 ,SALESPERSON_ID
28078 ,PRIVATE_LABEL_NUMBER
28079 ,PRIVATE_LABEL_ID
28080 ,PRIVATE_LABEL_URL
28081 ,PROGRAM_AGREEMENT_NUMBER
28082 ,PROGRAM_AGREEMENT_ID
28083 ,PROGRAM_VENDOR_NAME
28084 ,PROGRAM_VENDOR_ID
28085 ,MASTER_LEASE_AGREEMENT_NUMBER
28086 ,MASTER_LEASE_AGREEMENT_ID
28087 ,PRODUCT_NAME
28088 ,PRODUCT_ID
28089 ,CALCULATE_RESIDUAL_INSURANCE
28090 ,REBOOK_LIMIT_DATE
28091 ,IMPORT_REQUEST_ID
28092 ,END_OF_TERM_OPTION
28093 ,END_OF_TERM_AMOUNT
28094 ,MID_TERM_OPTION
28095 ,MID_TERM_AMOUNT
28096 ,SECURITY_DEPOSIT_HOLD_FLAG
28097 ,SECURITY_DEPOSIT_NET_FLAG
28098 ,SECURITY_DEPOSIT_DATE
28099 ,RENEWAL_NOTICE_DAYS
28100 ,RENEWAL_OPTION
28101 ,RENEWAL_AMOUNT
28102 ,LATE_INTEREST_HELD_UNTIL_DATE
28103 ,LATE_INTEREST_EXEMPT_FLAG
28104 ,LATE_INTEREST_PRODUCT_CODE
28105 ,LATE_CHARGE_HELD_UNTIL_DATE
28106 ,LATE_CHARGE_PRODUCT_CODE
28107 ,LATE_CHARGE_EXEMPT_FLAG
28108 ,VARIABLE_RATE
28109 ,CONVERT_TYPE
28110 ,CONVERSION_METHOD
28111 ,DATE_OF_CONVERSION
28112 ,CONVERT_BY_DATE
28113 ,VARIABLE_METHOD
28114 ,INDEX_NAME
28115 ,BASE_RATE
28116 ,ADDER
28117 ,MINIMUM_RATE
28118 ,MAXIMUM_RATE
28119 ,TOLERANCE
28120 ,ADJUSTMENT_FREQUENCY
28121 ,DAYS_IN_YEAR
28122 ,DAYS_IN_MONTH
28123 ,INTEREST_METHOD
28124 ,INTEREST_START_DATE
28125 ,METHOD_OF_CALCULATION
28126 ,FORMULA_NAME
28127 ,CAPITALIZE_FLAG
28128 ,NON_NOTIFICATION_FLAG
28129 ,TAX_WITHHOLDING_FLAG
28130 ,TAX_CALC_FORMULA_NAME
28131 ,TAX_OWNER
28132 ,FACTORING_DATE
28133 ,FACTORING_PERCENTAGE
28134 ,FACTORING_DISCOUNT_RATE
28135 ,EVERGREEN_ELIGIBLE_FLAG
28136 ,BILL_TO_ADDRESS_ID
28137 ,BILL_TO_ADDRESS
28138 ,BANK_ACCOUNT_ID
28139 ,BANK_ACCOUNT_NUMBER
28140 ,REASON_FOR_INVOICE_REVIEW
28141 ,INVOICE_REVIEW_UNTIL_DATE
28142 ,INVOICE_FORMAT_ID
28143 ,INVOICE_FORMAT_CODE
28144 ,PRINT_LEAD_DAYS --hariven bug 5359935
28145 ,REVIEW_INVOICE_FLAG
28146 ,PAYMENT_METHOD_ID
28147 ,PAYMENT_METHOD
28148 ,AUTHORING_ORG_ID
28149 ,INVENTORY_ORGANIZATION_ID
28150 ,POLICY_NUMBER
28151 ,POLICY_EFFECTIVE_FROM
28152 ,POLICY_EFFECTIVE_TO
28153 ,COVERED_AMOUNT
28154 ,DEDUCTIBLE_AMOUNT
28155 ,ENDORSEMENT
28156 ,NAME_OF_INSURED
28157 ,LESSOR_INSURED_FLAG
28158 ,LESSOR_PAYEE_FLAG
28159 ,INSURANCE_COMPANY_NAME
28160 ,INSURANCE_COMPANY_ID
28161 ,INSURANCE_COMPANY_SITE_NAME
28162 ,INSURANCE_COMPANY_SITE_ID
28163 ,AGENT_NAME
28164 ,AGENT_ID
28165 ,AGENT_ADDRESS_SITE_NAME
28166 ,AGENT_ADDRESS_SITE_ID
28167 ,PROOF_DUE_DATE
28168 ,PROOF_PROVIDED_DATE
28169 ,PREFUNDING_ELIGIBLE_FLAG
28170 ,PRIVATE_ACTIVITY_BOND_FLAG
28171 ,RVI_AUTO_CALCULATE_FLAG
28172 ,RVI_GUARANTEED_AMOUNT
28173 ,RVI_PRESENT_GUARANTEED_AMOUNT
28174 ,RVI_PREMIUM_AMOUNT
28175 ,RVI_RATE
28176 ,FLOOR_PRICE_FORMULA
28177 ,REMKT_SALE_PRICE_FORMULA
28178 ,REPURCHASE_QUOTE_OPTION
28179 ,REPURCHASE_QUOTE_FORMULA
28180 ,SALE_PRICE_OPTION
28181 ,SALE_PRICE_AMOUNT
28182 ,SALE_PRICE_FORMULA
28183 ,SALE_PRICE_PRORATE
28184 ,DISCOUNT_RATE_OPTION
28185 ,DISCOUNT_RATE_AMOUNT
28186 ,DISCOUNT_RATE_FORMULA
28187 ,DISCOUNT_RATE_PRORATE
28188 ,QUOTE_FEE_OPTION
28189 ,QUOTE_FEE_AMOUNT
28190 ,QUOTE_FEE_FORMULA
28191 ,QUOTE_FEE_PRORATE
28192 ,ERT_PURCHASE_OPT
28193 ,ERT_PURCHASE_OPT_TYPE
28194 ,ERT_PURCHASE_OPT_AMOUNT
28195 ,ERT_PURCHASE_OPT_FORMULA
28196 ,ERT_PURCHASE_OPT_PRORATE
28197 ,ERT_PURCHASE_OPT_MAX_OPT
28198 ,ERT_PURCHASE_OPT_MAX_AMT
28199 ,ERT_PURCHASE_OPT_MAX_FORMULA
28200 ,ERT_PURCHASE_OPT_MIN_OPT
28201 ,ERT_PURCHASE_OPT_MIN_AMT
28202 ,ERT_PURCHASE_OPT_MIN_FORMULA
28203 ,EOT_PURCHASE_OPT
28204 ,EOT_PURCHASE_OPT_TYPE
28205 ,EOT_PURCHASE_OPT_AMOUNT
28206 ,EOT_PURCHASE_OPT_FORMULA
28207 ,EOT_PURCHASE_OPT_PRORATE
28208 ,EOT_PURCHASE_OPT_MAX_OPT
28209 ,EOT_PURCHASE_OPT_MAX_AMT
28210 ,EOT_PURCHASE_OPT_MAX_FORMULA
28211 ,EOT_PURCHASE_OPT_MIN_OPT
28212 ,EOT_PURCHASE_OPT_MIN_AMT
28213 ,EOT_PURCHASE_OPT_MIN_FORMULA
28214 ,TQP_ERL_TERMINATION_ALWD_FLAG
28215 ,TQP_PRT_TERMINATION_ALWD_FLAG
28216 ,QUOTE_EFFECTIVE_DAYS
28217 ,QUOTE_EFF_MAX_DAYS
28218 ,EOT_TOLERANCE_DAYS
28219 ,PRT_TERMINATION_APPROVAL_REQ
28220 ,PRT_TERMINATION_ALLOWED_FLAG
28221 ,GAIN_LOSS_APPROVAL_REQ
28222 ,GAIN_LOSS_NET_QUOTE_OPT
28223 ,GAIN_LOSS_NET_QUOTE_AMT
28224 ,GAIN_LOSS_NET_QUOTE_FORMULA
28225 ,GAIN_LOSS_TOLERANCE_ALLOWED
28226 ,QUOTE_RCPT_CONTRACT_ROLE
28227 ,QUOTE_APPROVER_CONTRACT_ROLE
28228 ,QUOTE_CRTSY_COPY_CONTRACT_ROLE
28229 ,ERT_QUOTE_CALC_TERM_OPTION
28230 ,ERT_QUOTE_CALC_TERM_FORMULA
28231 ,ERT_CONTRACT_OBLIG_OPT
28232 ,ERT_CONTRACT_OBLIG_AMOUNT
28233 ,ERT_CONTRACT_OBLIG_FORMULA
28234 ,ERT_CONTRACT_OBLIG_PRORATE
28235 ,ERT_DISC_RATE_OPT
28236 ,ERT_DISC_RATE_AMOUNT
28237 ,ERT_DISC_RATE_FORMULA
28238 ,ERT_DISC_RATE_PRORATE
28239 ,ERT_QUOTE_FEE_OPT
28240 ,ERT_QUOTE_FEE_AMOUNT
28241 ,ERT_QUOTE_FEE_FORMULA
28242 ,ERT_QUOTE_FEE_PRORATE
28243 ,ERT_RETURN_FEE_OPTION
28244 ,ERT_RETURN_FEE_AMOUNT
28245 ,ERT_RETURN_FEE_FORMULA
28246 ,ERT_RETURN_FEE_PRORATE
28247 ,ERT_ROLL_INCTV_OPTION
28248 ,ERT_ROLL_INCTV_AMOUNT
28249 ,ERT_ROLL_INCTV_FORMULA
28250 ,ERT_ROLL_INCTV_PRORATE
28251 ,ERT_SECU_DEP_DISPO_OPTION
28252 ,ERT_SECU_DEP_DISPO_AMOUNT
28253 ,ERT_SECU_DEP_DISPO_FORMULA
28254 ,ERT_SECU_DEP_DISPO_PRORATE
28255 ,ERT_TERM_PENALTY_OPTION
28256 ,ERT_TERM_PENALTY_AMOUNT
28257 ,ERT_TERM_PENALTY_FORMULA
28258 ,ERT_TERM_PENALTY_PRORATE
28259 ,ERT_TERM_PENALTY_CAP_OPTION
28260 ,ERT_TERM_PENALTY_CAP_AMOUNT
28261 ,ERT_TERM_PENALTY_CAP_FORMULA
28262 ,ERT_EST_PROP_TAX_OPTION
28263 ,ERT_EST_PROP_TAX_AMOUNT
28264 ,ERT_EST_PROP_TAX_FORMULA
28265 ,ERT_EST_PROP_TAX_PRORATE
28266 ,ERT_CONTR_FEES_OPTION
28267 ,ERT_OUTSTND_BAL_OPTION
28268 ,ERT_SERV_MANT_OPTION
28269 ,EOT_QUOTE_CALC_TERM_OPTION
28270 ,EOT_QUOTE_CALC_TERM_FORMULA
28271 ,EOT_CONTRACT_OBLIG_OPT
28272 ,EOT_CONTRACT_OBLIG_AMOUNT
28273 ,EOT_CONTRACT_OBLIG_FORMULA
28274 ,EOT_CONTRACT_OBLIG_PRORATE
28275 ,EOT_DISC_RATE_OPT
28276 ,EOT_DISC_RATE_AMOUNT
28277 ,EOT_DISC_RATE_FORMULA
28278 ,EOT_DISC_RATE_PRORATE
28279 ,EOT_QUOTE_FEE_OPT
28280 ,EOT_QUOTE_FEE_AMOUNT
28281 ,EOT_QUOTE_FEE_FORMULA
28282 ,EOT_QUOTE_FEE_PRORATE
28283 ,EOT_RETURN_FEE_OPTION
28284 ,EOT_RETURN_FEE_AMOUNT
28285 ,EOT_RETURN_FEE_FORMULA
28286 ,EOT_RETURN_FEE_PRORATE
28287 ,EOT_ROLL_INCTV_OPTION
28288 ,EOT_ROLL_INCTV_AMOUNT
28289 ,EOT_ROLL_INCTV_FORMULA
28290 ,EOT_ROLL_INCTV_PRORATE
28291 ,EOT_SECU_DEP_DISPO_OPTION
28292 ,EOT_SECU_DEP_DISPO_AMOUNT
28293 ,EOT_SECU_DEP_DISPO_FORMULA
28294 ,EOT_SECU_DEP_DISPO_PRORATE
28295 ,EOT_TERM_PENALTY_OPTION
28296 ,EOT_TERM_PENALTY_AMOUNT
28297 ,EOT_TERM_PENALTY_FORMULA
28298 ,EOT_TERM_PENALTY_PRORATE
28299 ,EOT_TERM_PENALTY_CAP_OPTION
28300 ,EOT_TERM_PENALTY_CAP_AMOUNT
28301 ,EOT_TERM_PENALTY_CAP_FORMULA
28302 ,EOT_EST_PROP_TAX_OPTION
28303 ,EOT_EST_PROP_TAX_AMOUNT
28304 ,EOT_EST_PROP_TAX_FORMULA
28305 ,EOT_EST_PROP_TAX_PRORATE
28306 ,EOT_CONTR_FEES_OPTION
28307 ,EOT_OUTSTND_BAL_OPTION
28308 ,EOT_SERV_MANT_OPTION
28309 ,EVERGREEN_PASSTHRU_FEES
28310 ,EVERGREEN_PASSTHRU_PERCENT
28311 ,LIEN_TYPE
28312 ,FILING_NUMBER
28313 ,FILING_DATE
28314 ,FILING_STATUS
28315 ,LIEN_HOLDER_NAME
28316 ,LIEN_HOLDER_ID
28317 ,JURISDICTION
28318 ,SUB_JURISDICTION
28319 ,LIEN_EXPIRATION_DATE
28320 ,LIEN_CONTINUATION_NUMBER
28321 ,LIEN_CONTINUATION_DATE
28322 ,TITLE_TYPE
28323 ,TITLE_ISSUER_NAME
28324 ,TITLE_ISSUER_ID
28325 ,TITLE_DATE
28326 ,TITLE_NUMBER
28327 ,REGISTRATION_NUMBER
28328 ,LOCATION
28329 ,TITLE_CUSTODIAN_NAME
28330 ,TITLE_CUSTODIAN_ID
28331 ,PAYEE_SITE
28332 ,REGISTRATION_LOCATION
28333 ,REG_EXPIRATION_DATE
28334 ,CREDIT_LINE_ID
28335 ,CREDIT_LINE_NUMBER
28336 ,PRTFL_APPROVAL_REQ
28337 ,PRTFL_ASSGN_GROUP
28338 ,PRTFL_BUDGET_AMT_OPT
28339 ,PRTFL_BUDGET_FIXED_AMT
28340 ,PRTFL_BUDGET_AMT_FORMULA
28341 ,PRTFL_DAYS_FROM_CON_EXPR
28342 ,PRTFL_STRATEGY
28343 ,PROP_TAX_APPLICABLE
28344 ,PROP_TAX_LEASE_REP
28345 ,MEX_TAX_SUB_BASIC_WTHLD
28346 ,MEX_TAX_CALC_FORMULA
28347 ,AUS_TAX_STAMP_DUTY
28348 ,CURRENCY_CONVERSION_TYPE
28349 ,CURRENCY_CONVERSION_RATE
28350 ,CURRENCY_CONVERSION_DATE
28351 ,ASSIGNABLE_YN
28352 ,LESSEE_VENDOR_ID
28353 ,LESSEE_VENDOR_NAME
28354 ,LESSEE_VENDOR_SITE_ID
28355 ,LESSEE_VENDOR_SITE_CODE
28356 ,INSURANCE_COMPANY_NUMBER
28357 ,INSURANCE_COMPANY_SITE_NUMBER
28358 ,AGENT_NUMBER
28359 ,AGENT_ADDRESS_SITE_NUMBER
28360 ,CASH_APPL_RULE_NAME
28361 ,PROP_TAX_BILL_METHOD
28362 ,GAIN_LOSS_TOLRNC_ALLWD_AMT
28363 ,GAIN_LOSS_TOLRNC_ALLWD_FRML
28364 ,GAIN_LOSS_TOLRNC_BASIS
28365 ,GAIN_LOSS_APPRV_PROC_FRML
28366 ,ERT_ABSORBED_FEE_FRML
28367 ,ERT_EXPENSE_FEE_FRML
28368 ,ERT_FINANCED_FEE_FRML
28369 ,ERT_GENERAL_FEE_FRML
28370 ,ERT_INCOME_FEE_FRML
28371 ,ERT_MISC_FEE_FRML
28372 ,ERT_PASSTHRU_FEE_FRML
28373 ,ERT_ROLLOVER_FEE_FRML
28374 ,EOT_ABSORBED_FEE_FRML
28375 ,EOT_EXPENSE_FEE_FRML
28376 ,EOT_FINANCED_FEE_FRML
28377 ,EOT_GENERAL_FEE_FRML
28378 ,EOT_INCOME_FEE_FRML
28379 ,EOT_MISC_FEE_FRML
28380 ,EOT_PASSTHRU_FEE_FRML
28381 ,EOT_ROLLOVER_FEE_FRML
28382 ,DELETE_BEFORE_IMPORT_YN -- akp_delete
28383 ,ST_UPDATE_LINES_FROM_CONTRACT
28384 ,ST_INTEREST_DISCLOSED
28385 ,ST_TRANSFER_OF_TITLE
28386 ,ST_SALE_AND_LEASE_BACK
28387 ,ST_PURCHASE_OF_LEASE
28388 ,ST_EQUIPMENT_USAGE
28389 ,ST_EQUIPMENT_AGE
28390 ,ST_ASSET_UPFRONT_TAX
28391 ,ST_BILL_STREAM_TYPE_CODE
28392 ,ST_BILL_STREAM_PURPOSE_CODE
28393 ,ST_FIN_STREAM_TYPE_CODE
28394 ,ST_FIN_STREAM_PURPOSE_CODE
28395 ,ST_CAP_STREAM_TYPE_CODE
28396 ,ST_CAP_STREAM_PURPOSE_CODE
28397 ,INT_RATE_EFFECTIVE_FROM_DATE
28398 ,INT_RATE_EFFECTIVE_TO_DATE
28399 ,INT_RATE_PRINC_BASIS_CODE
28400 ,INT_RATE_BASIS_CODE
28401 ,INT_RATE_DELAY_CODE
28402 ,INT_RATE_DELAY_FREQ
28403 ,INT_RATE_CMPND_FREQ_CODE
28404 ,INT_RATE_CATCHUP_BASIS_CODE
28405 ,INT_RATE_CATCHUP_START_DATE
28406 ,INT_RATE_CAT_STLMNT_CODE
28407 ,INT_RATE_CHANGE_START_DATE
28408 ,INT_RATE_CHANGE_FREQ_CODE
28409 ,INT_RATE_CHANGE_VALUE
28410 ,INT_RATE_CON_OPTION_CODE
28411 ,INT_RATE_NEXT_CON_DATE
28412 ,INT_RATE_CON_INDEX_NAME
28413 ,INT_RATE_CON_BASE_RATE
28414 ,INT_RATE_CON_START_DATE
28415 ,INT_RATE_CON_ADDER_RATE
28416 ,INT_RATE_CON_MAXIMUM_RATE
28417 ,INT_RATE_CON_MINIMUM_RATE
28418 ,INT_RATE_CON_PRC_BAS_CODE
28419 ,INT_RATE_CON_DAY_MTH_CODE
28420 ,INT_RATE_CON_DAY_YER_CODE
28421 ,INT_RATE_CON_INT_BAS_CODE
28422 ,INT_RATE_CON_RATE_DELAY_CODE
28423 ,INT_RATE_CON_RATE_DELAY_FREQ
28424 ,INT_RATE_CON_CMPND_FREQ_CODE
28425 ,INT_RATE_CON_FORMULA_NAME
28426 ,INT_RATE_CON_CAT_BAS_CODE
28427 ,INT_RATE_CON_CAT_START_DATE
28428 ,INT_RATE_CON_CAT_STLMNT_CODE
28429 ,INT_RATE_CON_CHG_START_DATE
28430 ,INT_RATE_CON_CHG_FREQ_CODE
28431 ,INT_RATE_CON_CHG_VALUE
28432 ,INT_RATE_CAT_FREQ_CODE
28433 ,INT_RATE_CON_CAT_FREQ_CODE
28434 ,RVI_STREAM_CODE
28435 ,RVI_STREAM_PURPOSE_CODE
28436 ,ATTRIBUTE_CATEGORY
28437 ,ATTRIBUTE1
28438 ,ATTRIBUTE2
28439 ,ATTRIBUTE3
28440 ,ATTRIBUTE4
28441 ,ATTRIBUTE5
28442 ,ATTRIBUTE6
28443 ,ATTRIBUTE7
28444 ,ATTRIBUTE8
28445 ,ATTRIBUTE9
28446 ,ATTRIBUTE10
28447 ,ATTRIBUTE11
28448 ,ATTRIBUTE12
28449 ,ATTRIBUTE13
28450 ,ATTRIBUTE14
28451 ,ATTRIBUTE15
28452 ,EOT_AUTO_PROC_PURCHASE_OPT
28453 ,PTH_EVG_PAYOUT_BASIS
28454 ,PTH_PAYOUT_BASIS_FORMULA
28455 ,PTH_EVG_STREAM_CODE
28456 ,PTH_EVG_STREAM_PURPOSE_CODE
28457 ,SEND_BILL_SALE
28458 ,MANUAL_QUOTES_ONLY
28459 ,FIRST_TERMINATION_DATE
28460 ,QUOTE_RCPT_ADDL_RCPT_ROLE
28461 ,QUOTE_RCPT_ALLOC_PTG
28462 ,QUOTE_APPRVR_ADV_NOTICE_ROLE
28463 ,QUOTE_APPROVER_DELAY_DAYS
28464 ,ERT_SERV_MANT_FRML
28465 ,EOT_SERV_MANT_FRML
28466 --Added by dpsingh for LE Uptake
28467 ,LEGAL_ENTITY_ID
28468 ,ST_TAX_SCHEDULE_APPLIES_FLAG
28469 FROM okl_header_interface
28470 WHERE (
28471 batch_number = p_batch_number
28472 OR
28473 contract_number_old = p_contract_number
28474 OR
28475 (
28476 customer_number = p_customer_number
28477 AND
28478 start_date between p_start_date_from AND p_start_date_to
28479 )
28480 )
28481 AND nvl(scheduled_worker_id, 'NONE') = g_instance_number
28482 AND status in ('NEW', 'ERROR') -- Bug 4350579
28483 AND application_code = 'OKL' -- Bug 4350579
28484 AND contract_category = 'LEASE'; -- Bug 4350579
28485 --AND status in ('ELIGIBLE'); --Process only ELIGIBLE (i.e. validated) record
28486
28487 --
28488 -- Cursor to fetch Line Interface Records for each contract header
28489 --
28490
28491 CURSOR okl_line_csr (p_contract_number_old VARCHAR2) IS
28492 SELECT *
28493 FROM okl_lines_interface
28494 WHERE contract_number_old = p_contract_number_old
28495 AND serial_number IS NULL -- indicates TOP line
28496 AND line_type <> 'ASSET_SUBSIDY' -- this line_type is being processed in process_subsidy()
28497 AND line_type <> 'ASSET_ADDON' -- this line_type is being processed in process_addon()
28498 ORDER BY
28499 line_type,
28500 line_number;
28501
28502 CURSOR okl_ib_csr (p_contract_number_old VARCHAR2,
28503 p_line_number NUMBER) IS
28504 SELECT serial_number
28505 FROM okl_lines_interface
28506 WHERE contract_number_old = p_contract_number_old
28507 AND serial_number IS NOT NULL
28508 AND line_number = p_line_number;
28509
28510 --
28511 -- Cursor to fetch Party roles interface Records for each contract header/Line
28512 --
28513 CURSOR okl_party_csr (p_contract_number_old VARCHAR2,
28514 p_line_number NUMBER) IS
28515 SELECT *
28516 FROM okl_party_roles_interface
28517 WHERE contract_number_old = p_contract_number_old
28518 AND ( (line_number = p_line_number
28519 AND
28520 p_line_number IS NOT NULL
28521 )
28522 OR
28523 (line_number IS NULL
28524 AND
28525 p_line_number IS NULL
28526 )
28527 );
28528
28529 --
28530 -- Cursor to fetch Terms interface Records for each contract header/Line
28531 --
28532 CURSOR okl_term_csr (p_contract_number_old VARCHAR2,
28533 p_line_number NUMBER) IS
28534 SELECT *
28535 FROM okl_terms_interface
28536 WHERE contract_number_old = p_contract_number_old
28537 AND ( line_number = p_line_number
28538 AND
28539 p_line_number IS NOT NULL
28540 );
28541
28542
28543 --
28544 -- Cursor to fetch Payment interface Records for each contract header/Line
28545 --
28546 CURSOR okl_payment_csr (p_contract_number_old VARCHAR2,
28547 p_line_number NUMBER) IS
28548 SELECT *
28549 FROM okl_payments_interface
28550 WHERE contract_number_old = p_contract_number_old
28551 AND payment_type_code <> 'RENT' -- Bug 5155206
28552 AND ( (line_number = p_line_number
28553 AND
28554 p_line_number IS NOT NULL
28555 )
28556 OR
28557 (line_number IS NULL
28558 AND
28559 p_line_number IS NULL
28560 )
28561 )
28562 ORDER BY
28563 contract_number_old,
28564 line_number,
28565 --asset_number,
28566 payment_type_code,
28567 payment_schedule_number,
28568 start_date;
28569
28570
28571 CURSOR temp_role_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
28572 --Fixed Bug # 5484903
28573 SELECT object1_id1
28574 FROM okc_k_party_roles_b
28575 WHERE dnz_chr_id = p_chr_id
28576 AND chr_id = dnz_chr_id
28577 AND jtot_object1_code = 'OKX_PARTY'
28578 AND rle_code = 'LESSEE';
28579
28580 l_customer_id okc_k_party_roles_v.object1_id1%TYPE;
28581 l_customer_number okl_header_interface.customer_number%TYPE;
28582
28583 CURSOR temp_sales_csr(p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
28584 SELECT sales.object1_id1
28585 FROM okc_contacts_v sales,
28586 okc_k_party_roles_v party
28587 WHERE sales.cpl_id = party.id
28588 AND party.rle_code = 'LESSOR'
28589 AND party.chr_id = p_chr_id
28590 AND party.dnz_chr_id = p_chr_id -- Bug# 3862650
28591 AND sales.role = 'Salesperson';
28592
28593 l_salesperson_id okc_contacts_v.object1_id1%TYPE;
28594 l_salesperson_name okl_header_interface.salesperson_name%TYPE;
28595
28596 CURSOR temp_aggr_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
28597 p_scs_code OKC_K_HEADERS_V.SCS_CODE%TYPE) IS
28598 SELECT head.id
28599 FROM okc_k_headers_v head,
28600 okc_governances gov
28601 WHERE head.id = gov.chr_id_referred
28602 AND head.scs_code = p_scs_code --'MASTER_LEASE'
28603 AND gov.dnz_chr_id = p_chr_id;
28604
28605 CURSOR txl_csr (p_khr_id NUMBER,
28606 p_kle_id NUMBER) IS
28607 SELECT id
28608 FROM okl_txl_assets_b
28609 WHERE dnz_khr_id = p_khr_id
28610 AND kle_id = p_kle_id;
28611
28612 CURSOR deal_csr (p_chr_id OKC_K_HEADERS_B.ID%TYPE) IS
28613 SELECT 'Y' loan_revolving
28614 FROM okl_k_headers
28615 WHERE deal_type = 'LOAN-REVOLVING'
28616 AND id = p_chr_id;
28617
28618 CURSOR c_asset (p_asset_number OKL_LA_RELEASE_ASSETS_UV.ASSET_NUMBER%TYPE) IS
28619 SELECT asset_id
28620 FROM FA_ADDITIONS_B
28621 WHERE asset_number = p_asset_number;
28622
28623 l_master_lease_aggr_id NUMBER;
28624 l_credit_line_id NUMBER;
28625 x_credit_line_id NUMBER;
28626
28627 x_sub_cle_id OKC_K_LINES_V.ID%TYPE;
28628 l_payment_level VARCHAR2(3);
28629 l_pmnt_line_id OKC_K_LINES_V.ID%TYPE;
28630
28631 l_loan_yn VARCHAR2(1) := 'N';
28632 l_prev_corp_book VARCHAR2(15) := 'NULL';
28633 l_prev_asset_number VARCHAR2(15) := 'NULL';
28634 l_prev_tax_book VARCHAR2(15) := 'NULL';
28635
28636 x_release_asset VARCHAR2(1) := 'N';
28637 x_asset_id OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE;
28638 x_txd_id OKL_TXD_ASSETS_B.ID%TYPE;
28639
28640 x_party_pmnt_hdr_tbl_out pphv_tbl_type;
28641 l_counter NUMBER;
28642
28643 x_evg_cont_pmnt_hdr_out pphv_tbl_type;
28644
28645 -- Bug 5155206
28646 /*Cursor to fetch Payment interface Records for each contract header/Line of
28647 type RENT only */
28648 CURSOR okl_payment_rent_csr (p_contract_number_old VARCHAR2,
28649 p_line_number NUMBER) IS
28650 SELECT *
28651 FROM okl_payments_interface
28652 WHERE contract_number_old = p_contract_number_old
28653 AND payment_type_code = 'RENT'
28654 AND ( (line_number = p_line_number
28655 AND
28656 p_line_number IS NOT NULL
28657 )
28658 OR
28659 (line_number IS NULL
28660 AND
28661 p_line_number IS NULL
28662 )
28663 )
28664 ORDER BY
28665 contract_number_old,
28666 line_number,
28667 --asset_number,
28668 payment_schedule_number,
28669 start_date;
28670 -- Bug 5155206
28671 --Added by dpsingh for LE Uptake
28672 l_exists NUMBER(1):=0;
28673 item_not_found_error EXCEPTION;
28674
28675 -- hariven - Bug#5393374 - Added - Start
28676 -- Procedure to raise Business Event - "oracle.apps.okl.la.lease_contract.imported"
28677 PROCEDURE raise_business_event(
28678 p_chr_id IN NUMBER
28679 , x_return_status OUT NOCOPY VARCHAR2
28680 ) IS
28681 l_parameter_list wf_parameter_list_t;
28682 BEGIN
28683 x_return_status := OKL_API.G_RET_STS_SUCCESS;
28684 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
28685
28686 OKL_WF_PVT.raise_event (p_api_version => 1.0,
28687 p_init_msg_list => p_init_msg_list,
28688 x_return_status => x_return_status,
28689 x_msg_count => x_msg_count,
28690 x_msg_data => x_msg_data,
28691 p_event_name => G_WF_EVT_KHR_IMPORTED,
28692 p_parameters => l_parameter_list);
28693
28694 EXCEPTION
28695 WHEN OTHERS THEN
28696 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
28697 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
28698 END raise_business_event;
28699 -- hariven - Bug#5393374 - Added - End
28700
28701 BEGIN -- Actual Procedure Starts Here
28702
28703 l_proc_name := 'LOAD_INPUT_RECORD';
28704 x_return_status := OKL_API.G_RET_STS_SUCCESS; -- Assume Success at begining
28705 --okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE);
28706
28707 l_progress := '000';
28708
28709 --okl_context.set_okc_org_context(204,204);
28710 -- 4374085
28711 get_qcl_id(
28712 x_return_status => x_return_status,
28713 p_qcl_name => 'OKL LA QA CHECK LIST',
28714 x_qcl_id => g_qcl_id
28715 );
28716
28717 debug_message('Load... Started');
28718
28719
28720 FOR okl_header_rec IN okl_header_csr (p_batch_number,
28721 p_start_date_from,
28722 p_start_date_to,
28723 p_contract_number,
28724 p_customer_number )
28725 LOOP
28726
28727
28728 BEGIN --1
28729 -- Populates Header Record before calling APIs
28730 --fnd_file.put_line(fnd_file.output, 'Loading... '||okl_header_rec.contract_number_old);
28731 okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE);
28732
28733 debug_message(l_proc_name);
28734 debug_message('');
28735
28736 debug_message('Calling check_and_delete ' || to_char(sysdate,'HH24:MI:SS'));
28737 -- Check to delete contract from OLM before loading
28738 check_and_delete(
28739 x_return_status => x_return_status,
28740 x_msg_count => x_msg_count,
28741 x_msg_data => x_msg_data,
28742 p_contract_number => okl_header_rec.contract_number,
28743 p_delete_before_import_yn => okl_header_rec.delete_before_import_yn -- akp_delete
28744 );
28745 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28746 RAISE load_failed;
28747 END IF;
28748 debug_message('check_and_delete done ' || to_char(sysdate,'HH24:MI:SS'));
28749
28750 write_to_log('Loading... '||okl_header_rec.contract_number_old);
28751 debug_message('Loading... '||okl_header_rec.contract_number_old);
28752
28753 g_release_asset_flag := 'N'; -- global variable to check released asset
28754
28755 --
28756 -- Get Template Information if requested
28757 --
28758
28759 IF (okl_header_rec.template_number IS NOT NULL) THEN
28760 l_header_template := get_template(
28761 x_return_status => x_return_status,
28762 x_msg_count => x_msg_count,
28763 x_msg_data => x_msg_data,
28764 p_template_number => okl_header_rec.template_number
28765 );
28766
28767 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28768 RAISE load_failed;
28769 END IF;
28770
28771 debug_message('--->Template information retrieved');
28772 END IF;
28773
28774 -- comment out. cklee l_intf_h_rec := okl_header_rec;
28775
28776 -- debug_message('--->Template information retrieved');
28777 -- It checks template and interface record and prepare final header rec
28778 populate_header_rec(
28779 x_return_status => x_return_status,
28780 x_msg_count => x_msg_count,
28781 x_msg_data => x_msg_data,
28782 p_temp_header => l_header_template,
28783 p_intf_header => okl_header_rec,--comment out. cklee l_intf_h_rec,
28784 x_chrv_rec => l_chrv_rec,
28785 x_khrv_rec => l_khrv_rec
28786 );
28787
28788 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28789 RAISE load_failed;
28790 END IF;
28791
28792 -- Call API to create Contract Header
28793 debug_message('--->Header record populated');
28794
28795 l_progress := '010';
28796
28797 --Added by dpsingh for LE Uptake
28798 IF (okl_header_rec.legal_entity_id IS NOT NULL) AND
28799 (okl_header_rec.legal_entity_id <> Okl_Api.G_MISS_NUM) THEN
28800
28801 -- l_exists := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists(okl_header_rec.legal_entity_id) ;
28802 OPEN le_entity(NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),okl_header_rec.legal_entity_id);
28803 FETCH le_entity INTO l_exists;
28804
28805 CLOSE le_entity;
28806 IF (l_exists <>1 ) THEN
28807 debug_message('--->Legal entity is not valid for operating unit');
28808 Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LEGAL_ENTITY_ID');
28809 RAISE item_not_found_error;
28810 END IF;
28811 END IF;
28812 l_khrv_rec.legal_entity_id := okl_header_rec.legal_entity_id ;
28813 -- Call Header API to create header
28814 okl_contract_pub.create_contract_header(
28815 p_api_version => 1.0,
28816 p_init_msg_list => OKL_API.G_FALSE,
28817 x_return_status => x_return_status,
28818 x_msg_count => x_msg_count,
28819 x_msg_data => x_msg_data,
28820 p_chrv_rec => l_chrv_rec,
28821 p_khrv_rec => l_khrv_rec,
28822 x_chrv_rec => x_chrv_rec,
28823 x_khrv_rec => x_khrv_rec
28824 );
28825 l_progress := '050';
28826
28827 debug_message('Contract header call ends...'||x_return_status);
28828 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28829
28830 x_return_status := OKL_API.G_RET_STS_ERROR;
28831
28832 RAISE load_failed;
28833 END IF;
28834
28835 debug_message('--->Contract Header Created');
28836 debug_message('--->Evergreen passthru at contract header - Start');
28837
28838 g_evg_cont_pmnt_hdr := NULL;
28839
28840 IF (okl_header_rec.pth_evg_payout_basis IS NOT NULL) THEN
28841
28842 create_party_payment_hdr(
28843 x_return_status => x_return_status,
28844 x_msg_count => x_msg_count,
28845 x_msg_data => x_msg_data,
28846 p_contract_id => x_chrv_rec.id,
28847 p_line_id => NULL,
28848 p_line_type => NULL,
28849 p_pth_start_date => NULL,
28850 p_pth_base_payout_basis => NULL,
28851 p_pth_base_stream_code => NULL,
28852 p_pth_base_stream_purpose_code => NULL,
28853 p_pth_evg_payout_basis => okl_header_rec.pth_evg_payout_basis,
28854 p_pth_payout_basis_formula => okl_header_rec.pth_payout_basis_formula,
28855 p_pth_evg_stream_code => okl_header_rec.pth_evg_stream_code,
28856 p_pth_evg_stream_purpose_code => okl_header_rec.pth_evg_stream_purpose_code,
28857 x_party_pmnt_hdr_tbl => x_evg_cont_pmnt_hdr_out
28858 );
28859 debug_message('------>Create evergreen at contract header ends'||x_return_status);
28860 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28861 x_return_status := OKL_API.G_RET_STS_ERROR;
28862 RAISE load_failed;
28863 END IF;
28864
28865 debug_message('x_evg_cont_pmnt_hdr_out.count: '||x_evg_cont_pmnt_hdr_out.COUNT);
28866
28867 IF (x_evg_cont_pmnt_hdr_out.COUNT > 0) THEN
28868 g_evg_cont_pmnt_hdr := x_evg_cont_pmnt_hdr_out(1); --only 1 evg record at contract header
28869 END IF;
28870 END IF;
28871 debug_message('--->Evergreen passthru at contract header - End');
28872
28873 l_master_lease_aggr_id := NULL;
28874
28875 IF (okl_header_rec.master_lease_agreement_id IS NOT NULL
28876 OR
28877 okl_header_rec.master_lease_agreement_number IS NOT NULL) THEN
28878
28879 x_return_status := get_agreement_id(
28880 p_scs_code => 'MASTER_LEASE',
28881 p_auth_org_id => l_chrv_rec.authoring_org_id,
28882 p_agreement_number => okl_header_rec.master_lease_agreement_number,
28883 p_agreement_id => okl_header_rec.master_lease_agreement_id,
28884 x_agreement_id => x_master_lease_id
28885 );
28886
28887 l_master_lease_aggr_id := x_master_lease_id;
28888
28889 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28890 okl_api.set_message(
28891 G_APP_NAME,
28892 G_INVALID_VALUE,
28893 'CONTRACT_NUM',
28894 okl_header_rec.contract_number_old,
28895 'COL_NAME',
28896 'MASTER_LEASE_AGREEMENT_ID, NUMBER: ',
28897 'COL_VALUE',
28898 okl_header_rec.master_lease_agreement_id||', '||okl_header_rec.master_lease_agreement_number
28899 );
28900 RAISE load_failed;
28901 END IF;
28902 ELSE
28903 IF (okl_header_rec.template_number IS NOT NULL) THEN
28904
28905 l_master_lease_aggr_id := NULL;
28906
28907 OPEN temp_aggr_csr (l_header_template.id,
28908 'MASTER_LEASE');
28909 FETCH temp_aggr_csr INTO l_master_lease_aggr_id;
28910 CLOSE temp_aggr_csr;
28911
28912 END IF;
28913
28914 END IF;
28915
28916 IF (l_master_lease_aggr_id IS NOT NULL) THEN
28917
28918 l_gvev_rec.dnz_chr_id := x_chrv_rec.id;
28919 l_gvev_rec.chr_id := x_chrv_rec.id;
28920 l_gvev_rec.chr_id_referred := l_master_lease_aggr_id;
28921 l_gvev_rec.cle_id := NULL;
28922 l_gvev_rec.copied_only_yn := 'Y';
28923
28924 okl_okc_migration_pvt.create_governance(
28925 p_api_version => 1.0,
28926 p_init_msg_list => OKL_API.G_FALSE,
28927 x_return_status => x_return_status,
28928 x_msg_count => x_msg_count,
28929 x_msg_data => x_msg_data,
28930 p_gvev_rec => l_gvev_rec,
28931 x_gvev_rec => x_gvev_rec
28932 );
28933 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28934 RAISE load_failed;
28935 END IF;
28936
28937 debug_message('--->Master Lease agreement created');
28938 END IF;
28939
28940 -- Process credit line, if any
28941 l_credit_line_id := NULL;
28942 IF (okl_header_rec.credit_line_id IS NOT NULL
28943 OR
28944 okl_header_rec.credit_line_number IS NOT NULL) THEN
28945
28946 x_return_status := get_agreement_id(
28947 p_scs_code => 'CREDITLINE_CONTRACT',
28948 p_auth_org_id => l_chrv_rec.authoring_org_id,
28949 p_agreement_number => okl_header_rec.credit_line_number,
28950 p_agreement_id => okl_header_rec.credit_line_id,
28951 x_agreement_id => x_credit_line_id
28952 );
28953
28954 l_credit_line_id := x_credit_line_id;
28955
28956 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28957 okl_api.set_message(
28958 G_APP_NAME,
28959 G_INVALID_VALUE,
28960 'CONTRACT_NUM',
28961 okl_header_rec.contract_number_old,
28962 'COL_NAME',
28963 'CREDIT LINE ID, NUMBER: ',
28964 'COL_VALUE',
28965 okl_header_rec.credit_line_id||', '||okl_header_rec.credit_line_number
28966 );
28967 RAISE load_failed;
28968 END IF;
28969 ELSE
28970 IF (okl_header_rec.template_number IS NOT NULL) THEN
28971 l_credit_line_id := NULL;
28972
28973 OPEN temp_aggr_csr (l_header_template.id,
28974 'CREDITLINE_CONTRACT');
28975 FETCH temp_aggr_csr INTO l_credit_line_id;
28976 CLOSE temp_aggr_csr;
28977
28978 END IF;
28979 END IF;
28980
28981 IF (l_credit_line_id IS NOT NULL) THEN
28982
28983 --
28984 -- Validated Credit Line contract against
28985 -- customer number and customer account number
28986 -- of the imported contract
28987 --
28988 validate_credit_line(
28989 x_return_status => x_return_status,
28990 x_msg_count => x_msg_count,
28991 x_msg_data => x_msg_data,
28992 p_contract_number => okl_header_rec.contract_number_old,
28993 p_template_id => l_header_template.id,
28994 p_credit_line_id => l_credit_line_id,
28995 p_customer_id => g_customer_id, -- 4414408
28996 p_customer_number => okl_header_rec.customer_number,
28997 p_customer_account_id => x_chrv_rec.cust_acct_id, -- 4414408
28998 p_customer_account_number => okl_header_rec.customer_account_number,
28999 p_start_date => x_chrv_rec.start_date, -- 4414408
29000 p_template_start_date => l_header_template.start_date
29001 );
29002 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29003 okl_api.set_message(
29004 G_APP_NAME,
29005 G_INVALID_VALUE,
29006 'CONTRACT_NUM',
29007 okl_header_rec.contract_number_old,
29008 'COL_NAME',
29009 'CREDIT LINE ID, NUMBER: ',
29010 'COL_VALUE',
29011 okl_header_rec.credit_line_id||', '||okl_header_rec.credit_line_number
29012 );
29013 RAISE load_failed;
29014 END IF;
29015
29016 l_gvev_rec := NULL;
29017 l_gvev_rec.dnz_chr_id := x_chrv_rec.id;
29018 l_gvev_rec.chr_id := x_chrv_rec.id;
29019 l_gvev_rec.chr_id_referred := l_credit_line_id;
29020 l_gvev_rec.cle_id := NULL;
29021 l_gvev_rec.copied_only_yn := 'Y';
29022
29023 okl_okc_migration_pvt.create_governance(
29024 p_api_version => 1.0,
29025 p_init_msg_list => OKL_API.G_FALSE,
29026 x_return_status => x_return_status,
29027 x_msg_count => x_msg_count,
29028 x_msg_data => x_msg_data,
29029 p_gvev_rec => l_gvev_rec,
29030 x_gvev_rec => x_gvev_rec
29031 );
29032 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29033 RAISE load_failed;
29034 END IF;
29035 debug_message('--->Credit line created');
29036 END IF;
29037 -- end of credit line
29038
29039 -- Call Party Role API to create Party Roles, LESSEE and LESSOR
29040
29041 l_customer_id := okl_header_rec.customer_id;
29042 l_customer_number := okl_header_rec.customer_number;
29043
29044 IF (okl_header_rec.template_number IS NOT NULL) THEN
29045 IF (l_customer_id IS NULL
29046 AND
29047 l_customer_number IS NULL) THEN
29048 --
29049 -- Get it from Template Contract
29050 --
29051 l_customer_id := NULL;
29052 OPEN temp_role_csr (l_header_template.id);
29053 FETCH temp_role_csr INTO l_customer_id;
29054 CLOSE temp_role_csr;
29055
29056 l_customer_number := NULL; -- ID is good enough
29057 END IF;
29058 END IF;
29059
29060 l_progress := '060';
29061 create_party_role( x_return_status => x_return_status,
29062 x_msg_count => x_msg_count,
29063 x_msg_data => x_msg_data,
29064 p_contract_header_id => x_khrv_rec.id,
29065 p_contract_number_old => x_chrv_rec.orig_system_reference1,
29066 p_customer_id => l_customer_id,
29067 p_customer_number => l_customer_number,
29068 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),
29069 x_cplv_rec => x_cplv_rec );
29070
29071 l_progress := '070';
29072
29073 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29074 x_return_status := OKL_API.G_RET_STS_ERROR;
29075 raise load_failed;
29076 END IF;
29077
29078 debug_message('--->Party Role created');
29079 l_progress := '080';
29080
29081 --
29082 -- create lessee as vendor if product is loan revolving
29083 --
29084 FOR deal_rec IN deal_csr (x_khrv_rec.id)
29085 LOOP
29086 IF (deal_rec.loan_revolving = 'Y') THEN
29087 debug_message('-----> create_lessee_as_vendor()');
29088
29089 create_lessee_as_vendor(
29090 x_return_status => x_return_status,
29091 x_msg_count => x_msg_count,
29092 x_msg_data => x_msg_data,
29093 p_chr_id => x_khrv_rec.id,
29094 p_contract_num => okl_header_rec.contract_number_old,
29095 p_cpl_id => x_cplv_rec.id,
29096 p_lessee_vendor_id => okl_header_rec.lessee_vendor_id,
29097 p_lessee_vendor_name => okl_header_rec.lessee_vendor_name,
29098 p_lessee_site_id => okl_header_rec.lessee_vendor_site_id,
29099 p_lessee_site_code => okl_header_rec.lessee_vendor_site_code,
29100 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id)
29101 );
29102
29103 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29104 x_return_status := OKL_API.G_RET_STS_ERROR;
29105 raise load_failed;
29106 END IF;
29107
29108 debug_message('--->Lessee as Vendor Created');
29109 END IF;
29110 END LOOP;
29111
29112 -- Create Contact for Sales Rep...???
29113
29114 l_salesperson_id := okl_header_rec.salesperson_id;
29115 l_salesperson_name := okl_header_rec.salesperson_name;
29116
29117 IF (okl_header_rec.template_number IS NOT NULL) THEN
29118 IF (l_salesperson_id IS NULL
29119 AND
29120 l_salesperson_name IS NULL) THEN
29121
29122 l_salesperson_id := NULL;
29123 l_salesperson_name := NULL;
29124
29125 OPEN temp_sales_csr(l_header_template.id);
29126 FETCH temp_sales_csr INTO l_salesperson_id;
29127 CLOSE temp_sales_csr;
29128
29129 END IF;
29130 END IF;
29131
29132 create_contact(
29133 x_return_status => x_return_status,
29134 x_msg_count => x_msg_count,
29135 x_msg_data => x_msg_data,
29136 p_contract_header_id => x_khrv_rec.id,
29137 p_contract_number_old => okl_header_rec.contract_number_old,
29138 p_salesperson_id => l_salesperson_id,
29139 p_salesperson_name => l_salesperson_name,
29140 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),
29141 p_lessor_id => x_cplv_rec.id
29142 );
29143
29144 debug_message('--->Contact created');
29145 l_progress := '081';
29146
29147 debug_message('--->Header rule creation started');
29148 create_header_rules(
29149 x_return_status => x_return_status,
29150 x_msg_count => x_msg_count,
29151 x_msg_data => x_msg_data,
29152 p_chr_id => x_chrv_rec.id,
29153 p_template_id => l_header_template.id,
29154 p_header_rec => okl_header_rec --comment out. ckleel_intf_h_rec
29155 --p_header_rec => l_intf_h_rec
29156 );
29157
29158 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29159 x_return_status := OKL_API.G_RET_STS_ERROR;
29160 raise load_failed;
29161 END IF;
29162 debug_message('--->Header rule creation complete');
29163
29164 -- Create private Label party
29165 create_private_label(
29166 x_return_status => x_return_status,
29167 x_msg_count => x_msg_count,
29168 x_msg_data => x_msg_data,
29169 p_chr_id => x_chrv_rec.id,
29170 p_contract_number => okl_header_rec.contract_number_old,
29171 p_label_number => okl_header_rec.private_label_number,
29172 p_label_id => okl_header_rec.private_label_id,
29173 p_label_url => okl_header_rec.private_label_url
29174 );
29175
29176 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29177 x_return_status := OKL_API.G_RET_STS_ERROR;
29178 raise load_failed;
29179 END IF;
29180 debug_message('--->Private label created');
29181
29182 --
29183 -- Copy program agreement rules, if present, to contract
29184 --
29185 --debug_message('PROG: id: '||x_khrv_rec.khr_id);
29186 --debug_message('PROG: source: '||x_khrv_rec.khr_id);
29187 --debug_message('PROG: dest: '||x_chrv_rec.id);
29188 --debug_message('PROG: org: '||x_chrv_rec.authoring_org_id);
29189 --debug_message('PROG: inv org: '||x_chrv_rec.inv_organization_id);
29190
29191 IF (x_khrv_rec.khr_id IS NOT NULL) THEN
29192 okl_deal_create_pub.copy_rules(
29193 p_api_version => 1.0,
29194 p_init_msg_list => OKL_API.G_FALSE,
29195 x_return_status => x_return_status,
29196 x_msg_count => x_msg_count,
29197 x_msg_data => x_msg_data,
29198 p_source_id => x_khrv_rec.khr_id,
29199 p_dest_id => x_chrv_rec.id, -- imported Contract ID
29200 p_org_id => x_chrv_rec.authoring_org_id,
29201 p_organization_id => x_chrv_rec.inv_organization_id
29202 );
29203
29204 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29205 x_return_status := OKL_API.G_RET_STS_ERROR;
29206 raise load_failed;
29207 END IF;
29208
29209 debug_message('--->Program agreement copied');
29210
29211 END IF;
29212
29213 -- debug_message('--->Program agreement copied');
29214
29215 -- start cklee 02/13/2003 bug# 3440442
29216 -- create 3rd party insurance
29217 -- 1. x_khrv_rec.id indicates contract deatils record exists
29218 -- 2. okl_header_rec.policy_number is a PK for 3rd party insurance policy
29219
29220 IF (x_chrv_rec.id IS NOT NULL and
29221 okl_header_rec.policy_number IS NOT NULL) THEN
29222
29223 create_3rd_party_insurance(
29224 x_return_status => x_return_status,
29225 x_msg_count => x_msg_count,
29226 x_msg_data => x_msg_data,
29227 p_intf_header => okl_header_rec,
29228 --p_intf_header => l_intf_h_rec,
29229 p_chr_id => x_chrv_rec.id -- imported Contract ID
29230 );
29231
29232
29233 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29234 x_return_status := OKL_API.G_RET_STS_ERROR;
29235 raise load_failed;
29236 END IF;
29237
29238 debug_message('--->3rd Party Insurance created');
29239 END IF;
29240
29241 -- end cklee 02/13/2003 bug# 3440442
29242
29243 --debug_message('Contract Number: '||x_chrv_rec.contract_number);
29244 l_progress := '090';
29245
29246 -- Call Line Cursor to get Line detail
29247
29248 l_no_of_lines := 0;
29249 x_inv_item_id_prev := -9999999;
29250 x_cle_id := -9999999;
29251 p_inv_item_id_prev := -9999999;
29252 p_line_type_prev := 'NULL';
29253 l_prev_corp_book := 'NULL';
29254 l_prev_asset_number := 'NULL';
29255 l_prev_tax_book := 'NULL';
29256
29257 -- Check product type
29258 -- in case of loan product, don't populate depreciation detail
29259 -- Bug 3407354
29260 --
29261 check_product_type(
29262 x_return_status => x_return_status,
29263 x_msg_count => x_msg_count,
29264 x_msg_data => x_msg_data,
29265 p_prod_name => okl_header_rec.product_name,
29266 p_prod_id => okl_header_rec.product_id,
29267 x_loan_yn => l_loan_yn
29268 );
29269 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29270 x_return_status := OKL_API.G_RET_STS_ERROR;
29271 RAISE load_failed;
29272 END IF;
29273
29274 -- 4414408
29275 -- Start: Bug #15992711
29276 /* x_release_asset := get_release_asset_flag(
29277 x_return_status => x_return_status,
29278 x_msg_count => x_msg_count,
29279 x_msg_data => x_msg_data,
29280 p_contract_number => okl_header_rec.contract_number_old,
29281 p_org_id => okl_header_rec.inventory_organization_id
29282 ) ;
29283 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29284 x_return_status := OKL_API.G_RET_STS_ERROR;
29285 RAISE load_failed;
29286 END IF;*/
29287 -- End: Bug #15992711
29288
29289 --Bug# 16344245: Check that DT_EFFECTIVE_BALANCE_LEGACY if defined for one asset must be defined
29290 -- with the same date value for all assets
29291 check_balance_legacy(
29292 x_return_status => x_return_status,
29293 x_msg_count => x_msg_count,
29294 x_msg_data => x_msg_data,
29295 p_contract_number => okl_header_rec.contract_number_old
29296 ) ;
29297 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29298 x_return_status := OKL_API.G_RET_STS_ERROR;
29299 RAISE load_failed;
29300 END IF;
29301
29302 FOR okl_line_rec IN okl_line_csr (okl_header_rec.contract_number_old)
29303 LOOP
29304
29305 BEGIN --2
29306
29307 -- Start: Bug #15992711
29308 x_release_asset := get_release_asset_flag(
29309 x_return_status => x_return_status,
29310 x_msg_count => x_msg_count,
29311 x_msg_data => x_msg_data,
29312 p_contract_number => okl_header_rec.contract_number_old,
29313 p_asset_number => okl_line_rec.asset_number, -- Bug# 15992711
29314 p_org_id => okl_header_rec.inventory_organization_id
29315 ) ;
29316 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29317 x_return_status := OKL_API.G_RET_STS_ERROR;
29318 RAISE load_failed;
29319 END IF;
29320 -- End: Bug #15992711
29321
29322 -- Bug 4350579 start
29323 -- validate line information before proceeding
29324 --
29325 debug_message('Processing line : '||okl_line_rec.line_type||'/'||okl_line_rec.line_number);
29326 check_line_literal (
29327 x_return_status => x_return_status,
29328 x_msg_count => x_msg_count,
29329 x_msg_data => x_msg_data,
29330 p_contract_number => okl_header_rec.contract_number_old,
29331 p_import_request_stage => okl_header_rec.import_request_stage,
29332 p_product_id => okl_header_rec.product_id,
29333 p_product_name => okl_header_rec.product_name,
29334 p_line_number => okl_line_rec.line_number,
29335 p_line_type => okl_line_rec.line_type,
29336 p_amount => okl_line_rec.amount,
29337 p_currency_code => okl_header_rec.currency_code,
29338 p_asset_number => okl_line_rec.asset_number,
29339 p_inventory_item_name => okl_line_rec.inventory_item_name,
29340 p_inventory_item_id => okl_line_rec.inventory_item_id,
29341 p_install_site_number => okl_line_rec.install_site_number,
29342 p_install_site_id => okl_line_rec.install_site_id,
29343 p_asset_corporate_book => okl_line_rec.asset_corporate_book,
29344 p_asset_category_id => okl_line_rec.asset_category_id,
29345 p_asset_category_segment1 => okl_line_rec.asset_category_segment1,
29346 p_asset_category_segment2 => okl_line_rec.asset_category_segment2,
29347 p_asset_category_segment3 => okl_line_rec.asset_category_segment3,
29348 p_asset_category_segment4 => okl_line_rec.asset_category_segment4,
29349 p_asset_category_segment5 => okl_line_rec.asset_category_segment5,
29350 p_asset_category_segment6 => okl_line_rec.asset_category_segment6,
29351 p_asset_category_segment7 => okl_line_rec.asset_category_segment7,
29352 p_asset_location_id => okl_line_rec.asset_location_id,
29353 p_asset_location_segment1 => okl_line_rec.asset_location_segment1,
29354 p_asset_location_segment2 => okl_line_rec.asset_location_segment2,
29355 p_asset_location_segment3 => okl_line_rec.asset_location_segment3,
29356 p_asset_location_segment4 => okl_line_rec.asset_location_segment4,
29357 p_asset_location_segment5 => okl_line_rec.asset_location_segment5,
29358 p_asset_location_segment6 => okl_line_rec.asset_location_segment6,
29359 p_asset_location_segment7 => okl_line_rec.asset_location_segment7,
29360 p_depreciation_method_id => okl_line_rec.depreciation_method_id,
29361 p_depreciation_method_code => okl_line_rec.depreciation_method_code,
29362 p_life_in_months => okl_line_rec.life_in_months,
29363 p_fee_code => okl_line_rec.fee_code,
29364 p_stream_purpose => okl_line_rec.stream_purpose_code,
29365 p_fee_type => okl_line_rec.fee_type,
29366 p_price_list_name => okl_line_rec.price_list_name,
29367 p_price_list_id => okl_line_rec.price_list_id,
29368 p_counter_group_name => okl_line_rec.counter_group_name,
29369 p_counter_group_id => okl_line_rec.counter_group_id,
29370 p_usage_bill_frequency_code => okl_line_rec.usage_bill_frequency_code,
29371 p_base_reading_uom_code => okl_line_rec.base_reading_uom_code,
29372 p_usage_type_code => okl_line_rec.usage_type_code,
29373 p_usage_period => okl_line_rec.usage_period,
29374 p_usage_no_of_period => okl_line_rec.usage_no_of_period,
29375 p_tax_cost => okl_line_rec.tax_cost,
29376 p_tax_book => okl_line_rec.tax_book,
29377 p_life_in_months_tax => okl_line_rec.life_in_months_tax,
29378 p_deprn_method_tax => okl_line_rec.deprn_method_tax,
29379 p_deprn_rate_tax => okl_line_rec.deprn_rate_tax,
29380 p_in_service_date => okl_line_rec.in_service_date,
29381 p_link_asset_amount => okl_line_rec.link_asset_amount,
29382 p_inv_org_id => okl_header_rec.inventory_organization_id,
29383 p_term_quote_id => okl_line_rec.termination_quote_id,
29384 p_term_quote_number => okl_line_rec.termination_quote_number,
29385 p_fee_purpose_code => okl_line_rec.fee_purpose_code,
29386 --Bug# 16344245
29387 p_amount_balance_legacy => okl_line_rec.amount_balance_legacy,
29388 p_dt_effective_balance_legacy => okl_line_rec.dt_effective_balance_legacy
29389 );
29390
29391 debug_message('check_line_literal: '||x_return_status);
29392
29393 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29394 x_return_status := OKL_API.G_RET_STS_ERROR;
29395 RAISE load_failed;
29396 END IF;
29397
29398 -- Bug 4321621 end
29399
29400 -- Populates Header Record before calling APIs
29401 l_no_of_lines := l_no_of_lines + 1;
29402 l_progress := '100';
29403 okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE); --Bug 3958519
29404
29405 debug_message('------> Processing Line: '||okl_line_rec.line_type);
29406
29407 l_service_line_id := NULL;
29408 l_fee_line_id := NULL;
29409 l_usage_line_id := NULL;
29410 g_base_pmnt_hdr := NULL;
29411 g_evg_pmnt_hdr := NULL;
29412
29413 -- Get Item and Organization Info, for All line type
29414 IF (okl_line_rec.inventory_item_id IS NOT NULL
29415 OR
29416 okl_line_rec.inventory_item_name IS NOT NULL) THEN
29417 get_inventory_org_item_id(
29418 x_return_status => x_return_status,
29419 x_msg_count => x_msg_count,
29420 x_msg_data => x_msg_data,
29421 p_contract_number => okl_header_rec.contract_number_old,
29422 P_line_number => okl_line_rec.line_number,
29423 p_line_type => okl_line_rec.line_type,
29424 p_inventory_org_id => x_chrv_rec.inv_organization_id,
29425 --okl_line_rec.inventory_organization_id,
29426 p_inventory_item_id => okl_line_rec.inventory_item_id,
29427 p_inventory_item_name => okl_line_rec.inventory_item_name,
29428 x_inventory_org_id => x_inventory_org_id,
29429 x_inventory_item_id => x_inventory_item_id
29430 );
29431
29432 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29433 x_return_status := OKL_API.G_RET_STS_ERROR;
29434 RAISE load_failed;
29435 END IF;
29436
29437 debug_message('------>Inv Org ID: '||x_chrv_rec.inv_organization_id);
29438
29439 END IF;
29440
29441 -- Processing for Asset Lines
29442 IF (okl_line_rec.line_type = 'ASSET') THEN
29443 /* 4414408
29444 IF (okl_line_rec.asset_number = l_prev_asset_number) THEN
29445 x_release_asset := g_release_asset_flag;
29446
29447 ELSE -- check asset type
29448 --
29449 -- Check whether the asset it released already
29450 -- If so, processing will be different
29451 --
29452 check_for_release_asset(
29453 x_return_status => x_return_status,
29454 x_msg_count => x_msg_count,
29455 x_msg_data => x_msg_data,
29456 p_asset_number => okl_line_rec.asset_number,
29457 p_line_number => okl_line_rec.line_number,
29458 p_org_id => x_chrv_rec.inv_organization_id,
29459 x_release_asset => x_release_asset,
29460 x_asset_id => x_asset_id
29461 );
29462
29463 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29464 x_return_status := OKL_API.G_RET_STS_ERROR;
29465 RAISE load_failed;
29466 END IF;
29467 */
29468 IF (x_release_asset = 'N'
29469 AND
29470 okl_line_rec.tax_book IS NOT NULL
29471 AND
29472 okl_line_rec.asset_corporate_book IS NULL) THEN
29473 okl_api.set_message(
29474 G_APP_NAME,
29475 G_MISSING_VALUE_FOR_LINE,
29476 'CONTRACT_NUM',
29477 okl_header_rec.contract_number_old||'/'||TO_CHAR(okl_line_rec.line_number),
29478 'COL_NAME',
29479 'CORPORATE BOOK',
29480 'LINE',
29481 'ASSET'
29482 );
29483 x_return_status := OKL_API.G_RET_STS_ERROR;
29484
29485 END IF;
29486
29487 IF (x_release_asset = 'N'
29488 AND
29489 okl_line_rec.inventory_item_name IS NULL
29490 AND
29491 okl_line_rec.inventory_item_id IS NULL) THEN
29492 okl_api.set_message(
29493 G_APP_NAME,
29494 G_MISSING_VALUE_FOR_LINE,
29495 'CONTRACT_NUM',
29496 okl_header_rec.contract_number_old||'/'||TO_CHAR(okl_line_rec.line_number),
29497 'COL_NAME',
29498 'INVENTORY_ITEM_NAME OR INVENTORY_ITEM_ID',
29499 'LINE',
29500 'ASSET'
29501 );
29502
29503 x_return_status := OKL_API.G_RET_STS_ERROR;
29504 END IF;
29505
29506 IF (x_release_asset = 'N'
29507 AND
29508 okl_line_rec.install_site_number IS NULL
29509 AND
29510 okl_line_rec.install_site_id IS NULL) THEN
29511 okl_api.set_message(
29512 G_APP_NAME,
29513 G_MISSING_VALUE_FOR_LINE,
29514 'CONTRACT_NUM',
29515 okl_header_rec.contract_number_old||'/'||TO_CHAR(okl_line_rec.line_number),
29516 'COL_NAME',
29517 'INSTALL_SITE_NUMBER OR INSTALL_SITE_ID',
29518 'LINE',
29519 'ASSET'
29520 );
29521
29522 x_return_status := OKL_API.G_RET_STS_ERROR;
29523 END IF;
29524
29525 -- END IF;
29526
29527 --
29528 -- make sure all the assets are either released or
29529 -- none of them are released asset,
29530 -- which means, mix of released and new asset should not
29531 -- be attched to a contract
29532 --Bug #15992711
29533 -- As per bug #15992711 a contract can have a mix of assets
29534 -- hence this validation needs to be removed
29535 --Bug #15992711
29536 --
29537 IF (l_no_of_lines = 1) THEN -- first asset line
29538 -- g_release_asset_flag := x_release_asset; -- set the value
29539
29540 create_release_asset_rule(
29541 x_return_status => x_return_status,
29542 x_msg_count => x_msg_count,
29543 x_msg_data => x_msg_data,
29544 p_chr_id => x_chrv_rec.id,
29545 p_release_asset_flag => x_release_asset -- 4414408
29546 );
29547
29548 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29549 x_return_status := OKL_API.G_RET_STS_ERROR;
29550 RAISE load_failed;
29551 END IF;
29552
29553 IF (x_release_asset = 'Y') THEN
29554 OPEN c_asset(okl_line_rec.asset_number);
29555 FETCH c_asset into x_asset_id;
29556 CLOSE c_asset;
29557 END IF;
29558 /*4414408
29559
29560 ELSE -- more than one different assets found
29561 IF (okl_line_rec.asset_number <> l_prev_asset_number
29562 AND
29563 x_release_asset <> g_release_asset_flag) THEN
29564
29565 okl_api.set_message(
29566 G_APP_NAME,
29567 G_MIXED_ASSET,
29568 'CONTRACT_NUM',
29569 okl_line_rec.contract_number_old
29570 );
29571 x_return_status := OKL_API.G_RET_STS_ERROR;
29572 RAISE load_failed;
29573 END IF;
29574 */
29575 END IF;
29576
29577 IF (x_release_asset = 'Y') THEN
29578
29579 IF (l_loan_yn <> 'Y'
29580 AND
29581 okl_line_rec.asset_number = l_prev_asset_number
29582 AND
29583 okl_line_rec.asset_corporate_book = l_prev_corp_book ) THEN
29584
29585 IF (l_prev_tax_book = okl_line_rec.tax_book) THEN
29586
29587 -- Can not have more than one same Tax book
29588 -- for one corporate book, raise error
29589
29590 okl_api.set_message(
29591 G_APP_NAME,
29592 G_DUP_TAX_BOOK,
29593 'TAX_BOOK',
29594 okl_line_rec.tax_book,
29595 'CONTRACT_NUM',
29596 okl_line_rec.contract_number_old||'/'||okl_line_rec.line_number,
29597 'ASSET_NUM',
29598 okl_line_rec.asset_number
29599 );
29600 x_return_status := OKL_API.G_RET_STS_ERROR;
29601 RAISE load_failed;
29602
29603 END IF;
29604
29605 debug_message('---->Processing Multiple Tax book');
29606
29607 get_tal_id(
29608 x_return_status => x_return_status,
29609 p_fa_line_id => x_clev_fa_rec.id,
29610 x_tal_id => l_tal_id);
29611
29612 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29613 x_return_status := OKL_API.G_RET_STS_ERROR;
29614 RAISE load_failed;
29615 END IF;
29616
29617 get_txd_id (
29618 x_return_status => x_return_status,
29619 x_msg_count => x_msg_count,
29620 x_msg_data => x_msg_data,
29621 p_contract_number => okl_header_rec.contract_number_old,
29622 p_tal_id => l_tal_id,
29623 p_tax_book => okl_line_rec.tax_book,
29624 x_txd_id => x_txd_id
29625 );
29626
29627 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29628 x_return_status := OKL_API.G_RET_STS_ERROR;
29629 RAISE load_failed;
29630 END IF;
29631
29632 --l_adpv_rec := NULL;
29633 l_adpv_rec.id := x_txd_id;
29634 l_adpv_rec.asset_number := okl_line_rec.asset_number;
29635 l_adpv_rec.tal_id := l_tal_id;
29636
29637 IF (okl_line_rec.deprn_method_tax IS NOT NULL) THEN
29638 l_adpv_rec.deprn_method_tax := okl_line_rec.deprn_method_tax;
29639 END IF;
29640
29641 IF (okl_line_rec.deprn_rate_tax IS NOT NULL) THEN
29642 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
29643 END IF;
29644
29645 IF (okl_line_rec.deprn_rate_tax IS NOT NULL) THEN
29646 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
29647 END IF;
29648
29649 IF (okl_line_rec.life_in_months_tax IS NOT NULL) THEN
29650 l_adpv_rec.life_in_months_tax := okl_line_rec.life_in_months_tax;
29651 END IF;
29652
29653 okl_txd_assets_pub.update_txd_asset_def(
29654 p_api_version => 1.0,
29655 p_init_msg_list => OKL_API.G_FALSE,
29656 x_return_status => x_return_status,
29657 x_msg_count => x_msg_count,
29658 x_msg_data => x_msg_data,
29659 p_adpv_rec => l_adpv_rec,
29660 x_adpv_rec => x_adpv_rec
29661 );
29662
29663 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29664 x_return_status := OKL_API.G_RET_STS_ERROR;
29665 RAISE load_failed;
29666 END IF;
29667
29668 debug_message('------>TXD Line Updated');
29669
29670 --
29671 -- End of multiple Tax book logic for release asset
29672 --
29673
29674 -- Bug# 4345613
29675 l_rule_create_flag := 'N';
29676
29677 ELSE
29678
29679 process_release_asset(
29680 x_return_status => x_return_status,
29681 x_msg_count => x_msg_count,
29682 x_msg_data => x_msg_data,
29683 p_chr_id => x_chrv_rec.id,
29684 p_contract_number => okl_line_rec.contract_number_old,
29685 p_asset_number => okl_line_rec.asset_number,
29686 p_asset_id => x_asset_id,
29687 p_line_number => okl_line_rec.line_number,
29688 p_re_lease_yn => x_release_asset, -- Bug #15992711 : Passing the re_lease_yn flag
29689 p_install_site_id => okl_line_rec.install_site_id,
29690 p_install_site_num => okl_line_rec.install_site_number,
29691 p_unit_price => okl_line_rec.original_cost,
29692 p_deprn_method => okl_line_rec.depreciation_method_code,
29693 p_life_in_months => okl_line_rec.life_in_months,
29694 p_deprn_rate => okl_line_rec.depreciation_rate,
29695 p_asset_location_id => okl_line_rec.asset_location_id,
29696 p_asset_loc_segment1 => okl_line_rec.asset_location_segment1,
29697 p_asset_loc_segment2 => okl_line_rec.asset_location_segment2,
29698 p_asset_loc_segment3 => okl_line_rec.asset_location_segment3,
29699 p_asset_loc_segment4 => okl_line_rec.asset_location_segment4,
29700 p_asset_loc_segment5 => okl_line_rec.asset_location_segment5,
29701 p_asset_loc_segment6 => okl_line_rec.asset_location_segment6,
29702 p_asset_loc_segment7 => okl_line_rec.asset_location_segment7,
29703 p_salvage_value => okl_line_rec.salvage_value,
29704 p_salvage_ptg => okl_line_rec.salvage_value_percent,
29705 p_residual_grnty_amt => okl_line_rec.residual_amount_guarantee,
29706 p_residual_code => okl_line_rec.guarantor_type_code,
29707 p_residual_ptg => okl_line_rec.residual_percent,
29708 p_residual_amt => okl_line_rec.residual_amount,
29709 p_tax_book => okl_line_rec.tax_book,
29710 p_tax_deprn => okl_line_rec.deprn_method_tax,
29711 p_tax_life_in_mnth => okl_line_rec.life_in_months_tax,
29712 p_tax_deprn_rate => okl_line_rec.deprn_rate_tax,
29713 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
29714 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
29715 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
29716 p_pth_start_date => okl_line_rec.pth_start_date,
29717 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
29718 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
29719 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
29720 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
29721 p_attribute_category => okl_line_rec.attribute_category,
29722 p_attribute1 => okl_line_rec.attribute1,
29723 p_attribute2 => okl_line_rec.attribute2,
29724 p_attribute3 => okl_line_rec.attribute3,
29725 p_attribute4 => okl_line_rec.attribute4,
29726 p_attribute5 => okl_line_rec.attribute5,
29727 p_attribute6 => okl_line_rec.attribute6,
29728 p_attribute7 => okl_line_rec.attribute7,
29729 p_attribute8 => okl_line_rec.attribute8,
29730 p_attribute9 => okl_line_rec.attribute9,
29731 p_attribute10 => okl_line_rec.attribute10,
29732 p_attribute11 => okl_line_rec.attribute11,
29733 p_attribute12 => okl_line_rec.attribute12,
29734 p_attribute13 => okl_line_rec.attribute13,
29735 p_attribute14 => okl_line_rec.attribute14,
29736 p_attribute15 => okl_line_rec.attribute15,
29737 --Bug# 16344245
29738 p_amount_balance_legacy => okl_line_rec.amount_balance_legacy,
29739 p_dt_effective_balance_legacy => okl_line_rec.dt_effective_balance_legacy,
29740 --Bug# 16344245
29741 x_clev_fin_rec => x_clev_fin_rec,
29742 x_clev_model_rec => x_clev_model_rec,
29743 x_clev_fa_rec => x_clev_fa_rec,
29744 x_clev_ib_rec => x_clev_ib_rec
29745 );
29746
29747 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29748 x_return_status := OKL_API.G_RET_STS_ERROR;
29749 RAISE load_failed;
29750 END IF;
29751
29752 x_cle_id := x_clev_fin_rec.id;
29753
29754 END IF;
29755
29756 ELSE -- process new assets
29757
29758 --
29759 -- Multiple Tax book creation
29760 --
29761 -- Check for Corporate book and asset number
29762 -- If those 2 matches with previous records create
29763 -- Tax book only
29764 --
29765 IF (l_loan_yn <> 'Y'
29766 AND
29767 okl_line_rec.asset_number = l_prev_asset_number
29768 AND
29769 okl_line_rec.asset_corporate_book = l_prev_corp_book ) THEN
29770
29771 IF (l_prev_tax_book = okl_line_rec.tax_book) THEN
29772
29773 -- Can not have more than one same Tax book
29774 -- for one corporate book, raise error
29775
29776 okl_api.set_message(
29777 G_APP_NAME,
29778 G_DUP_TAX_BOOK,
29779 'TAX_BOOK',
29780 okl_line_rec.tax_book,
29781 'CONTRACT_NUM',
29782 okl_line_rec.contract_number_old||'/'||okl_line_rec.line_number,
29783 'ASSET_NUM',
29784 okl_line_rec.asset_number
29785 );
29786 x_return_status := OKL_API.G_RET_STS_ERROR;
29787 RAISE load_failed;
29788
29789 END IF;
29790
29791 debug_message('---->Processing Multiple Tax book');
29792
29793 l_adpv_rec := NULL;
29794 l_adpv_rec.tal_id := l_tal_id;
29795 l_adpv_rec.asset_number := okl_line_rec.asset_number;
29796 l_adpv_rec.cost := okl_line_rec.tax_cost;
29797 l_adpv_rec.tax_book := okl_line_rec.tax_book;
29798 l_adpv_rec.life_in_months_tax := okl_line_rec.life_in_months_tax;
29799 l_adpv_rec.deprn_method_tax := okl_line_rec.deprn_method_tax;
29800 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
29801 l_adpv_rec.salvage_value := 0;
29802
29803 -- Take currency info from header, Bug 4005881
29804 l_adpv_rec.CURRENCY_CODE := okl_header_rec.currency_code;
29805 l_adpv_rec.CURRENCY_CONVERSION_TYPE := okl_header_rec.currency_conversion_type;
29806 l_adpv_rec.CURRENCY_CONVERSION_RATE := okl_header_rec.currency_conversion_rate;
29807 l_adpv_rec.CURRENCY_CONVERSION_DATE := okl_header_rec.currency_conversion_date;
29808
29809 okl_txd_assets_pub.create_txd_asset_def(
29810 p_api_version => 1.0,
29811 p_init_msg_list => OKL_API.G_FALSE,
29812 x_return_status => x_return_status,
29813 x_msg_count => x_msg_count,
29814 x_msg_data => x_msg_data,
29815 p_adpv_rec => l_adpv_rec,
29816 x_adpv_rec => x_adpv_rec
29817 );
29818
29819 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29820 x_return_status := OKL_API.G_RET_STS_ERROR;
29821 RAISE load_failed;
29822 END IF;
29823
29824 debug_message('------>Only TXD Line Created');
29825
29826 --
29827 -- End of multiple Tax book logic
29828 --
29829
29830 -- Bug# 4345613
29831 l_rule_create_flag := 'N';
29832
29833 ELSE -- create new asset line
29834
29835 p_clev_fin_rec := NULL;
29836 p_clev_fin_rec.chr_id := x_chrv_rec.id;
29837 p_clev_fin_rec.line_number := okl_line_rec.line_number;
29838 p_clev_fin_rec.sts_code := 'NEW';
29839 p_clev_fin_rec.dnz_chr_id := x_chrv_rec.id;
29840 p_clev_fin_rec.item_description := okl_line_rec.description;
29841 p_clev_fin_rec.price_unit := okl_line_rec.original_cost;
29842 p_clev_fin_rec.currency_code := okl_header_rec.currency_code;
29843 p_clev_fin_rec.start_date := okl_line_rec.start_date;
29844 p_clev_fin_rec.end_date := okl_line_rec.end_date;
29845 p_clev_fin_rec.name := okl_line_rec.asset_number;
29846 /* 4414408
29847 get_lse_id(
29848 x_return_status => x_return_status,
29849 x_msg_count => x_msg_count,
29850 x_msg_data => x_msg_data,
29851 p_contract_number => okl_header_rec.contract_number_old,
29852 p_line_number => okl_line_rec.line_number,
29853 p_lty_code => 'FREE_FORM1',
29854 p_top_line_lty_code => NULL,
29855 x_lse_id => x_lse_id
29856 );
29857 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29858 x_return_status := OKL_API.G_RET_STS_ERROR;
29859 RAISE load_failed;
29860 END IF;
29861 */
29862 l_progress := '101';
29863
29864 p_clev_fin_rec.lse_id := G_FIN_LINE_LTY_ID;
29865
29866 -- start cklee 02/18/2004 bug# 3440442
29867
29868 validate_real_est(
29869 x_return_status => x_return_status,
29870 x_msg_count => x_msg_count,
29871 x_msg_data => x_msg_data,
29872 p_intf_line => okl_line_rec
29873 );
29874 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29875 x_return_status := OKL_API.G_RET_STS_ERROR;
29876 RAISE load_failed;
29877 END IF;
29878
29879 -- end cklee 02/18/2004 bug# 3440442
29880 -- Rviriyal - fix for bug 5397754 -- start
29881 IF (okl_line_rec.CAPITALIZE_DOWN_PAYMENT_YN IS NOT NULL) AND
29882 (okl_line_rec.CAPITALIZE_DOWN_PAYMENT_YN = 'N') THEN
29883 IF (okl_line_rec.DOWN_PAYMENT_RECEIVER_CODE IS NOT NULL) AND
29884 (okl_line_rec.DOWN_PAYMENT_RECEIVER_CODE = 'VENDOR') THEN
29885 okl_api.set_message(
29886 G_APP_NAME,
29887 'OKL_INVALID_COMBINATION',
29888 'CONTRACT_NUM',
29889 okl_line_rec.contract_number_old||'/'||okl_line_rec.line_number,
29890 'ASSET_NUM',
29891 okl_line_rec.asset_number
29892 );
29893 x_return_status := OKL_API.G_RET_STS_ERROR;
29894 RAISE load_failed;
29895
29896 END IF;
29897 END IF;
29898
29899 -- Rviriyal - fix for bug 5397754 -- End
29900
29901 p_klev_fin_rec := NULL;
29902 p_klev_fin_rec.year_of_manufacture := okl_line_rec.year_of_manufacture;
29903 p_klev_fin_rec.residual_percentage := okl_line_rec.residual_percent;
29904 p_klev_fin_rec.residual_value := okl_line_rec.residual_amount;
29905 /*
29906 IF (okl_line_rec.residual_amount IS NULL) THEN
29907 --p_klev_fin_rec.residual_value := (okl_line_rec.residual_percent / (nvl(okl_line_rec.amount,1) * 100));
29908 p_klev_fin_rec.residual_value := (okl_line_rec.residual_percent / 100) * nvl(okl_line_rec.amount,0);
29909 ELSE
29910 p_klev_fin_rec.residual_value := okl_line_rec.residual_amount;
29911 END IF;
29912 */
29913 p_klev_fin_rec.residual_grnty_amount := okl_line_rec.residual_amount_guarantee;
29914 p_klev_fin_rec.tradein_amount := okl_line_rec.trade_in_amount;
29915
29916 IF (okl_line_rec.capital_reduction_percent IS NOT NULL) THEN
29917 --p_klev_fin_rec.capital_reduction := (okl_line_rec.capital_reduction_percent / (nvl(okl_line_rec.amount,1) * 100));
29918 p_klev_fin_rec.capital_reduction := (okl_line_rec.capital_reduction_percent / 100)
29919 * nvl(okl_line_rec.amount,0);
29920 END IF;
29921
29922 IF (okl_line_rec.capital_reduction_amount IS NOT NULL) THEN
29923 p_klev_fin_rec.capital_reduction := okl_line_rec.capital_reduction_amount;
29924 END IF;
29925
29926 --rviriyal : bug# 5397754
29927 p_klev_fin_rec.CAPITALIZE_DOWN_PAYMENT_YN := okl_line_rec.CAPITALIZE_DOWN_PAYMENT_YN;
29928 p_klev_fin_rec.DOWN_PAYMENT_RECEIVER_CODE := okl_line_rec.DOWN_PAYMENT_RECEIVER_CODE;
29929 --rviriyal : end
29930
29931 -- start cklee 02/16/2004 bug# 3440442
29932 p_klev_fin_rec.initial_direct_cost := okl_line_rec.real_est_init_direct_cost;
29933 p_klev_fin_rec.occupancy := okl_line_rec.real_est_occupancy;
29934 p_klev_fin_rec.date_last_inspection := okl_line_rec.real_est_date_last_insp;
29935 p_klev_fin_rec.date_next_inspection_due := okl_line_rec.real_est_date_next_insp;
29936 p_klev_fin_rec.date_commitment_expiration := okl_line_rec.real_est_accept_expire_date;
29937 -- fnd lookup_type = 'OKL_PROPERTY_CLASS_OPTIONS'. check at API level
29938 p_klev_fin_rec.prc_code := okl_line_rec.real_est_property_class_code;
29939
29940 -- end cklee 02/16/2004 bug# 3440442
29941
29942 p_klev_fin_rec.weighted_average_life := okl_line_rec.real_est_wtd_avg_life;
29943 p_klev_fin_rec.bond_equivalent_yield := okl_line_rec.real_est_bond_eq_yield;
29944 p_klev_fin_rec.refinance_amount := okl_line_rec.real_est_refinance_amt;
29945 p_klev_fin_rec.credit_tenant_yn := okl_line_rec.real_est_credit_tenant_flag;
29946 p_klev_fin_rec.coverage_ratio := okl_line_rec.real_est_coverage_ratio;
29947 p_klev_fin_rec.date_appraisal := okl_line_rec.real_est_appraisal_date;
29948 p_klev_fin_rec.appraisal_value := okl_line_rec.real_est_appraisal_value;
29949 p_klev_fin_rec.gross_square_footage := okl_line_rec.real_est_gross_footage;
29950 p_klev_fin_rec.net_rentable := okl_line_rec.real_est_net_footage_rentable;
29951 p_klev_fin_rec.date_letter_acceptance := okl_line_rec.real_est_letter_accept_date;
29952 --p_klev_fin_rec.oec := okl_line_rec.amount;
29953 p_klev_fin_rec.oec := okl_line_rec.original_cost;
29954 --p_klev_fin_rec.capital_amount := okl_line_rec.amount;
29955 p_klev_fin_rec.capitalized_interest := okl_line_rec.capitalized_interest;
29956 p_klev_fin_rec.capital_reduction_percent := okl_line_rec.capital_reduction_percent;
29957 p_klev_fin_rec.residual_code := NVL(okl_line_rec.guarantor_type_code,'NONE');
29958 p_cimv_model_rec := NULL;
29959 p_cimv_model_rec.chr_id := x_chrv_rec.id;
29960 p_cimv_model_rec.dnz_chr_id := x_chrv_rec.id;
29961 p_cimv_model_rec.number_of_items := okl_line_rec.total_units;
29962
29963 l_progress := '102';
29964 IF (x_inventory_org_id IS NOT NULL) THEN
29965 p_cimv_model_rec.object1_id2 := x_inventory_org_id;
29966 p_cimv_model_rec.object1_id1 := x_inventory_item_id;
29967 p_cimv_model_rec.jtot_object1_code := 'OKX_SYSITEM';
29968 END IF;
29969
29970
29971 p_clev_fa_rec := NULL;
29972 p_clev_fa_rec.chr_id := x_chrv_rec.id;
29973 p_clev_fa_rec.line_number := okl_line_rec.line_number;
29974 p_clev_fa_rec.name := okl_line_rec.asset_number;
29975 p_clev_fa_rec.sts_code := 'NEW';
29976 p_clev_fa_rec.item_description := okl_line_rec.description;
29977 /* 4414408
29978 get_lse_id(
29979 x_return_status => x_return_status,
29980 x_msg_count => x_msg_count,
29981 x_msg_data => x_msg_data,
29982 p_contract_number => okl_header_rec.contract_number_old,
29983 p_line_number => okl_line_rec.line_number,
29984 p_lty_code => 'FIXED_ASSET',
29985 p_top_line_lty_code => 'FREE_FORM1',
29986 x_lse_id => x_lse_id
29987 );
29988 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29989 x_return_status := OKL_API.G_RET_STS_ERROR;
29990 RAISE load_failed;
29991 END IF;
29992 */
29993 l_progress := '103';
29994 p_clev_fa_rec.lse_id := G_FA_LINE_LTY_ID;
29995
29996 p_cimv_fa_rec := NULL;
29997 /* 4414408
29998 l_new_yn := 'Y'; -- Yes to create Asset, No to validate asset, Default is 'Y'
29999
30000 IF (l_new_yn = 'N') THEN
30001 get_asset_id(
30002 x_return_status => x_return_status,
30003 x_msg_count => x_msg_count,
30004 x_msg_data => x_msg_data,
30005 p_contract_number => okl_header_rec.contract_number_old,
30006 p_line_number => okl_line_rec.line_number,
30007 p_asset_number => okl_line_rec.asset_number,
30008 x_id1 => x_id1,
30009 x_id2 => x_id2
30010 );
30011 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30012 x_return_status := OKL_API.G_RET_STS_ERROR;
30013 RAISE load_failed;
30014 END IF;
30015
30016 p_cimv_fa_rec.chr_id := x_chrv_rec.id;
30017 p_cimv_fa_rec.dnz_chr_id := x_chrv_rec.id;
30018 p_cimv_fa_rec.jtot_object1_code := 'OKX_ASSET';
30019 p_cimv_fa_rec.object1_id1 := x_id1;
30020 p_cimv_fa_rec.object1_id2 := x_id2;
30021 END IF;
30022
30023 p_talv_fa_rec := NULL;
30024
30025 IF (l_new_yn = 'Y') THEN
30026 */
30027 p_talv_fa_rec := NULL; -- re-initialized for bug 5584648
30028 -- Take currency info from header, Bug 4005881
30029 p_talv_fa_rec.CURRENCY_CODE := okl_header_rec.currency_code;
30030 p_talv_fa_rec.CURRENCY_CONVERSION_TYPE := okl_header_rec.currency_conversion_type;
30031 p_talv_fa_rec.CURRENCY_CONVERSION_RATE := okl_header_rec.currency_conversion_rate;
30032 p_talv_fa_rec.CURRENCY_CONVERSION_DATE := okl_header_rec.currency_conversion_date;
30033
30034 p_talv_fa_rec.asset_number := okl_line_rec.asset_number;
30035 p_talv_fa_rec.original_cost := okl_line_rec.original_cost;
30036 p_talv_fa_rec.current_units := okl_line_rec.total_units;
30037 --p_talv_fa_rec.depreciation_cost := okl_line_rec.amount;
30038 p_talv_fa_rec.description := okl_line_rec.description;
30039 p_talv_fa_rec.model_number := okl_line_rec.model;
30040 p_talv_fa_rec.manufacturer_name := okl_line_rec.make;
30041 p_talv_fa_rec.year_manufactured := okl_line_rec.year_of_manufacture;
30042
30043 IF (l_loan_yn <> 'Y') THEN -- not a loan product
30044 p_talv_fa_rec.corporate_book := okl_line_rec.asset_corporate_book;
30045 p_talv_fa_rec.depreciation_cost := okl_line_rec.amount; --okl_line_rec.depreciation_cost;
30046 END IF; -- l_loan_yn
30047
30048 IF (l_loan_yn <> 'Y') THEN -- not a loan product
30049 x_comb_id := NULL;
30050 get_flexid(
30051 x_return_status => x_return_status,
30052 x_msg_count => x_msg_count,
30053 x_msg_data => x_msg_data,
30054 p_contract_number => okl_header_rec.contract_number_old,
30055 p_line_number => okl_line_rec.line_number,
30056 p_type => 'ASSET_CATEGORY',
30057 p_comb_id => okl_line_rec.asset_category_id,
30058 p_segment1 => okl_line_rec.asset_category_segment1,
30059 p_segment2 => okl_line_rec.asset_category_segment2,
30060 p_segment3 => okl_line_rec.asset_category_segment3,
30061 p_segment4 => okl_line_rec.asset_category_segment4,
30062 p_segment5 => okl_line_rec.asset_category_segment5,
30063 p_segment6 => okl_line_rec.asset_category_segment6,
30064 p_segment7 => okl_line_rec.asset_category_segment7,
30065 x_comb_id => x_comb_id
30066 );
30067 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30068 x_return_status := OKL_API.G_RET_STS_ERROR;
30069 RAISE load_failed;
30070 END IF;
30071 p_talv_fa_rec.depreciation_id := x_comb_id;
30072
30073 x_comb_id := NULL;
30074 get_flexid(
30075 x_return_status => x_return_status,
30076 x_msg_count => x_msg_count,
30077 x_msg_data => x_msg_data,
30078 p_type => 'ASSET_LOCATION',
30079 p_contract_number => okl_header_rec.contract_number_old,
30080 p_line_number => okl_line_rec.line_number,
30081 p_comb_id => okl_line_rec.asset_location_id,
30082 p_segment1 => okl_line_rec.asset_location_segment1,
30083 p_segment2 => okl_line_rec.asset_location_segment2,
30084 p_segment3 => okl_line_rec.asset_location_segment3,
30085 p_segment4 => okl_line_rec.asset_location_segment4,
30086 p_segment5 => okl_line_rec.asset_location_segment5,
30087 p_segment6 => okl_line_rec.asset_location_segment6,
30088 p_segment7 => okl_line_rec.asset_location_segment7,
30089 x_comb_id => x_comb_id
30090 );
30091 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30092 x_return_status := OKL_API.G_RET_STS_ERROR;
30093 RAISE load_failed;
30094 END IF;
30095 p_talv_fa_rec.fa_location_id := x_comb_id;
30096
30097 -- Asset Key
30098 x_comb_id := NULL;
30099 debug_message('Asset Key segment1: '||okl_line_rec.asset_key_segment1);
30100
30101 get_asset_key_id(
30102 x_return_status => x_return_status,
30103 x_msg_count => x_msg_count,
30104 x_msg_data => x_msg_data,
30105 p_contract_number => okl_header_rec.contract_number_old,
30106 p_line_number => okl_line_rec.line_number,
30107 p_comb_id => okl_line_rec.asset_key_id,
30108 p_segment1 => okl_line_rec.asset_key_segment1,
30109 p_segment2 => okl_line_rec.asset_key_segment2,
30110 p_segment3 => okl_line_rec.asset_key_segment3,
30111 p_segment4 => okl_line_rec.asset_key_segment4,
30112 p_segment5 => okl_line_rec.asset_key_segment5,
30113 p_segment6 => okl_line_rec.asset_key_segment6,
30114 p_segment7 => okl_line_rec.asset_key_segment7,
30115 p_segment8 => okl_line_rec.asset_key_segment8,
30116 p_segment9 => okl_line_rec.asset_key_segment9,
30117 p_segment10 => okl_line_rec.asset_key_segment10,
30118 x_comb_id => x_comb_id
30119 );
30120 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30121 x_return_status := OKL_API.G_RET_STS_ERROR;
30122 RAISE load_failed;
30123 END IF;
30124 p_talv_fa_rec.asset_key_id := x_comb_id;
30125 debug_message('Asset Key: '||x_comb_id);
30126 -- Asset Key
30127
30128 p_talv_fa_rec.deprn_method := okl_line_rec.depreciation_method_code; --??? Get method Code from id
30129 p_talv_fa_rec.life_in_months := okl_line_rec.life_in_months;
30130 p_talv_fa_rec.deprn_rate := okl_line_rec.depreciation_rate;
30131 p_talv_fa_rec.salvage_value := okl_line_rec.salvage_value;
30132 p_talv_fa_rec.percent_salvage_value := okl_line_rec.salvage_value_percent;
30133 p_talv_fa_rec.in_service_date := okl_line_rec.in_service_date;
30134 --okl_header_rec.expected_delivery_date;-- ??? should be at line
30135 END IF; -- l_loan_yn
30136
30137 -- END IF;
30138
30139 l_progress := '104';
30140
30141 get_install_site_id(
30142 x_return_status => x_return_status,
30143 x_msg_count => x_msg_count,
30144 x_msg_data => x_msg_data,
30145 p_contract_number => okl_header_rec.contract_number_old,
30146 p_line_number => okl_line_rec.line_number,
30147 p_install_site_id => okl_line_rec.install_site_id,
30148 p_install_site_number => okl_line_rec.install_site_number,
30149 x_install_site_id => x_install_site_id
30150 );
30151
30152 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30153 x_return_status := OKL_API.G_RET_STS_ERROR;
30154 RAISE load_failed;
30155 END IF;
30156
30157 --debug_message('Install site id: '||x_install_site_id);
30158
30159 -- Get IB Lines
30160 l_ib_line_count := 0;
30161 p_itiv_ib_tbl.DELETE; -- initialize table, Bug 4067179
30162 FOR okl_ib_rec IN okl_ib_csr(okl_header_rec.contract_number_old,
30163 okl_line_rec.line_number)
30164 LOOP
30165
30166 --Bug# 9299607
30167 IF (okl_ib_rec.serial_number IS NOT NULL AND LENGTH(okl_ib_rec.serial_number) > 30) THEN
30168 OKL_API.Set_Message(p_app_name => G_APP_NAME,
30169 p_msg_name => 'OKL_LLA_EXCEED_MAXIMUM_LENGTH',
30170 p_token1 => 'MAX_CHARS',
30171 p_token1_value => '30',
30172 p_token2 => 'COL_NAME',
30173 p_token2_value => 'SERIAL_NUMBER');
30174
30175 x_return_status := OKL_API.G_RET_STS_ERROR;
30176 RAISE load_failed;
30177 END IF;
30178
30179 l_ib_line_count := l_ib_line_count + 1;
30180
30181 p_itiv_ib_tbl(l_ib_line_count).line_number := okl_line_rec.line_number;
30182 p_itiv_ib_tbl(l_ib_line_count).mfg_serial_number_yn := 'Y';
30183 p_itiv_ib_tbl(l_ib_line_count).object_id1_new := x_install_site_id;
30184 p_itiv_ib_tbl(l_ib_line_count).object_id2_new := '#';
30185 p_itiv_ib_tbl(l_ib_line_count).serial_number := okl_ib_rec.serial_number;
30186
30187 debug_message('Count: '||l_ib_line_count);
30188 debug_message('Serial#: '||p_itiv_ib_tbl(l_ib_line_count).serial_number);
30189
30190 END LOOP; --ib line
30191
30192 IF (l_ib_line_count = 0) THEN
30193
30194 p_itiv_ib_tbl(1).mfg_serial_number_yn := 'N';
30195 p_itiv_ib_tbl(1).object_id1_new := x_install_site_id;
30196 p_itiv_ib_tbl(1).object_id2_new := '#';
30197
30198 END IF;
30199 debug_message('Residual% : '|| p_klev_fin_rec.residual_percentage);
30200 debug_message('Residual value : '|| p_klev_fin_rec.residual_value);
30201
30202 -- Contract addl field, Bug 4558486
30203
30204 debug_message('Contract Asset line DFF...'||'Line#: '||okl_line_rec.line_number);
30205
30206 p_klev_fin_rec.validate_dff_yn := 'Y'; -- always validate DFF
30207 p_klev_fin_rec.attribute_category := okl_line_rec.attribute_category;
30208 debug_message('attribute_category: '||p_klev_fin_rec.attribute_category);
30209 p_klev_fin_rec.attribute1 := okl_line_rec.attribute1;
30210 debug_message('attribute1: '||p_klev_fin_rec.attribute1);
30211 p_klev_fin_rec.attribute2 := okl_line_rec.attribute2;
30212 debug_message('attribute2: '||p_klev_fin_rec.attribute2);
30213 p_klev_fin_rec.attribute3 := okl_line_rec.attribute3;
30214 p_klev_fin_rec.attribute4 := okl_line_rec.attribute4;
30215 p_klev_fin_rec.attribute5 := okl_line_rec.attribute5;
30216 p_klev_fin_rec.attribute6 := okl_line_rec.attribute6;
30217 p_klev_fin_rec.attribute7 := okl_line_rec.attribute7;
30218 p_klev_fin_rec.attribute8 := okl_line_rec.attribute8;
30219 p_klev_fin_rec.attribute9 := okl_line_rec.attribute9;
30220 p_klev_fin_rec.attribute10 := okl_line_rec.attribute10;
30221 p_klev_fin_rec.attribute11 := okl_line_rec.attribute11;
30222 p_klev_fin_rec.attribute12 := okl_line_rec.attribute12;
30223 p_klev_fin_rec.attribute13 := okl_line_rec.attribute13;
30224 p_klev_fin_rec.attribute14 := okl_line_rec.attribute14;
30225 p_klev_fin_rec.attribute15 := okl_line_rec.attribute15;
30226 -- Contract addl field, Bug 4558486
30227
30228 --Bug# 16344245
30229 debug_message('Contract Asset line Balance Legacy...'||'Line#: '||okl_line_rec.line_number);
30230
30231 p_klev_fin_rec.amount_balance_legacy := okl_line_rec.amount_balance_legacy;
30232 p_klev_fin_rec.dt_effective_balance_legacy := okl_line_rec.dt_effective_balance_legacy;
30233
30234 debug_message('amount_balance_legacy: '||p_klev_fin_rec.amount_balance_legacy);
30235 debug_message('dt_effective_balance_legacy: '||p_klev_fin_rec.dt_effective_balance_legacy);
30236 --Bug# 16344245
30237
30238 debug_message('Before create_all_line');
30239
30240 okl_create_kle_pvt.Create_all_line(
30241 p_api_version => 1.0,
30242 p_init_msg_list => OKL_API.G_FALSE,
30243 x_return_status => x_return_status,
30244 x_msg_count => x_msg_count,
30245 x_msg_data => x_msg_data,
30246 P_new_yn => 'Y', -- 4414408
30247 p_asset_number => okl_line_rec.asset_number,
30248 p_clev_fin_rec => p_clev_fin_rec,
30249 p_klev_fin_rec => p_klev_fin_rec,
30250 p_cimv_model_rec => p_cimv_model_rec,
30251 p_clev_fa_rec => p_clev_fa_rec,
30252 p_cimv_fa_rec => p_cimv_fa_rec,
30253 p_talv_fa_rec => p_talv_fa_rec,
30254 p_itiv_ib_tbl => p_itiv_ib_tbl,
30255 x_clev_fin_rec => x_clev_fin_rec,
30256 x_clev_model_rec => x_clev_model_rec,
30257 x_clev_fa_rec => x_clev_fa_rec,
30258 x_clev_ib_rec => x_clev_ib_rec
30259 );
30260
30261 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30262 x_return_status := OKL_API.G_RET_STS_ERROR;
30263 RAISE load_failed;
30264 END IF;
30265 --rviriyal bug#6015423 start 27-Aug-2007
30266 /* Added code to consider date_funding_expected field. If date_funding_expected
30267 is present in okl_interface_lines that value is considered else asset
30268 start date is considered. */
30269
30270 IF okl_line_rec.date_funding_expected IS NULL THEN
30271 p_klev_fin_rec.date_funding_expected := x_clev_fin_rec.start_date;
30272 ELSE
30273 p_klev_fin_rec.date_funding_expected := okl_line_rec.date_funding_expected;
30274 END IF;
30275
30276 OKL_LA_ASSET_PVT.update_contract_line(
30277 p_api_version =>1.0
30278 ,p_init_msg_list =>OKL_API.G_FALSE
30279 ,x_return_status =>x_return_status
30280 ,x_msg_count =>x_msg_count
30281 ,x_msg_data =>x_msg_data
30282 ,p_id =>x_clev_fin_rec.id
30283 ,p_date_delivery_expected => NULL
30284 ,p_date_funding_expected => p_klev_fin_rec.date_funding_expected
30285 ,p_org_id =>NULL
30286 ,p_organization_id =>NULL
30287 );
30288 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30289 x_return_status := OKL_API.G_RET_STS_ERROR;
30290 RAISE load_failed;
30291 END IF;
30292
30293 --rviriyal bug#6015423 start 27-Aug-2007
30294
30295 debug_message('------>Line created');
30296
30297 -- Bug 5155206
30298 /* Load Rent payment for the asset line, before asset subisidy is processed.
30299 Rent line will be always TOP line. so skip check_payment_level call */
30300
30301 -- Process Rent Payments Interface Record, if any
30302 l_contract_number_old_prev := 'INITIAL';
30303 l_line_number_prev := -999999999;
30304 l_payment_type_code_prev := 'INITIAL';
30305 l_pmnt_sch_num_prev := -999999999;
30306 l_start_date_prev := NULL;
30307 l_number_of_periods_prev := -999999999;
30308 l_rg_id := NULL;
30309
30310 FOR okl_payment_rent_rec IN okl_payment_rent_csr(okl_header_rec.contract_number_old,
30311 okl_line_rec.line_number)
30312 LOOP
30313 BEGIN --5
30314
30315 check_payment_record(
30316 x_return_status => x_return_status,
30317 x_msg_count => x_msg_count,
30318 x_msg_data => x_msg_data,
30319 p_contract_number_old => okl_payment_rent_rec.contract_number_old,
30320 p_line_number => okl_payment_rent_rec.line_number,
30321 p_asset_number => okl_payment_rent_rec.asset_number,
30322 p_payment_type_code => okl_payment_rent_rec.payment_type_code,
30323 p_stream_purpose => okl_payment_rent_rec.stream_purpose_code,
30324 p_payment_schedule_number => okl_payment_rent_rec.payment_schedule_number,
30325 p_payment_frequency_code => okl_payment_rent_rec.payment_frequency_code,
30326 p_arrears_flag => okl_payment_rent_rec.arrears_flag,
30327 p_advance_payments => okl_payment_rent_rec.advance_payments,
30328 p_payment_amount => okl_payment_rent_rec.payment_amount,
30329 p_start_date => okl_payment_rent_rec.start_date,
30330 p_number_of_periods => okl_payment_rent_rec.number_of_periods,
30331 p_rate => okl_payment_rent_rec.rate,
30332 p_comments => okl_payment_rent_rec.comments,
30333 p_stub_days => okl_payment_rent_rec.stub_days,
30334 p_stub_amount => okl_payment_rent_rec.stub_amount
30335 );
30336
30337 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30338 RAISE load_failed;
30339 END IF;
30340
30341 IF (l_contract_number_old_prev <> okl_payment_rent_rec.contract_number_old -- prev checking
30342 OR
30343 l_line_number_prev <> okl_payment_rent_rec.line_number
30344 OR
30345 l_payment_type_code_prev <> okl_payment_rent_rec.payment_type_code) THEN
30346
30347 IF (l_line_number_prev <> okl_payment_rent_rec.line_number) THEN -- for new line create rule group
30348 l_rg_id := NULL;
30349 END IF;
30350
30351 create_payment_rule_group(
30352 x_return_status => x_return_status,
30353 x_msg_count => x_msg_count,
30354 x_msg_data => x_msg_data,
30355 p_contract_number => okl_header_rec.contract_number_old,
30356 p_line_number => okl_line_rec.line_number,
30357 p_payment_type_code => okl_payment_rent_rec.payment_type_code,
30358 p_stream_purpose => okl_payment_rent_rec.stream_purpose_code,
30359 p_chr_id => x_chrv_rec.id,
30360 p_cle_id => x_clev_fin_rec.id,
30361 p_rg_id => l_rg_id,
30362 x_rgp_id => x_rgp_id,
30363 x_slh_rulv_rec => x_slh_rulv_rec
30364 );
30365
30366 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30367 RAISE load_failed;
30368 END IF;
30369
30370 ELSE
30371 l_progress := '170';
30372
30373 -- Some more validation on Payment Lines
30374 IF (okl_payment_rent_rec.payment_schedule_number <= l_pmnt_sch_num_prev) THEN
30375 okl_api.set_message(
30376 G_APP_NAME,
30377 G_PAYMENT_SCHD_ERROR,
30378 'COL_VALUE',
30379 okl_payment_rent_rec.payment_schedule_number,
30380 'CONTRACT_NUM',
30381 okl_header_rec.contract_number_old||'/'||okl_payment_rent_rec.line_number
30382 );
30383 x_return_status := OKL_API.G_RET_STS_ERROR;
30384 RAISE load_failed;
30385 END IF;
30386
30387 check_payment_frequency_code(
30388 x_return_status => x_return_status,
30389 x_msg_count => x_msg_count,
30390 x_msg_data => x_msg_data,
30391 p_payment_freq_code => okl_payment_rent_rec.payment_frequency_code,
30392 x_id1 => x_pmnt_freq_id,
30393 x_uom_code => x_uom_code
30394 );
30395
30396 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30397 okl_api.set_message(
30398 G_APP_NAME,
30399 G_INVALID_VALUE,
30400 'CONTRACT_NUM',
30401 okl_payment_rent_rec.contract_number_old||'/'||okl_payment_rent_rec.line_number,
30402 'COL_NAME',
30403 'PAYMENT_FREQUENCY_CODE',
30404 'COL_VALUE',
30405 okl_payment_rent_rec.payment_frequency_code
30406 );
30407 RAISE load_failed;
30408 END IF;
30409
30410 IF (x_uom_code = 'M') THEN
30411 l_mult_factor := 1;
30412 ELSIF (x_uom_code = 'Q') THEN
30413 l_mult_factor := 3;
30414 ELSIF (x_uom_code = 'S') THEN
30415 l_mult_factor := 6;
30416 ELSIF (x_uom_code = 'A') THEN
30417 l_mult_factor := 12;
30418 ELSE
30419 okl_api.set_message(
30420 G_APP_NAME,
30421 G_UOM_SETUP_ERROR,
30422 'COL_VALUE',
30423 okl_payment_rent_rec.payment_frequency_code
30424 );
30425 RAISE load_failed;
30426 END IF;
30427
30428
30429 l_current_start_date := add_months(l_start_date_prev, (l_number_of_periods_prev * l_mult_factor));
30430
30431 IF (TRUNC(l_current_start_date) <> TRUNC(okl_payment_rent_rec.start_date)) THEN
30432 okl_api.set_message(
30433 G_APP_NAME,
30434 G_PAYMENT_START_DATE_ERROR,
30435 'CONTRACT_NUM',
30436 okl_payment_rent_rec.contract_number_old||'/'||okl_payment_rent_rec.line_number
30437 );
30438 RAISE load_failed;
30439 END IF;
30440
30441 END IF; --prev checking
30442
30443 IF (l_rg_id IS NULL) THEN
30444 l_rg_id := x_rgp_id;
30445 END IF;
30446
30447 -- Create other rules
30448 -- Keep a copy to compare with latest record
30449 create_payment_other_rules(
30450 x_return_status => x_return_status,
30451 x_msg_count => x_msg_count,
30452 x_msg_data => x_msg_data,
30453 p_contract_number => okl_header_rec.contract_number_old,
30454 p_line_number => okl_line_rec.line_number,
30455 p_payment_sch_number => okl_payment_rent_rec.payment_schedule_number,
30456 p_payment_freq_code => okl_payment_rent_rec.payment_frequency_code,
30457 p_arrears_flag => okl_payment_rent_rec.arrears_flag,
30458 p_advance_payments => okl_payment_rent_rec.advance_payments,
30459 p_payment_amount => okl_payment_rent_rec.payment_amount,
30460 p_start_date => okl_payment_rent_rec.start_date,
30461 p_number_of_periods => okl_payment_rent_rec.number_of_periods,
30462 p_rate => okl_payment_rent_rec.rate,
30463 p_comments => okl_payment_rent_rec.comments,
30464 p_stub_days => okl_payment_rent_rec.stub_days,
30465 p_stub_amount => okl_payment_rent_rec.stub_amount,
30466 p_slh_rulv_rec => x_slh_rulv_rec,
30467 p_chr_id => x_chrv_rec.id,
30468 p_cle_id => x_cle_id,
30469 p_rgp_id => x_rgp_id
30470 );
30471
30472 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30473 RAISE load_failed;
30474 END IF;
30475
30476 l_progress := '180';
30477
30478 l_contract_number_old_prev := okl_payment_rent_rec.contract_number_old;
30479 l_line_number_prev := okl_payment_rent_rec.line_number;
30480 l_payment_type_code_prev := okl_payment_rent_rec.payment_type_code;
30481 l_pmnt_sch_num_prev := okl_payment_rent_rec.payment_schedule_number;
30482 l_start_date_prev := okl_payment_rent_rec.start_date;
30483 l_number_of_periods_prev := okl_payment_rent_rec.number_of_periods;
30484
30485 END; --5 Payment begin
30486
30487 END LOOP; -- Payment Loop
30488 -- Bug 5155206
30489
30490
30491 /* OKL.H - Subsidy import start Bug 4411317 */
30492 debug_message('------>Process Subsidy starts for Asset: '||okl_line_rec.asset_number);
30493 process_subsidy(
30494 x_return_status => x_return_status,
30495 x_msg_count => x_msg_count,
30496 x_msg_data => x_msg_data,
30497 p_auth_org_id => x_chrv_rec.authoring_org_id,
30498 p_contract_num => okl_header_rec.contract_number_old,
30499 p_chr_id => x_chrv_rec.id,
30500 p_asset_line_id => x_clev_fin_rec.id,
30501 p_asset_num => okl_line_rec.asset_number
30502 );
30503
30504 debug_message('------>Process Subsidy ends '||x_return_status);
30505 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30506 x_return_status := OKL_API.G_RET_STS_ERROR;
30507 RAISE load_failed;
30508 END IF;
30509
30510
30511 /* OKL.H - Subsidy import end */
30512
30513 /* OKL.H - Addon import start Bug 5077142 */
30514 debug_message('------>Process Addon starts for Asset: '||okl_line_rec.asset_number);
30515
30516 process_addon(
30517 x_return_status => x_return_status,
30518 x_msg_count => x_msg_count,
30519 x_msg_data => x_msg_data,
30520 p_auth_org_id => x_chrv_rec.authoring_org_id,
30521 p_contract_num => okl_header_rec.contract_number_old,
30522 p_chr_id => x_chrv_rec.id,
30523 p_fa_cle_id => x_clev_fa_rec.id,
30524 p_asset_num => okl_line_rec.asset_number,
30525 p_model_line_id => x_clev_model_rec.id,
30526 p_number_of_items => okl_line_rec.total_units
30527 );
30528
30529 --debug_message('AKP:NEEDED:x_clev_fa_rec.id=' || x_clev_fa_rec.id);
30530
30531 debug_message('------>Process Addon ends '||x_return_status);
30532 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30533 x_return_status := OKL_API.G_RET_STS_ERROR;
30534 RAISE load_failed;
30535 END IF;
30536
30537 /* OKL.H - Addon import end */
30538
30539 IF (okl_line_rec.pth_evg_payout_basis is NOT NULL) THEN
30540 debug_message('------>Create party payment starts for Asset: '||okl_line_rec.asset_number || ' / '||okl_line_rec.line_number);
30541 create_party_payment_hdr(
30542 x_return_status => x_return_status,
30543 x_msg_count => x_msg_count,
30544 x_msg_data => x_msg_data,
30545 p_contract_id => x_clev_fin_rec.dnz_chr_id,
30546 p_line_id => x_clev_fin_rec.id,
30547 p_line_type => okl_line_rec.line_type,
30548 p_pth_start_date => okl_line_rec.pth_start_date,
30549 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
30550 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
30551 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
30552 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
30553 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
30554 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
30555 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
30556 x_party_pmnt_hdr_tbl => x_party_pmnt_hdr_tbl_out
30557 );
30558
30559 debug_message('------>Create party payment ends '||x_return_status);
30560 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30561 x_return_status := OKL_API.G_RET_STS_ERROR;
30562 RAISE load_failed;
30563 END IF;
30564 IF (x_party_pmnt_hdr_tbl_out.COUNT > 0 )THEN
30565 l_counter := x_party_pmnt_hdr_tbl_out.FIRST;
30566 LOOP
30567 IF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'BASE') THEN
30568 g_base_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
30569 ELSIF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'EVERGREEN') THEN
30570 g_evg_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
30571 END IF;
30572 EXIT WHEN (l_counter = x_party_pmnt_hdr_tbl_out.LAST);
30573 l_counter := x_party_pmnt_hdr_tbl_out.NEXT(l_counter);
30574 END LOOP;
30575 END IF;
30576 END IF;
30577
30578 /*
30579 --
30580 -- Update asset detail with depreciation cost
30581 --
30582 IF (okl_line_rec.depreciation_cost IS NOT NULL) THEN
30583
30584 FOR txl_rec IN txl_csr (x_chrv_rec.id,
30585 x_clev_fa_rec.id)
30586 LOOP
30587 l_talv_rec.id := txl_rec.id;
30588 l_talv_rec.depreciation_cost := okl_line_rec.depreciation_cost;
30589 END LOOP;
30590
30591 okl_txl_assets_pub.update_txl_asset_def(
30592 p_api_version => 1.0,
30593 p_init_msg_list => OKL_API.G_FALSE,
30594 x_return_status => x_return_status,
30595 x_msg_count => x_msg_count,
30596 x_msg_data => x_msg_data,
30597 p_tlpv_rec => l_talv_rec,
30598 x_tlpv_rec => x_talv_rec
30599 );
30600
30601 debug_message('Depreciation Cost update: '||x_return_status);
30602
30603 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30604 x_return_status := OKL_API.G_RET_STS_ERROR;
30605 RAISE load_failed;
30606 END IF;
30607
30608 END IF; -- depreciation_cost
30609 */
30610
30611 get_tal_id(
30612 x_return_status => x_return_status,
30613 p_fa_line_id => x_clev_fa_rec.id,
30614 x_tal_id => l_tal_id);
30615
30616 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30617 x_return_status := OKL_API.G_RET_STS_ERROR;
30618 RAISE load_failed;
30619 END IF;
30620
30621 IF (l_loan_yn <> 'Y') THEN -- don't create txd for loan type contract
30622
30623 l_adpv_rec := NULL;
30624 l_adpv_rec.tal_id := l_tal_id;
30625 l_adpv_rec.asset_number := okl_line_rec.asset_number;
30626 l_adpv_rec.cost := okl_line_rec.tax_cost;
30627 l_adpv_rec.tax_book := okl_line_rec.tax_book;
30628 l_adpv_rec.life_in_months_tax := okl_line_rec.life_in_months_tax;
30629 l_adpv_rec.deprn_method_tax := okl_line_rec.deprn_method_tax;
30630 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
30631 l_adpv_rec.salvage_value := 0; -- to make consistant with UI, might need a change later
30632
30633 -- Take currency info from header, Bug 4005881
30634 l_adpv_rec.CURRENCY_CODE := okl_header_rec.currency_code;
30635 l_adpv_rec.CURRENCY_CONVERSION_TYPE := okl_header_rec.currency_conversion_type;
30636 l_adpv_rec.CURRENCY_CONVERSION_RATE := okl_header_rec.currency_conversion_rate;
30637 l_adpv_rec.CURRENCY_CONVERSION_DATE := okl_header_rec.currency_conversion_date;
30638
30639 okl_txd_assets_pub.create_txd_asset_def(
30640 p_api_version => 1.0,
30641 p_init_msg_list => OKL_API.G_FALSE,
30642 x_return_status => x_return_status,
30643 x_msg_count => x_msg_count,
30644 x_msg_data => x_msg_data,
30645 p_adpv_rec => l_adpv_rec,
30646 x_adpv_rec => x_adpv_rec
30647 );
30648
30649 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30650 x_return_status := OKL_API.G_RET_STS_ERROR;
30651 RAISE load_failed;
30652 END IF;
30653
30654 debug_message('------>TXD Line Created');
30655
30656 END IF; -- loan_yn
30657
30658 x_cle_id := x_clev_fin_rec.id;
30659 l_rule_create_flag := 'Y';
30660
30661 l_progress := '105';
30662 --
30663 -- Create Supplier Invoice details for contract
30664 --
30665 p_sidv_rec.cle_id := x_clev_model_rec.id;
30666 p_sidv_rec.fa_cle_id := x_clev_fa_rec.id;
30667 p_sidv_rec.invoice_number := okl_line_rec.vendor_invoice_number;
30668 p_sidv_rec.date_invoiced := okl_line_rec.vendor_invoice_date;
30669 IF (okl_line_rec.ship_to_site_id IS NOT NULL
30670 OR
30671 okl_line_rec.ship_to_site_number IS NOT NULL) THEN
30672 get_ship_to_site(
30673 x_return_status => x_return_status,
30674 x_msg_count => x_msg_count,
30675 x_msg_data => x_msg_data,
30676 p_contract_number => okl_header_rec.contract_number_old,
30677 p_line_number => okl_line_rec.line_number,
30678 p_auth_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),
30679 p_ship_to_site_number => okl_line_rec.ship_to_site_number,
30680 p_ship_to_site_id => okl_line_rec.ship_to_site_id,
30681 x_ship_to_site_id => x_ship_to_site_id
30682 );
30683 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30684 RAISE load_failed;
30685 x_return_status := OKL_API.G_RET_STS_ERROR;
30686 END IF;
30687
30688 p_sidv_rec.shipping_address_id1 := x_ship_to_site_id;
30689 p_sidv_rec.shipping_address_id2 := '#';
30690 p_sidv_rec.shipping_address_code := 'OKX_PARTSITE';
30691 END IF;
30692
30693 okl_supp_invoice_dtls_pub.create_sup_inv_dtls(
30694 p_api_version => 1.0,
30695 x_return_status => x_return_status,
30696 x_msg_count => x_msg_count,
30697 x_msg_data => x_msg_data,
30698 p_sidv_rec => p_sidv_rec,
30699 x_sidv_rec => x_sidv_rec
30700 );
30701 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30702 x_return_status := OKL_API.G_RET_STS_ERROR;
30703 RAISE load_failed;
30704 END IF;
30705
30706 END IF; -- multiple Tax Book
30707
30708 END IF; -- release asset
30709
30710 -- Save current values for future comparison
30711 --abhsaxen 13-feb-2008 bug#6773219
30712 --commented this portion and added the same just at the end of line processing loop
30713 --to utilize these variables for processing non rent records in okl_payments_interface
30714 --like ESTIMATED PERSONAL PROPERTY TAX
30715 --l_prev_asset_number := okl_line_rec.asset_number;
30716 --l_prev_corp_book := okl_line_rec.asset_corporate_book;
30717 --l_prev_tax_book := okl_line_rec.tax_book;
30718 --end abhsaxen 13-feb-2008 bug#6773219
30719
30720 ELSIF (okl_line_rec.line_type = 'SERVICE') THEN
30721
30722 process_other_line(
30723 x_return_status => x_return_status,
30724 x_msg_count => x_msg_count,
30725 x_msg_data => x_msg_data,
30726 p_contract_number => okl_header_rec.contract_number_old,
30727 p_chr_id => x_chrv_rec.id,
30728 p_line_number => okl_line_rec.line_number,
30729 p_line_type => okl_line_rec.line_type,
30730 p_line_type_prev => p_line_type_prev,
30731 p_inv_item_id => x_inventory_item_id,
30732 p_inv_org_id => x_inventory_org_id,
30733 p_line_amount => okl_line_rec.amount,
30734 p_link_asset_amount => okl_line_rec.link_asset_amount,
30735 p_init_direct_cost => okl_line_rec.initial_direct_cost,
30736 p_fee_code => okl_line_rec.fee_code,
30737 p_stream_purpose => okl_line_rec.stream_purpose_code,
30738 p_fee_type => NULL,
30739 p_asset_number => okl_line_rec.asset_number,
30740 p_currency_code => okl_header_rec.currency_code,
30741 p_usage_item_name => okl_line_rec.usage_item_name,
30742 p_usage_item_id => okl_line_rec.usage_item_id,
30743 p_header_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
30744 p_header_end_date => x_chrv_rec.end_date,
30745 p_line_start_date => okl_line_rec.start_date,
30746 p_line_end_date => okl_line_rec.end_date,
30747 p_inv_item_id_prev => p_inv_item_id_prev,
30748 p_term_quote_id => NULL,
30749 p_term_quote_number => NULL,
30750 x_inv_item_id_prev => x_inv_item_id_prev,
30751 p_cle_id => p_cle_id,
30752 x_cle_id => x_cle_id,
30753 x_sub_cle_id => x_sub_cle_id,
30754 p_new_line_flag => okl_line_rec.explicit_new_line_flag,
30755 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
30756 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
30757 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
30758 p_pth_start_date => okl_line_rec.pth_start_date,
30759 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
30760 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
30761 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
30762 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
30763 p_fee_purpose_code => okl_line_rec.fee_purpose_code,
30764 --Bug# 11690042
30765 p_attribute_category => okl_line_rec.attribute_category,
30766 p_attribute1 => okl_line_rec.attribute1,
30767 p_attribute2 => okl_line_rec.attribute2,
30768 p_attribute3 => okl_line_rec.attribute3,
30769 p_attribute4 => okl_line_rec.attribute4,
30770 p_attribute5 => okl_line_rec.attribute5,
30771 p_attribute6 => okl_line_rec.attribute6,
30772 p_attribute7 => okl_line_rec.attribute7,
30773 p_attribute8 => okl_line_rec.attribute8,
30774 p_attribute9 => okl_line_rec.attribute9,
30775 p_attribute10 => okl_line_rec.attribute10,
30776 p_attribute11 => okl_line_rec.attribute11,
30777 p_attribute12 => okl_line_rec.attribute12,
30778 p_attribute13 => okl_line_rec.attribute13,
30779 p_attribute14 => okl_line_rec.attribute14,
30780 p_attribute15 => okl_line_rec.attribute15
30781 );
30782
30783 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30784 x_return_status := OKL_API.G_RET_STS_ERROR;
30785 RAISE load_failed;
30786 END IF;
30787
30788 l_service_line_id := x_cle_id;
30789
30790 IF (x_cle_id = p_cle_id) THEN -- No New Top Line Created, don't create rule against this line
30791 l_rule_create_flag := 'N';
30792 ELSE
30793 l_rule_create_flag := 'Y';
30794 END IF;
30795
30796 p_line_type_prev := okl_line_rec.line_type;
30797 p_inv_item_id_prev := x_inv_item_id_prev;
30798 p_cle_id := x_cle_id;
30799 debug_message('------>SERVICE line created');
30800
30801 ELSIF (okl_line_rec.line_type = 'FEE') THEN
30802 process_other_line(
30803 x_return_status => x_return_status,
30804 x_msg_count => x_msg_count,
30805 x_msg_data => x_msg_data,
30806 p_contract_number => okl_header_rec.contract_number_old,
30807 p_chr_id => x_chrv_rec.id,
30808 p_line_number => okl_line_rec.line_number,
30809 p_line_type => okl_line_rec.line_type,
30810 p_line_type_prev => p_line_type_prev,
30811 p_inv_item_id => okl_line_rec.inventory_item_id,
30812 p_inv_org_id => x_chrv_rec.inv_organization_id,
30813 --okl_line_rec.inventory_organization_id,
30814 p_line_amount => okl_line_rec.amount,
30815 p_link_asset_amount => okl_line_rec.link_asset_amount,
30816 p_init_direct_cost => okl_line_rec.initial_direct_cost,
30817 p_fee_code => okl_line_rec.fee_code,
30818 p_stream_purpose => okl_line_rec.stream_purpose_code,
30819 p_fee_type => okl_line_rec.fee_type,
30820 p_asset_number => okl_line_rec.asset_number,
30821 p_currency_code => okl_header_rec.currency_code,
30822 p_usage_item_name => okl_line_rec.usage_item_name,
30823 p_usage_item_id => okl_line_rec.usage_item_id,
30824 p_header_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
30825 p_header_end_date => x_chrv_rec.end_date,
30826 p_line_start_date => okl_line_rec.start_date,
30827 p_line_end_date => okl_line_rec.end_date,
30828 p_inv_item_id_prev => p_inv_item_id_prev,
30829 p_term_quote_id => okl_line_rec.termination_quote_id,
30830 p_term_quote_number => okl_line_rec.termination_quote_number,
30831 x_inv_item_id_prev => x_inv_item_id_prev,
30832 p_cle_id => p_cle_id,
30833 x_cle_id => x_cle_id,
30834 x_sub_cle_id => x_sub_cle_id,
30835 p_new_line_flag => okl_line_rec.explicit_new_line_flag,
30836 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
30837 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
30838 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
30839 p_pth_start_date => okl_line_rec.pth_start_date,
30840 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
30841 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
30842 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
30843 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
30844 p_fee_purpose_code => okl_line_rec.fee_purpose_code,
30845 --Bug# 11690042
30846 p_attribute_category => okl_line_rec.attribute_category,
30847 p_attribute1 => okl_line_rec.attribute1,
30848 p_attribute2 => okl_line_rec.attribute2,
30849 p_attribute3 => okl_line_rec.attribute3,
30850 p_attribute4 => okl_line_rec.attribute4,
30851 p_attribute5 => okl_line_rec.attribute5,
30852 p_attribute6 => okl_line_rec.attribute6,
30853 p_attribute7 => okl_line_rec.attribute7,
30854 p_attribute8 => okl_line_rec.attribute8,
30855 p_attribute9 => okl_line_rec.attribute9,
30856 p_attribute10 => okl_line_rec.attribute10,
30857 p_attribute11 => okl_line_rec.attribute11,
30858 p_attribute12 => okl_line_rec.attribute12,
30859 p_attribute13 => okl_line_rec.attribute13,
30860 p_attribute14 => okl_line_rec.attribute14,
30861 p_attribute15 => okl_line_rec.attribute15,
30862 p_origination_income => okl_line_rec.origination_income
30863 );
30864
30865 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30866 x_return_status := OKL_API.G_RET_STS_ERROR;
30867 RAISE load_failed;
30868 END IF;
30869
30870 l_fee_line_id := x_cle_id;
30871 IF (x_cle_id = p_cle_id) THEN -- No New Top Line Created, don't create rule against this line
30872 l_rule_create_flag := 'N';
30873 ELSE
30874 l_rule_create_flag := 'Y';
30875 END IF;
30876
30877 debug_message('------>FEE line created');
30878 p_line_type_prev := okl_line_rec.line_type;
30879 p_inv_item_id_prev := x_inv_item_id_prev;
30880 p_cle_id := x_cle_id;
30881
30882
30883 ELSIF (okl_line_rec.line_type = 'USAGE') THEN
30884 process_other_line(
30885 x_return_status => x_return_status,
30886 x_msg_count => x_msg_count,
30887 x_msg_data => x_msg_data,
30888 p_contract_number => okl_header_rec.contract_number_old,
30889 p_chr_id => x_chrv_rec.id,
30890 p_line_number => okl_line_rec.line_number,
30891 p_line_type => okl_line_rec.line_type,
30892 p_line_type_prev => p_line_type_prev,
30893 p_inv_item_id => okl_line_rec.inventory_item_id,
30894 p_inv_org_id => x_chrv_rec.inv_organization_id,
30895 --okl_line_rec.inventory_organization_id,
30896 p_line_amount => okl_line_rec.amount,
30897 p_link_asset_amount => okl_line_rec.link_asset_amount,
30898 p_init_direct_cost => okl_line_rec.initial_direct_cost,
30899 p_fee_code => okl_line_rec.fee_code,
30900 p_stream_purpose => okl_line_rec.stream_purpose_code,
30901 p_fee_type => NULL,
30902 p_asset_number => okl_line_rec.asset_number,
30903 p_currency_code => okl_header_rec.currency_code,
30904 p_usage_item_name => okl_line_rec.usage_item_name,
30905 p_usage_item_id => okl_line_rec.usage_item_id,
30906 p_header_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
30907 p_header_end_date => x_chrv_rec.end_date,
30908 p_line_start_date => okl_line_rec.start_date,
30909 p_line_end_date => okl_line_rec.end_date,
30910 p_inv_item_id_prev => p_inv_item_id_prev,
30911 p_term_quote_id => NULL,
30912 p_term_quote_number => NULL,
30913 x_inv_item_id_prev => x_inv_item_id_prev,
30914 p_cle_id => p_cle_id,
30915 x_cle_id => x_cle_id,
30916 x_sub_cle_id => x_sub_cle_id,
30917 p_new_line_flag => okl_line_rec.explicit_new_line_flag,
30918 p_pth_base_payout_basis => NULL,
30919 p_pth_base_stream_code => NULL,
30920 p_pth_base_stream_purpose_code => NULL,
30921 p_pth_start_date => NULL,
30922 p_pth_evg_payout_basis => NULL,
30923 p_pth_payout_basis_formula => NULL,
30924 p_pth_evg_stream_code => NULL,
30925 p_pth_evg_stream_purpose_code => NULL,
30926 p_fee_purpose_code => okl_line_rec.fee_purpose_code
30927 );
30928
30929 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30930 x_return_status := OKL_API.G_RET_STS_ERROR;
30931 RAISE load_failed;
30932 END IF;
30933
30934 l_usage_line_id := x_cle_id;
30935
30936 IF (x_cle_id = p_cle_id) THEN -- No New Top Line Created, don't create rule against this line
30937 l_rule_create_flag := 'N';
30938 ELSE
30939 l_rule_create_flag := 'Y';
30940 END IF;
30941
30942 debug_message('USAGE line created');
30943 p_line_type_prev := okl_line_rec.line_type;
30944 p_inv_item_id_prev := x_inv_item_id_prev;
30945 p_cle_id := x_cle_id;
30946
30947 END IF; -- line type
30948
30949 l_progress := '110';
30950
30951 IF (l_rule_create_flag = 'Y') THEN
30952 debug_message('------>Line rule started');
30953 create_line_rules(
30954 x_return_status => x_return_status,
30955 x_msg_count => x_msg_count,
30956 x_msg_data => x_msg_data,
30957 p_chr_id => x_chrv_rec.id,
30958 p_cle_id => x_cle_id,
30959 p_contract_number => okl_header_rec.contract_number_old,
30960 p_line_number => okl_line_rec.line_number,
30961 p_line_type => okl_line_rec.line_type,
30962 p_inv_org_id => x_inventory_org_id,
30963 p_sales_tax_exempt_flag => okl_line_rec.sales_tax_exempt_flag,
30964 p_sales_tax_exempt_cert_number => okl_line_rec.sales_tax_exempt_cert_number,
30965 p_sales_tax_override_flag => okl_line_rec.sales_tax_override_flag,
30966 p_sales_tax_override_rate => okl_line_rec.sales_tax_override_rate,
30967 p_st_upd_lines_from_contract => okl_line_rec.st_update_lines_from_contract,
30968 p_st_transfer_of_title => okl_line_rec.st_transfer_of_title,
30969 p_st_sale_and_lease_back => okl_line_rec.st_sale_and_lease_back,
30970 p_st_purchase_of_lease => okl_line_rec.st_purchase_of_lease,
30971 p_st_equipment_usage => okl_line_rec.st_equipment_usage,
30972 p_st_equipment_age => okl_line_rec.st_equipment_age,
30973 p_st_asset_upfront_tax => okl_line_rec.st_asset_upfront_tax,
30974 p_vat_tax_exempt => okl_line_rec.vat_tax_exempt,
30975 p_vat_tax_exempt_cert_number => okl_line_rec.vat_tax_exempt_cert_number,
30976 p_vat_tax_override_flag => okl_line_rec.vat_tax_override_flag,
30977 p_vat_tax_override_rate => okl_line_rec.vat_tax_override_rate,
30978 p_lien_type => okl_line_rec.lien_type,
30979 p_lien_filing_number => okl_line_rec.lien_filing_number,
30980 p_lien_filing_date => okl_line_rec.lien_filing_date,
30981 p_lien_filing_status => okl_line_rec.lien_filing_status,
30982 p_lienholder_id => okl_line_rec.lienholder_id,
30983 p_lienholder_number => okl_line_rec.lienholder_number,
30984 p_filing_jurisdiction => okl_line_rec.filing_jurisdiction,
30985 p_filing_sub_jurisdiction => okl_line_rec.filing_sub_jurisdiction,
30986 p_lien_expiration_date => okl_line_rec.lien_expiration_date,
30987 p_lien_continuation_number => okl_line_rec.lien_continuation_number,
30988 p_lien_continuation_date => okl_line_rec.lien_continuation_date,
30989 p_title_type => okl_line_rec.title_type,
30990 p_title_issuer_number => okl_line_rec.title_issuer_number,
30991 p_title_issuer_id => okl_line_rec.title_issuer_id,
30992 p_title_date => okl_line_rec.title_date,
30993 p_title_number => okl_line_rec.title_number,
30994 p_registration_number => okl_line_rec.registration_number,
30995 p_asset_registration_loc_name => okl_line_rec.asset_registration_loc_name,
30996 p_title_custodian_name => okl_line_rec.title_custodian_name,
30997 p_payee_site_name => okl_line_rec.payee_site_name,
30998 p_passthrough_percent => okl_line_rec.passthrough_percent,
30999 p_passthrough_basis_code => okl_line_rec.passthrough_basis_code,
31000 p_fee_code => okl_line_rec.fee_code,
31001 p_stream_purpose => okl_line_rec.stream_purpose_code,
31002 p_usage_item_name => okl_line_rec.usage_item_name,
31003 p_usage_item_id => okl_line_rec.usage_item_id,
31004 p_price_list_name => okl_line_rec.price_list_name,
31005 p_price_list_id => okl_line_rec.price_list_id,
31006 p_minimum_qty_usage => okl_line_rec.minimum_qty_usage,
31007 p_default_qty_usage => okl_line_rec.default_qty_usage,
31008 p_amcv_flag => okl_line_rec.amcv_flag,
31009 p_level_flag => okl_line_rec.level_flag,
31010 p_base_reading => okl_line_rec.base_reading,
31011 p_base_reading_uom_code => okl_line_rec.base_reading_uom_code,
31012 p_usage_type_code => okl_line_rec.usage_type_code,
31013 p_fixed_usage_quantity => okl_line_rec.fixed_usage_quantity,
31014 p_usage_period => okl_line_rec.usage_period,
31015 p_usage_no_of_period => okl_line_rec.usage_no_of_period,
31016 p_fee_no_of_period => okl_line_rec.fee_exp_no_of_periods,
31017 p_fee_frequency => okl_line_rec.fee_exp_frequency,
31018 p_fee_amount_per_period => okl_line_rec.fee_exp_amount_per_period,
31019 p_prop_tax_applicable => okl_line_rec.prop_tax_applicable,
31020 p_prop_tax_lease_rep => okl_line_rec.prop_tax_lease_rep,
31021 p_french_tax_code => okl_line_rec.french_tax_code,
31022 p_french_tax_name => okl_line_rec.french_tax_name,
31023 -- Added by rravikir (Fix for Bug 3947959)
31024 p_prop_tax_bill_method => okl_line_rec.prop_tax_bill_method,
31025 p_prop_tax_as_contract_yn => okl_line_rec.prop_tax_as_contract_yn
31026 -- End
31027 );
31028
31029 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31030 x_return_status := OKL_API.G_RET_STS_ERROR;
31031 raise load_failed;
31032 END IF;
31033
31034 debug_message('------>Line rule complete');
31035 END IF; -- l_rule_create_flag
31036
31037 l_progress := '120';
31038
31039 FOR okl_party_rec IN okl_party_csr (okl_header_rec.contract_number_old,
31040 okl_line_rec.line_number)
31041 LOOP
31042 BEGIN --3
31043 l_progress := '130';
31044
31045 debug_message('------>Party role: '||okl_line_rec.line_type||','||okl_line_rec.line_number);
31046
31047 IF (l_rule_create_flag = 'Y') THEN -- create role only for top line
31048 process_party_role(
31049 x_return_status => x_return_status,
31050 x_msg_count => x_msg_count,
31051 x_msg_data => x_msg_data,
31052 p_contract_number => okl_header_rec.contract_number_old,
31053 p_chr_id => x_chrv_rec.id,
31054 p_auth_org_id => okl_header_rec.authoring_org_id,
31055 p_line_number => okl_line_rec.line_number,
31056 p_line_type => okl_line_rec.line_type,
31057 p_fin_cle_id => x_clev_fin_rec.id,
31058 p_model_cle_id => x_clev_model_rec.id,
31059 p_service_line_id => l_service_line_id,
31060 p_fee_line_id => l_fee_line_id,
31061 p_usage_line_id => l_usage_line_id,
31062 p_asset_vendor_name => okl_party_rec.asset_vendor_name,
31063 p_asset_vendor_id => okl_party_rec.asset_vendor_id,
31064 p_service_vendor_name => okl_party_rec.service_vendor_name,
31065 p_service_vendor_id => okl_party_rec.service_vendor_id,
31066 p_fees_vendor_name => okl_party_rec.fees_vendor_name,
31067 p_fees_vendor_id => okl_party_rec.fees_vendor_id,
31068 p_guarantor_number => okl_party_rec.guarantor_number,
31069 p_guarantor_id => okl_party_rec.guarantor_id,
31070 p_dealer_name => okl_party_rec.dealer_name,
31071 p_dealer_id => okl_party_rec.dealer_id,
31072 p_guarantor_type => okl_party_rec.guarantor_type,
31073 p_guarantee_type => okl_party_rec.guarantee_type,
31074 p_guaranteed_amount => okl_party_rec.guaranteed_amount,
31075 p_guarantee_date => okl_party_rec.guarantee_date,
31076 p_guarantee_comment => okl_party_rec.guarantee_comment,
31077 p_guarantor_site_number => okl_party_rec.guarantor_site_number,
31078 p_guarantor_site_id => okl_party_rec.guarantor_site_id,
31079 p_payment_term => okl_line_rec.payment_term,
31080 p_payment_term_id => okl_line_rec.payment_term_id,
31081 p_vendor_paysite_id => okl_line_rec.vendor_paysite_id,
31082 p_vendor_paysite_name => okl_line_rec.vendor_paysite_name,
31083 p_vendor_payment_method => okl_line_rec.vendor_payment_method,
31084 p_passthrough_percent => okl_line_rec.passthrough_percent,
31085 p_passthrough_basis_code => okl_line_rec.passthrough_basis_code,
31086 p_billable_vendor_id => NULL,
31087 p_billable_vendor_name => NULL,
31088 p_vend_as_customer_number => NULL,
31089 p_vend_as_customer_id => NULL,
31090 p_vend_as_cust_acc_id => NULL,
31091 p_vend_as_cust_acc_number => NULL,
31092 p_vend_bill_to_addr_id => NULL,
31093 p_vend_bill_to_addr => NULL,
31094 p_vend_payment_method_id => NULL,
31095 p_vend_payment_method => NULL,
31096 p_vend_bank_acc_id => NULL,
31097 p_vend_bank_acc_number => NULL,
31098 p_vend_invoice_format_id => NULL,
31099 p_vend_invoice_format_code => NULL,
31100 p_vend_review_invoice_flag => NULL,
31101 p_vend_reason_for_inv_review => NULL,
31102 p_vend_inv_review_until_date => NULL,
31103 p_pth_base_vendor_site_code => okl_party_rec.pth_base_vendor_site_code,
31104 p_pth_base_vendor_site_id => okl_party_rec.pth_base_vendor_site_id,
31105 p_pth_base_paygroup_code => okl_party_rec.pth_base_paygroup_code,
31106 p_pth_base_pmnt_term_code => okl_party_rec.pth_base_pmnt_term_code,
31107 p_pth_base_pmnt_term_id => okl_party_rec.pth_base_pmnt_term_id,
31108 p_pth_base_pmnt_basis => okl_party_rec.pth_base_pmnt_basis,
31109 p_pth_base_pmnt_start_date => okl_party_rec.pth_base_pmnt_start_date,
31110 p_pth_base_pmnt_method_code => okl_party_rec.pth_base_pmnt_method_code,
31111 p_pth_base_pmnt_freq => okl_party_rec.pth_base_pmnt_freq,
31112 p_pth_base_pmnt_remit_days => okl_party_rec.pth_base_pmnt_remit_days,
31113 p_pth_base_disb_basis => okl_party_rec.pth_base_disb_basis,
31114 p_pth_base_disb_fixed_amount => okl_party_rec.pth_base_disb_fixed_amount,
31115 p_pth_base_disb_pct => okl_party_rec.pth_base_disb_pct,
31116 p_pth_base_proc_fee_basis => okl_party_rec.pth_base_proc_fee_basis,
31117 p_pth_base_proc_fee_fixed_amt => okl_party_rec.pth_base_proc_fee_fixed_amt,
31118 p_pth_base_proc_pct => okl_party_rec.pth_base_proc_pct,
31119 p_pth_evg_vendor_site_code => okl_party_rec.pth_evg_vendor_site_code,
31120 p_pth_evg_vendor_site_id => okl_party_rec.pth_evg_vendor_site_id,
31121 p_pth_evg_paygroup_code => okl_party_rec.pth_evg_paygroup_code,
31122 p_pth_evg_pmnt_term_code => okl_party_rec.pth_evg_pmnt_term_code,
31123 p_pth_evg_pmnt_term_id => okl_party_rec.pth_evg_pmnt_term_id,
31124 p_pth_evg_pmnt_basis => okl_party_rec.pth_evg_pmnt_basis,
31125 p_pth_evg_pmnt_start_date => okl_party_rec.pth_evg_pmnt_start_date,
31126 p_pth_evg_pmnt_method_code => okl_party_rec.pth_evg_pmnt_method_code,
31127 p_pth_evg_pmnt_freq => okl_party_rec.pth_evg_pmnt_freq,
31128 p_pth_evg_pmnt_remit_days => okl_party_rec.pth_evg_pmnt_remit_days,
31129 p_pth_evg_disb_basis => okl_party_rec.pth_evg_disb_basis,
31130 p_pth_evg_disb_fixed_amount => okl_party_rec.pth_evg_disb_fixed_amount,
31131 p_pth_evg_disb_pct => okl_party_rec.pth_evg_disb_pct,
31132 p_pth_evg_proc_fee_basis => okl_party_rec.pth_evg_proc_fee_basis,
31133 p_pth_evg_proc_fee_fixed_amt => okl_party_rec.pth_evg_proc_fee_fixed_amt,
31134 p_pth_evg_proc_pct => okl_party_rec.pth_evg_proc_pct,
31135 p_attribute_category => okl_party_rec.attribute_category,
31136 p_attribute1 => okl_party_rec.attribute1,
31137 p_attribute2 => okl_party_rec.attribute2,
31138 p_attribute3 => okl_party_rec.attribute3,
31139 p_attribute4 => okl_party_rec.attribute4,
31140 p_attribute5 => okl_party_rec.attribute5,
31141 p_attribute6 => okl_party_rec.attribute6,
31142 p_attribute7 => okl_party_rec.attribute7,
31143 p_attribute8 => okl_party_rec.attribute8,
31144 p_attribute9 => okl_party_rec.attribute9,
31145 p_attribute10 => okl_party_rec.attribute10,
31146 p_attribute11 => okl_party_rec.attribute11,
31147 p_attribute12 => okl_party_rec.attribute12,
31148 p_attribute13 => okl_party_rec.attribute13,
31149 p_attribute14 => okl_party_rec.attribute14,
31150 p_attribute15 => okl_party_rec.attribute15
31151 );
31152
31153 debug_message('------>Party Role Status: '||x_return_status);
31154
31155 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31156 RAISE load_failed;
31157 END IF;
31158 END IF; --rule create
31159 l_progress := '140';
31160
31161 END; --3 party begin
31162
31163 END LOOP; --party role
31164
31165 FOR okl_term_rec IN okl_term_csr (okl_header_rec.contract_number_old,
31166 okl_line_rec.line_number)
31167 LOOP
31168 BEGIN --4
31169 --Bug# 6006332 : Procces_term should be called only for top line and only once
31170 IF (l_rule_create_flag = 'Y') THEN
31171 l_progress := '150';
31172
31173 IF (okl_header_rec.import_request_stage <> 'NEW'
31174 AND
31175 okl_term_rec.bill_to_address_id IS NULL
31176 AND
31177 okl_term_rec.bill_to_address IS NULL) THEN
31178
31179 okl_api.set_message(
31180 G_APP_NAME,
31181 G_MISSING_VALUE,
31182 'CONTRACT_NUM',
31183 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number,
31184 'COL_NAME',
31185 'BILL_TO_ADDRESS'
31186 );
31187
31188 x_return_status := OKL_API.G_RET_STS_ERROR;
31189 RAISE load_failed;
31190 END IF;
31191
31192 debug_message('------>Process term');
31193 process_term(
31194 x_return_status => x_return_status,
31195 x_msg_count => x_msg_count,
31196 x_msg_data => x_msg_data,
31197 p_contract_number => okl_header_rec.contract_number_old,
31198 p_chr_id => x_chrv_rec.id,
31199 p_auth_org_id => okl_header_rec.authoring_org_id,
31200 p_line_number => okl_line_rec.line_number,
31201 p_line_type => okl_line_rec.line_type,
31202 p_cle_id => x_cle_id,
31203 p_bill_to_address_id => okl_term_rec.bill_to_address_id,
31204 p_bill_to_address => okl_term_rec.bill_to_address,
31205 p_bank_account_id => okl_term_rec.bank_account_id,
31206 p_bank_account_number => okl_term_rec.bank_account_number,
31207 p_reason_for_invoice_review => okl_term_rec.reason_for_invoice_review,
31208 p_invoice_review_until_date => okl_term_rec.invoice_review_until_date,
31209 p_invoice_format_id => okl_term_rec.invoice_format_id,
31210 p_invoice_format_code => okl_term_rec.invoice_format_code,
31211 p_review_invoice_flag => okl_term_rec.review_invoice_flag,
31212 p_payment_method_id => okl_term_rec.payment_method_id,
31213 p_payment_method => okl_term_rec.payment_method,
31214 p_prescribed_asset_flag => okl_term_rec.prescribed_asset_flag,
31215 p_cash_appl_rule_name => okl_term_rec.cash_appl_rule_name
31216 );
31217
31218 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31219 RAISE load_failed;
31220 END IF;
31221
31222 l_progress := '160';
31223 END IF; -- Bug# 6006332
31224 END; --4 terms
31225
31226 END LOOP; --terms
31227
31228 -- Process Payments Interface Record, if any
31229 l_contract_number_old_prev := 'INITIAL';
31230 l_line_number_prev := -999999999;
31231 l_payment_type_code_prev := 'INITIAL';
31232 l_pmnt_sch_num_prev := -999999999;
31233 l_start_date_prev := NULL;
31234 l_number_of_periods_prev := -999999999;
31235 l_rg_id := NULL;
31236 --abhsaxen 13-Feb-2008 bug#6773219 added this if condition to prevent
31237 --processing Non Rent records like ESTIMATED PERSONAL PROPERTY TAX twice for the same
31238 --asset with the same corporate book but with a different tax book. Otherwise the
31239 --ESTIMATED PERSONAL PROPERTY TAX payment lines is shown multiple times after
31240 --contract is imported.
31241
31242 IF (okl_line_rec.asset_number = l_prev_asset_number
31243 AND
31244 okl_line_rec.asset_corporate_book = l_prev_corp_book
31245 --Bug# 10104527: Apply check only for Asset Line Payments
31246 and okl_line_rec.line_type = 'ASSET')
31247 THEN
31248 NULL; --dont process the records for the same asset twice
31249 ELSE
31250
31251 FOR okl_payment_rec IN okl_payment_csr(okl_header_rec.contract_number_old,
31252 okl_line_rec.line_number)
31253 LOOP
31254 BEGIN --5
31255
31256 check_payment_record(
31257 x_return_status => x_return_status,
31258 x_msg_count => x_msg_count,
31259 x_msg_data => x_msg_data,
31260 p_contract_number_old => okl_payment_rec.contract_number_old,
31261 p_line_number => okl_payment_rec.line_number,
31262 p_asset_number => okl_payment_rec.asset_number,
31263 p_payment_type_code => okl_payment_rec.payment_type_code,
31264 p_stream_purpose => okl_payment_rec.stream_purpose_code,
31265 p_payment_schedule_number => okl_payment_rec.payment_schedule_number,
31266 p_payment_frequency_code => okl_payment_rec.payment_frequency_code,
31267 p_arrears_flag => okl_payment_rec.arrears_flag,
31268 p_advance_payments => okl_payment_rec.advance_payments,
31269 p_payment_amount => okl_payment_rec.payment_amount,
31270 p_start_date => okl_payment_rec.start_date,
31271 p_number_of_periods => okl_payment_rec.number_of_periods,
31272 p_rate => okl_payment_rec.rate,
31273 p_comments => okl_payment_rec.comments,
31274 p_stub_days => okl_payment_rec.stub_days,
31275 p_stub_amount => okl_payment_rec.stub_amount
31276 );
31277
31278 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31279 RAISE load_failed;
31280 END IF;
31281
31282 IF (l_contract_number_old_prev <> okl_payment_rec.contract_number_old -- prev checking
31283 OR
31284 l_line_number_prev <> okl_payment_rec.line_number
31285 OR
31286 l_payment_type_code_prev <> okl_payment_rec.payment_type_code) THEN
31287
31288 IF (l_line_number_prev <> okl_payment_rec.line_number) THEN -- for new line create rule group
31289 l_rg_id := NULL;
31290 END IF;
31291
31292 --do all
31293 -- Bug# 3110155
31294 -- Check for SERVICE and FEE line whether to attach
31295 -- payments at TOP or SUB lines
31296 --
31297 check_payment_level(
31298 x_return_status => x_return_status,
31299 x_msg_count => x_msg_count,
31300 x_msg_data => x_msg_data,
31301 p_contract_number => okl_header_rec.contract_number_old,
31302 p_line_number => okl_line_rec.line_number,
31303 x_payment_level => l_payment_level
31304 );
31305
31306 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31307 RAISE load_failed;
31308 END IF;
31309
31310 IF (l_payment_level = 'SUB') THEN -- attach payment at sub-line
31311 l_pmnt_line_id := x_sub_cle_id;
31312 ELSE -- attach payment at top-line
31313 l_pmnt_line_id := x_cle_id;
31314 END IF;
31315
31316 create_payment_rule_group(
31317 x_return_status => x_return_status,
31318 x_msg_count => x_msg_count,
31319 x_msg_data => x_msg_data,
31320 p_contract_number => okl_header_rec.contract_number_old,
31321 p_line_number => okl_line_rec.line_number,
31322 p_payment_type_code => okl_payment_rec.payment_type_code,
31323 p_stream_purpose => okl_payment_rec.stream_purpose_code,
31324 p_chr_id => x_chrv_rec.id,
31325 p_cle_id => l_pmnt_line_id,
31326 p_rg_id => l_rg_id,
31327 x_rgp_id => x_rgp_id,
31328 x_slh_rulv_rec => x_slh_rulv_rec
31329 );
31330
31331 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31332 RAISE load_failed;
31333 END IF;
31334
31335 ELSE
31336 l_progress := '170';
31337
31338 -- Some more validation on Payment Lines
31339 IF (okl_payment_rec.payment_schedule_number <= l_pmnt_sch_num_prev) THEN
31340 debug_message('First check error...');
31341 okl_api.set_message(
31342 G_APP_NAME,
31343 G_PAYMENT_SCHD_ERROR,
31344 'COL_VALUE',
31345 okl_payment_rec.payment_schedule_number,
31346 'CONTRACT_NUM',
31347 okl_header_rec.contract_number_old||'/'||okl_payment_rec.line_number
31348 );
31349 x_return_status := OKL_API.G_RET_STS_ERROR;
31350 RAISE load_failed;
31351 END IF;
31352
31353 check_payment_frequency_code(
31354 x_return_status => x_return_status,
31355 x_msg_count => x_msg_count,
31356 x_msg_data => x_msg_data,
31357 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31358 x_id1 => x_pmnt_freq_id,
31359 x_uom_code => x_uom_code
31360 );
31361
31362 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31363 okl_api.set_message(
31364 G_APP_NAME,
31365 G_INVALID_VALUE,
31366 'CONTRACT_NUM',
31367 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number,
31368 'COL_NAME',
31369 'PAYMENT_FREQUENCY_CODE',
31370 'COL_VALUE',
31371 okl_payment_rec.payment_frequency_code
31372 );
31373 RAISE load_failed;
31374 END IF;
31375
31376 IF (x_uom_code = 'M') THEN
31377 l_mult_factor := 1;
31378 ELSIF (x_uom_code = 'Q') THEN
31379 l_mult_factor := 3;
31380 ELSIF (x_uom_code = 'S') THEN
31381 l_mult_factor := 6;
31382 ELSIF (x_uom_code = 'A') THEN
31383 l_mult_factor := 12;
31384 ELSE
31385 okl_api.set_message(
31386 G_APP_NAME,
31387 G_UOM_SETUP_ERROR,
31388 'COL_VALUE',
31389 okl_payment_rec.payment_frequency_code
31390 );
31391 RAISE load_failed;
31392 END IF;
31393
31394
31395 l_current_start_date := add_months(l_start_date_prev, (l_number_of_periods_prev * l_mult_factor));
31396
31397 IF (TRUNC(l_current_start_date) <> TRUNC(okl_payment_rec.start_date)) THEN
31398 okl_api.set_message(
31399 G_APP_NAME,
31400 G_PAYMENT_START_DATE_ERROR,
31401 'CONTRACT_NUM',
31402 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number
31403 );
31404 RAISE load_failed;
31405 END IF;
31406
31407 END IF; --prev checking
31408
31409 IF (l_rg_id IS NULL) THEN
31410 l_rg_id := x_rgp_id;
31411 END IF;
31412
31413 -- Create other rules
31414 -- Keep a copy to compare with latest record
31415 create_payment_other_rules(
31416 x_return_status => x_return_status,
31417 x_msg_count => x_msg_count,
31418 x_msg_data => x_msg_data,
31419 p_contract_number => okl_header_rec.contract_number_old,
31420 p_line_number => okl_line_rec.line_number,
31421 p_payment_sch_number => okl_payment_rec.payment_schedule_number,
31422 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31423 p_arrears_flag => okl_payment_rec.arrears_flag,
31424 p_advance_payments => okl_payment_rec.advance_payments,
31425 p_payment_amount => okl_payment_rec.payment_amount,
31426 p_start_date => okl_payment_rec.start_date,
31427 p_number_of_periods => okl_payment_rec.number_of_periods,
31428 p_rate => okl_payment_rec.rate,
31429 p_comments => okl_payment_rec.comments,
31430 p_stub_days => okl_payment_rec.stub_days,
31431 p_stub_amount => okl_payment_rec.stub_amount,
31432 p_slh_rulv_rec => x_slh_rulv_rec,
31433 p_chr_id => x_chrv_rec.id,
31434 p_cle_id => x_cle_id,
31435 p_rgp_id => x_rgp_id
31436 );
31437
31438 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31439 RAISE load_failed;
31440 END IF;
31441
31442 l_progress := '180';
31443
31444 l_contract_number_old_prev := okl_payment_rec.contract_number_old;
31445 l_line_number_prev := okl_payment_rec.line_number;
31446 l_payment_type_code_prev := okl_payment_rec.payment_type_code;
31447 l_pmnt_sch_num_prev := okl_payment_rec.payment_schedule_number;
31448 l_start_date_prev := okl_payment_rec.start_date;
31449 l_number_of_periods_prev := okl_payment_rec.number_of_periods;
31450
31451 END; --5 Payment begin
31452
31453 END LOOP; -- Payment Loop
31454 END IF; --end if of abhsaxen 13-Feb-2008 bug#6773219
31455 END; --2 Line Begin
31456 --abhsaxen bug#6773219 13-Feb-2008
31457 -- reinitializing the following variables for comparison with the next line that follows
31458 l_prev_asset_number := okl_line_rec.asset_number;
31459 l_prev_corp_book := okl_line_rec.asset_corporate_book;
31460 l_prev_tax_book := okl_line_rec.tax_book;
31461 --abhsaxen end bug#6773219 13-Feb-2008
31462
31463 END LOOP; -- Line Loop
31464
31465 l_progress := '190';
31466
31467 -- Process party role once again at Header level
31468 FOR okl_party_rec IN okl_party_csr (okl_header_rec.contract_number_old,
31469 NULL)
31470 LOOP
31471 BEGIN --6
31472 l_progress := '200';
31473
31474 process_party_role(
31475 x_return_status => x_return_status,
31476 x_msg_count => x_msg_count,
31477 x_msg_data => x_msg_data,
31478 p_contract_number => okl_header_rec.contract_number_old,
31479 p_chr_id => x_chrv_rec.id,
31480 p_auth_org_id => okl_header_rec.authoring_org_id,
31481 p_line_number => NULL,
31482 p_line_type => NULL,
31483 p_fin_cle_id => NULL,
31484 p_model_cle_id => NULL,
31485 p_service_line_id => NULL,
31486 p_fee_line_id => NULL,
31487 p_usage_line_id => NULL,
31488 p_asset_vendor_name => okl_party_rec.asset_vendor_name,
31489 p_asset_vendor_id => okl_party_rec.asset_vendor_id,
31490 p_service_vendor_name => okl_party_rec.service_vendor_name,
31491 p_service_vendor_id => okl_party_rec.service_vendor_id,
31492 p_fees_vendor_name => okl_party_rec.fees_vendor_name,
31493 p_fees_vendor_id => okl_party_rec.fees_vendor_id,
31494 p_guarantor_number => okl_party_rec.guarantor_number,
31495 p_guarantor_id => okl_party_rec.guarantor_id,
31496 p_dealer_name => okl_party_rec.dealer_name,
31497 p_dealer_id => okl_party_rec.dealer_id,
31498 p_guarantor_type => okl_party_rec.guarantor_type,
31499 p_guarantee_type => okl_party_rec.guarantee_type,
31500 p_guaranteed_amount => okl_party_rec.guaranteed_amount,
31501 p_guarantee_date => okl_party_rec.guarantee_date,
31502 p_guarantee_comment => okl_party_rec.guarantee_comment,
31503 p_guarantor_site_number => okl_party_rec.guarantor_site_number,
31504 p_guarantor_site_id => okl_party_rec.guarantor_site_id,
31505 p_payment_term => NULL,
31506 p_payment_term_id => NULL,
31507 p_vendor_paysite_id => NULL,
31508 p_vendor_paysite_name => NULL,
31509 p_vendor_payment_method => NULL,
31510 p_passthrough_percent => NULL,
31511 p_passthrough_basis_code => NULL,
31512 p_billable_vendor_id => okl_party_rec.billable_vendor_id,
31513 p_billable_vendor_name => okl_party_rec.billable_vendor_name,
31514 p_vend_as_customer_number => okl_party_rec.vend_as_customer_number,
31515 p_vend_as_customer_id => okl_party_rec.vend_as_customer_id,
31516 p_vend_as_cust_acc_id => okl_party_rec.vend_as_customer_acc_id,
31517 p_vend_as_cust_acc_number => okl_party_rec.vend_as_customer_acc_number,
31518 p_vend_bill_to_addr_id => okl_party_rec.vend_bill_to_addr_id,
31519 p_vend_bill_to_addr => okl_party_rec.vend_bill_to_addr,
31520 p_vend_payment_method_id => okl_party_rec.vend_payment_method_id,
31521 p_vend_payment_method => okl_party_rec.vend_payment_method,
31522 p_vend_bank_acc_id => okl_party_rec.vend_bank_acc_id,
31523 p_vend_bank_acc_number => okl_party_rec.vend_bank_acc_number,
31524 p_vend_invoice_format_id => okl_party_rec.vend_invoice_format_id,
31525 p_vend_invoice_format_code => okl_party_rec.vend_invoice_format_code,
31526 p_vend_review_invoice_flag => okl_party_rec.vend_review_invoice_flag,
31527 p_vend_reason_for_inv_review => okl_party_rec.vend_reason_for_inv_review,
31528 p_vend_inv_review_until_date => okl_party_rec.vend_inv_review_until_date,
31529 p_pth_base_vendor_site_code => okl_party_rec.pth_base_vendor_site_code,
31530 p_pth_base_vendor_site_id => okl_party_rec.pth_base_vendor_site_id,
31531 p_pth_base_paygroup_code => okl_party_rec.pth_base_paygroup_code,
31532 p_pth_base_pmnt_term_code => okl_party_rec.pth_base_pmnt_term_code,
31533 p_pth_base_pmnt_term_id => okl_party_rec.pth_base_pmnt_term_id,
31534 p_pth_base_pmnt_basis => okl_party_rec.pth_base_pmnt_basis,
31535 p_pth_base_pmnt_start_date => okl_party_rec.pth_base_pmnt_start_date,
31536 p_pth_base_pmnt_method_code => okl_party_rec.pth_base_pmnt_method_code,
31537 p_pth_base_pmnt_freq => okl_party_rec.pth_base_pmnt_freq,
31538 p_pth_base_pmnt_remit_days => okl_party_rec.pth_base_pmnt_remit_days,
31539 p_pth_base_disb_basis => okl_party_rec.pth_base_disb_basis,
31540 p_pth_base_disb_fixed_amount => okl_party_rec.pth_base_disb_fixed_amount,
31541 p_pth_base_disb_pct => okl_party_rec.pth_base_disb_pct,
31542 p_pth_base_proc_fee_basis => okl_party_rec.pth_base_proc_fee_basis,
31543 p_pth_base_proc_fee_fixed_amt => okl_party_rec.pth_base_proc_fee_fixed_amt,
31544 p_pth_base_proc_pct => okl_party_rec.pth_base_proc_pct,
31545 p_pth_evg_vendor_site_code => okl_party_rec.pth_evg_vendor_site_code,
31546 p_pth_evg_vendor_site_id => okl_party_rec.pth_evg_vendor_site_id,
31547 p_pth_evg_paygroup_code => okl_party_rec.pth_evg_paygroup_code,
31548 p_pth_evg_pmnt_term_code => okl_party_rec.pth_evg_pmnt_term_code,
31549 p_pth_evg_pmnt_term_id => okl_party_rec.pth_evg_pmnt_term_id,
31550 p_pth_evg_pmnt_basis => okl_party_rec.pth_evg_pmnt_basis,
31551 p_pth_evg_pmnt_start_date => okl_party_rec.pth_evg_pmnt_start_date,
31552 p_pth_evg_pmnt_method_code => okl_party_rec.pth_evg_pmnt_method_code,
31553 p_pth_evg_pmnt_freq => okl_party_rec.pth_evg_pmnt_freq,
31554 p_pth_evg_pmnt_remit_days => okl_party_rec.pth_evg_pmnt_remit_days,
31555 p_pth_evg_disb_basis => okl_party_rec.pth_evg_disb_basis,
31556 p_pth_evg_disb_fixed_amount => okl_party_rec.pth_evg_disb_fixed_amount,
31557 p_pth_evg_disb_pct => okl_party_rec.pth_evg_disb_pct,
31558 p_pth_evg_proc_fee_basis => okl_party_rec.pth_evg_proc_fee_basis,
31559 p_pth_evg_proc_fee_fixed_amt => okl_party_rec.pth_evg_proc_fee_fixed_amt,
31560 p_pth_evg_proc_pct => okl_party_rec.pth_evg_proc_pct,
31561 p_attribute_category => okl_party_rec.attribute_category,
31562 p_attribute1 => okl_party_rec.attribute1,
31563 p_attribute2 => okl_party_rec.attribute2,
31564 p_attribute3 => okl_party_rec.attribute3,
31565 p_attribute4 => okl_party_rec.attribute4,
31566 p_attribute5 => okl_party_rec.attribute5,
31567 p_attribute6 => okl_party_rec.attribute6,
31568 p_attribute7 => okl_party_rec.attribute7,
31569 p_attribute8 => okl_party_rec.attribute8,
31570 p_attribute9 => okl_party_rec.attribute9,
31571 p_attribute10 => okl_party_rec.attribute10,
31572 p_attribute11 => okl_party_rec.attribute11,
31573 p_attribute12 => okl_party_rec.attribute12,
31574 p_attribute13 => okl_party_rec.attribute13,
31575 p_attribute14 => okl_party_rec.attribute14,
31576 p_attribute15 => okl_party_rec.attribute15
31577 );
31578
31579 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31580 RAISE load_failed;
31581 END IF;
31582
31583 l_progress := '210';
31584
31585 END; --6 party header begin
31586
31587 END LOOP; --party role header
31588
31589 -- Process Payments Interface Record once again at header level
31590 l_contract_number_old_prev := 'INITIAL';
31591 --l_line_number_prev := -999999999;
31592 l_payment_type_code_prev := 'INITIAL';
31593 l_pmnt_sch_num_prev := -999999999;
31594 l_start_date_prev := NULL;
31595 l_number_of_periods_prev := -999999999;
31596 l_rg_id := NULL;
31597
31598 FOR okl_payment_rec IN okl_payment_csr(okl_header_rec.contract_number_old,
31599 NULL)
31600 LOOP
31601 BEGIN --5
31602
31603 check_payment_record(
31604 x_return_status => x_return_status,
31605 x_msg_count => x_msg_count,
31606 x_msg_data => x_msg_data,
31607 p_contract_number_old => okl_payment_rec.contract_number_old,
31608 p_line_number => NULL,
31609 p_asset_number => okl_payment_rec.asset_number,
31610 p_payment_type_code => okl_payment_rec.payment_type_code,
31611 p_stream_purpose => okl_payment_rec.stream_purpose_code,
31612 p_payment_schedule_number => okl_payment_rec.payment_schedule_number,
31613 p_payment_frequency_code => okl_payment_rec.payment_frequency_code,
31614 p_arrears_flag => okl_payment_rec.arrears_flag,
31615 p_advance_payments => okl_payment_rec.advance_payments,
31616 p_payment_amount => okl_payment_rec.payment_amount,
31617 p_start_date => okl_payment_rec.start_date,
31618 p_number_of_periods => okl_payment_rec.number_of_periods,
31619 p_rate => okl_payment_rec.rate,
31620 p_comments => okl_payment_rec.comments,
31621 p_stub_days => okl_payment_rec.stub_days,
31622 p_stub_amount => okl_payment_rec.stub_amount
31623 );
31624
31625 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31626 RAISE load_failed;
31627 END IF;
31628
31629 IF (l_contract_number_old_prev <> okl_payment_rec.contract_number_old -- prev checking
31630 OR
31631 l_payment_type_code_prev <> okl_payment_rec.payment_type_code) THEN
31632
31633 --do all
31634 create_payment_rule_group(
31635 x_return_status => x_return_status,
31636 x_msg_count => x_msg_count,
31637 x_msg_data => x_msg_data,
31638 p_contract_number => okl_header_rec.contract_number_old,
31639 p_line_number => NULL,
31640 p_payment_type_code => okl_payment_rec.payment_type_code,
31641 p_stream_purpose => okl_payment_rec.stream_purpose_code,
31642 p_chr_id => x_chrv_rec.id,
31643 p_cle_id => NULL,
31644 p_rg_id => l_rg_id,
31645 x_rgp_id => x_rgp_id,
31646 x_slh_rulv_rec => x_slh_rulv_rec
31647 );
31648
31649 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31650 RAISE load_failed;
31651 END IF;
31652
31653 l_rg_id := x_rgp_id;
31654
31655 ELSE
31656 l_progress := '170';
31657
31658 -- Some more validation on Payment Lines
31659 IF (okl_payment_rec.payment_schedule_number <= l_pmnt_sch_num_prev) THEN
31660 debug_message('Second check error...');
31661 okl_api.set_message(
31662 G_APP_NAME,
31663 G_PAYMENT_SCHD_ERROR,
31664 'COL_VALUE',
31665 okl_payment_rec.payment_schedule_number,
31666 'CONTRACT_NUM',
31667 okl_header_rec.contract_number_old||'/'||okl_payment_rec.line_number
31668 );
31669 x_return_status := OKL_API.G_RET_STS_ERROR;
31670 RAISE load_failed;
31671 END IF;
31672
31673 check_payment_frequency_code(
31674 x_return_status => x_return_status,
31675 x_msg_count => x_msg_count,
31676 x_msg_data => x_msg_data,
31677 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31678 x_id1 => x_pmnt_freq_id,
31679 x_uom_code => x_uom_code
31680 );
31681
31682 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31683 okl_api.set_message(
31684 G_APP_NAME,
31685 G_INVALID_VALUE,
31686 'CONTRACT_NUM',
31687 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number,
31688 'COL_NAME',
31689 'PAYMENT_FREQUENCY_CODE',
31690 'COL_VALUE',
31691 okl_payment_rec.payment_frequency_code
31692 );
31693 RAISE load_failed;
31694 END IF;
31695
31696 IF (x_uom_code = 'M') THEN
31697 l_mult_factor := 1;
31698 ELSIF (x_uom_code = 'Q') THEN
31699 l_mult_factor := 3;
31700 ELSIF (x_uom_code = 'S') THEN
31701 l_mult_factor := 6;
31702 ELSIF (x_uom_code = 'A') THEN
31703 l_mult_factor := 12;
31704 ELSE
31705 okl_api.set_message(
31706 G_APP_NAME,
31707 G_UOM_SETUP_ERROR,
31708 'COL_VALUE',
31709 okl_payment_rec.payment_frequency_code
31710 );
31711 RAISE load_failed;
31712 END IF;
31713
31714
31715 l_current_start_date := add_months(l_start_date_prev, (l_number_of_periods_prev * l_mult_factor));
31716
31717 IF (TRUNC(l_current_start_date) <> TRUNC(okl_payment_rec.start_date)) THEN
31718 okl_api.set_message(
31719 G_APP_NAME,
31720 G_PAYMENT_START_DATE_ERROR,
31721 'CONTRACT_NUM',
31722 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number
31723 );
31724 RAISE load_failed;
31725 END IF;
31726
31727 END IF; --prev checking
31728
31729 --IF (l_rg_id IS NULL) THEN
31730 -- l_rg_id := x_rgp_id;
31731 --END IF;
31732
31733 -- Create other rules
31734 -- Keep a copy to compare with latest record
31735 create_payment_other_rules(
31736 x_return_status => x_return_status,
31737 x_msg_count => x_msg_count,
31738 x_msg_data => x_msg_data,
31739 p_contract_number => okl_header_rec.contract_number_old,
31740 p_line_number => NULL,
31741 p_payment_sch_number => okl_payment_rec.payment_schedule_number,
31742 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31743 p_arrears_flag => okl_payment_rec.arrears_flag,
31744 p_advance_payments => okl_payment_rec.advance_payments,
31745 p_payment_amount => okl_payment_rec.payment_amount,
31746 p_start_date => okl_payment_rec.start_date,
31747 p_number_of_periods => okl_payment_rec.number_of_periods,
31748 p_rate => okl_payment_rec.rate,
31749 p_comments => okl_payment_rec.comments,
31750 p_stub_days => okl_payment_rec.stub_days,
31751 p_stub_amount => okl_payment_rec.stub_amount,
31752 p_slh_rulv_rec => x_slh_rulv_rec,
31753 p_chr_id => x_chrv_rec.id,
31754 p_cle_id => NULL,
31755 p_rgp_id => l_rg_id
31756 );
31757
31758 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31759 RAISE load_failed;
31760 END IF;
31761
31762 l_progress := '180';
31763
31764 l_contract_number_old_prev := okl_payment_rec.contract_number_old;
31765 --l_line_number_prev := okl_payment_rec.line_number;
31766 l_payment_type_code_prev := okl_payment_rec.payment_type_code;
31767 l_pmnt_sch_num_prev := okl_payment_rec.payment_schedule_number;
31768 l_start_date_prev := okl_payment_rec.start_date;
31769 l_number_of_periods_prev := okl_payment_rec.number_of_periods;
31770
31771 END; --5 Payment begin
31772
31773 END LOOP; -- Payment Loop
31774
31775 --Bug# 13478101
31776 OKL_K_RATE_PARAMS_PVT.get_product(
31777 p_api_version => 1.0,
31778 p_init_msg_list => OKL_API.G_FALSE,
31779 x_return_status => x_return_status,
31780 x_msg_count => x_msg_count,
31781 x_msg_data => x_msg_data,
31782 p_khr_id => x_chrv_rec.id,
31783 x_pdt_parameter_rec => l_pdt_parameter_rec);
31784
31785 IF ((l_pdt_parameter_rec.deal_type = 'LOAN' AND
31786 l_pdt_parameter_rec.interest_calculation_basis = 'FLOAT') OR
31787 (l_pdt_parameter_rec.deal_type = 'LOAN-REVOLVING' AND
31788 l_pdt_parameter_rec.interest_calculation_basis = 'FLOAT'))
31789 THEN
31790
31791 OPEN l_var_int_sched_csr(p_chr_id => x_chrv_rec.id);
31792 FETCH l_var_int_sched_csr INTO l_var_int_sched_rec;
31793 CLOSE l_var_int_sched_csr;
31794
31795 -- If Variable Interest Schedule has been imported
31796 -- then call OKL_LA_PAYMENTS_PVT.calculate_details to
31797 -- add stub period at the end, if required
31798 IF l_var_int_sched_rec.rgp_id IS NOT NULL THEN
31799
31800 OKL_LA_PAYMENTS_PVT.calculate_details(
31801 p_api_version => 1.0,
31802 p_init_msg_list => OKL_API.G_FALSE,
31803 x_return_status => x_return_status,
31804 x_msg_count => x_msg_count,
31805 x_msg_data => x_msg_data,
31806 p_chr_id => x_chrv_rec.id,
31807 p_rgp_id => l_var_int_sched_rec.rgp_id,
31808 p_slh_id => l_var_int_sched_rec.slh_id,
31809 structure => NULL,
31810 frequency => NULL,
31811 arrears => OKL_API.G_MISS_CHAR,
31812 p_validate_date_yn => 'N',
31813 p_update_type => 'IMPORT'
31814 );
31815
31816 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31817 RAISE load_failed;
31818 END IF;
31819
31820 ELSE
31821
31822 OKL_LA_PAYMENTS_PVT.VARIABLE_INTEREST_SCHEDULE (
31823 p_api_version => 1.0,
31824 p_init_msg_list => OKL_API.G_FALSE,
31825 x_return_status => x_return_status,
31826 x_msg_count => x_msg_count,
31827 x_msg_data => x_msg_data,
31828 p_chr_id => x_chrv_rec.id,
31829 x_rulv_tbl => x_rulv_tbl
31830 );
31831
31832 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31833 RAISE load_failed;
31834 END IF;
31835 END IF;
31836 END IF;
31837 --Bug# 13478101
31838
31839 IF (l_no_of_lines = 0
31840 AND
31841 okl_header_rec.import_request_stage <> 'NEW') THEN -- There must be atleast one line, except for NEW contracts
31842
31843 okl_api.set_message(
31844 G_APP_NAME,
31845 G_INVALID_CONTRACT,
31846 'CONTRACT_NUM',
31847 okl_header_rec.contract_number_old
31848 );
31849 x_return_status := OKL_API.G_RET_STS_ERROR;
31850 RAISE load_failed;
31851 END IF;
31852
31853 COMMIT; -- commit after every Contract to avoid problem with Rollback segment
31854 /*
31855 --
31856 -- Process Contracts depending on import_request_stage
31857 --
31858 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS
31859 AND
31860 okl_header_rec.import_request_stage <> 'NEW' ) THEN
31861 contract_further_process(
31862 p_init_msg_list => OKL_API.G_FALSE,
31863 x_return_status => x_return_status,
31864 x_msg_count => x_msg_count,
31865 x_msg_data => x_msg_data,
31866 p_chr_id => x_chrv_rec.id,
31867 p_import_stage => okl_header_rec.import_request_stage
31868 );
31869 END IF;
31870 */
31871
31872 EXCEPTION
31873
31874 WHEN load_failed THEN
31875
31876 report_error (
31877 x_msg_count => x_msg_count,
31878 x_msg_data => x_msg_data
31879 );
31880 x_return_status := OKL_API.G_RET_STS_ERROR;
31881
31882 END; -- of Header Begin
31883
31884 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN -- Final checking for SUCCESSFUL Processing
31885
31886 update_interface_status(
31887 p_contract_number => okl_header_rec.contract_number_old,
31888 p_new_contract_number => x_chrv_rec.contract_number,
31889 p_status => 'INTERFACED',
31890 x_return_status => x_update_status
31891 );
31892 write_to_log('Contract '||okl_header_rec.contract_number_old||'-> loaded as :'||x_chrv_rec.contract_number);
31893 x_total_loaded := nvl(x_total_loaded,0) + 1;
31894
31895 -- hariven - Bug#5393374 - Added - Start
31896 -- Raise Business event for "oracle.apps.okl.la.lease_contract.imported"
31897 raise_business_event( p_chr_id => x_chrv_rec.id
31898 , x_return_status => x_return_status);
31899 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31900 write_to_log('Raising Business Event For Contract -' ||x_chrv_rec.contract_number ||' FAILED!');
31901 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
31902 END IF;
31903 -- hariven - Bug#5393374 - Added - End
31904
31905 ELSE
31906
31907 ROLLBACK; -- Rollback any incomplete transactions
31908 update_interface_status(
31909 p_contract_number => okl_header_rec.contract_number_old,
31910 p_new_contract_number => okl_header_rec.contract_number,
31911 p_status => 'ERROR',
31912 x_return_status => x_update_status
31913 );
31914 END IF;
31915
31916 COMMIT;
31917
31918 --
31919 -- Process Contracts depending on import_request_stage
31920 --
31921 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS
31922 AND
31923 okl_header_rec.import_request_stage <> 'NEW' ) THEN
31924 contract_further_process(
31925 p_init_msg_list => OKL_API.G_FALSE,
31926 x_return_status => x_return_status,
31927 x_msg_count => x_msg_count,
31928 x_msg_data => x_msg_data,
31929 p_chr_id => x_chrv_rec.id,
31930 p_import_stage => okl_header_rec.import_request_stage
31931 );
31932 END IF;
31933
31934 debug_message('========================done ');
31935 write_to_log('========================done ');
31936
31937 END LOOP; -- okl_header_csr
31938
31939 return;
31940
31941 EXCEPTION
31942 WHEN item_not_found_error THEN
31943 x_return_status := Okc_Api.G_RET_STS_ERROR;
31944
31945 WHEN OTHERS THEN
31946 okl_api.set_message(
31947 G_APP_NAME,
31948 G_UNEXPECTED_ERROR,
31949 'OKL_SQLCODE',
31950 SQLCODE,
31951 'OKL_SQLERRM',
31952 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
31953 );
31954 x_return_status := OKL_API.G_RET_STS_ERROR;
31955
31956 report_error (
31957 x_msg_count => x_msg_count,
31958 x_msg_data => x_msg_data
31959 );
31960 debug_message('Progress: '||l_progress);
31961 debug_message('========================done ');
31962
31963 END Load_Input_Record;
31964
31965 --+++++++++++++++++++++++++++++++ Load Interface +++++++++++++++++++++++++++
31966 -- Function to submit the concurrent request for Contract Import.
31967
31968 FUNCTION Submit_Import_Contract(
31969 p_api_version IN NUMBER,
31970 p_init_msg_list IN VARCHAR2,
31971 x_return_status OUT NOCOPY VARCHAR2,
31972 x_msg_count OUT NOCOPY NUMBER,
31973 x_msg_data OUT NOCOPY VARCHAR2,
31974 p_batch_number IN VARCHAR2,
31975 p_contract_number IN VARCHAR2,
31976 p_start_date IN DATE,
31977 p_end_date IN DATE,
31978 p_party_number IN VARCHAR2)
31979 RETURN NUMBER
31980 IS
31981
31982 x_request_id NUMBER;
31983
31984 l_start_date VARCHAR2(30);
31985 l_end_date VARCHAR2(30);
31986
31987
31988 BEGIN
31989
31990 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
31991
31992 -- Convert the date to Varchar2
31993
31994 l_start_date := Fnd_Date.date_to_canonical(p_start_date);
31995 l_end_date := Fnd_Date.date_to_canonical(p_end_date);
31996
31997
31998 -- Submit Concurrent Program Request for interest calculation
31999 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
32000 x_request_id := Fnd_Request.SUBMIT_REQUEST
32001 (application => 'OKL',
32002 program => 'OKLXKOI',
32003 description => 'Contract Import',
32004 argument1 => p_batch_number,
32005 argument2 => p_start_date,
32006 argument3 => p_end_date,
32007 argument4 => p_contract_number,
32008 argument5 => p_party_number);
32009
32010
32011 IF x_request_id = 0 THEN
32012 -- Raise Error if the request has not been submitted successfully.
32013 Okc_Api.set_message(p_app_name => 'OFA',
32014 p_msg_name => 'FA_DEPRN_TAX_ERROR',
32015 p_token1 => 'REQUEST_ID',
32016 p_token1_value => x_request_id);
32017
32018 RAISE Okl_Api.g_exception_error;
32019 END IF;
32020
32021 RETURN x_request_id;
32022
32023 EXCEPTION
32024
32025 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
32026 x_return_status := Okl_Api.G_RET_STS_ERROR;
32027 RETURN x_request_id;
32028
32029 WHEN OTHERS THEN
32030 x_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
32031 RETURN x_request_id;
32032
32033 END Submit_Import_Contract;
32034
32035 PROCEDURE Process_Record_Parallel (
32036 errbuf OUT NOCOPY VARCHAR2,
32037 retcode OUT NOCOPY VARCHAR2,
32038 p_batch_number IN VARCHAR2,
32039 p_start_date_from IN VARCHAR2,
32040 p_start_date_to IN VARCHAR2,
32041 p_contract_number IN VARCHAR2,
32042 p_customer_number IN VARCHAR2,
32043 p_instance_number IN NUMBER
32044 ) IS
32045
32046
32047 request_id NUMBER := 0;
32048
32049 batch_list varchar2(2000);
32050 start_pos number;
32051 l_batch_number okl_header_interface.batch_number%type;
32052 req_id req_tab_type;
32053
32054 req_data varchar2(10);
32055 cur_req_pos number;
32056
32057 batch_num_tab batch_tab_type;
32058 batch_counter number := 0;
32059
32060 -- Parameters
32061 l_max_lines_per_worker number := 50000;
32062 l_line_count number := 0;
32063 l_header_count number := 0;
32064
32065 l_partition_size number;
32066 l_max_partition_size number := 50000;
32067 l_parallel_count number;
32068 l_max_parallel_count number := 500;
32069
32070 l_contract_tab batch_tab_type;
32071 l_contract_num_count number := 0;
32072
32073 l_contract_num_tab batch_tab_type;
32074 l_count_tab req_tab_type;
32075 l_contract_num_tab2 batch_tab_type;
32076 l_count_tab2 req_tab_type;
32077 l_running_total number := 0;
32078 l_worker_id number := 1;
32079 l_percent number := 1;
32080 l_contract_tab_count req_tab_type;
32081 l_status_tab batch_tab_type;
32082 l_temp_count number := 1;
32083
32084 cursor c1 is
32085 select b.contract_number_old, count(*)
32086 from okl_lines_interface b
32087 where b.contract_number_old in (
32088 select a.contract_number_old
32089 from okl_header_interface a
32090 where
32091 (
32092 a.batch_number = p_batch_number
32093 OR
32094 a.contract_number_old = p_contract_number
32095 OR
32096 (
32097 a.customer_number = p_customer_number
32098 AND
32099 a.start_date between p_start_date_from AND p_start_date_to
32100 )
32101 )
32102 AND a.status in ('NEW','ERROR')
32103 AND a.contract_number_old = b.contract_number_old
32104 )
32105 group by b.contract_number_old
32106 order by 2;
32107
32108 cursor c2 is
32109 select a.contract_number_old
32110 from okl_header_interface a
32111 where
32112 (
32113 a.batch_number = p_batch_number
32114 OR
32115 a.contract_number_old = p_contract_number
32116 OR
32117 (
32118 a.customer_number = p_customer_number
32119 AND
32120 a.start_date between p_start_date_from AND p_start_date_to
32121 )
32122 )
32123 AND a.status in ('NEW','ERROR');
32124
32125 FUNCTION get_max_lines_per_worker return number IS
32126 BEGIN
32127 --AKP:Get value from profile
32128 return fnd_profile.value('OKL_MAX_LINES_PER_WORKER');
32129 --return 10000;
32130 END;
32131
32132
32133 begin
32134
32135 write_to_log('In OKL_OPEN_INTERFACE_PVT.process_record_parallel...');
32136
32137 if (p_instance_number is null) and (instr(NVL(p_batch_number,'?'),',') = 0)
32138 then
32139 -- Call the existing process_record (Old way)
32140 Process_Record (
32141 errbuf ,
32142 retcode ,
32143 p_batch_number ,
32144 p_start_date_from,
32145 p_start_date_to ,
32146 p_contract_number,
32147 p_customer_number,
32148 null
32149 );
32150 return;
32151 else
32152
32153
32154 req_data := fnd_conc_global.request_data;
32155 write_to_log('req_data retrieved =' || req_data);
32156
32157 if req_data is not null then
32158 errbuf := 'Done!';
32159 retcode := 0;
32160 return;
32161 end if;
32162
32163 l_status_tab.delete;
32164 if (p_instance_number = 1) then
32165 write_to_log('Submit Old Concurrent program as is...');
32166
32167 --AKP Change colname: assigned_process to scheduled_worker_id
32168 update okl_header_interface a
32169 set a.scheduled_worker_id = '1'
32170 where
32171 (
32172 a.batch_number = p_batch_number
32173 OR
32174 a.contract_number_old = p_contract_number
32175 OR
32176 (
32177 a.customer_number = p_customer_number
32178 AND
32179 a.start_date between p_start_date_from AND p_start_date_to
32180 )
32181 )
32182 AND a.status in ('NEW','ERROR');
32183 commit;
32184
32185 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
32186 request_id := FND_REQUEST.SUBMIT_REQUEST(
32187 application => 'OKL',
32188 program => 'OKLXKOIC', -- AKP: Change program name
32189 sub_request => TRUE,
32190 argument1 => p_batch_number,
32191 argument2 => p_start_date_from ,
32192 argument3 => p_start_date_to ,
32193 argument4 => p_contract_number ,
32194 argument5 => p_customer_number ,
32195 argument6 => '1'
32196 );
32197
32198 if (request_id = 0) then
32199 errbuf := fnd_message.get;
32200 retcode := 2;
32201 else
32202 retcode := 0;
32203 end if;
32204 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
32205 request_data => to_char(1));
32206 errbuf := 'Sub-Request submitted!';
32207 retcode := 0;
32208
32209 return;
32210 end if;
32211
32212
32213 if (p_instance_number is null) and (instr(p_batch_number,',') > 0) then
32214
32215 -------------- Copied from here
32216 batch_num_tab.delete;
32217 req_id.delete;
32218
32219 batch_list := ltrim(rtrim(p_batch_number)); -- Separated by commas
32220 write_to_log('Before:batch_list=' || batch_list);
32221 -- Has comma at the end
32222 if (substr(batch_list,length(batch_list),1) = ',') then
32223 batch_list := substr(batch_list, 1, length(batch_list)-1);
32224 end if;
32225 write_to_log('After:batch_list=' || batch_list);
32226 start_pos := 1;
32227 for i in 1..length(batch_list)
32228 loop
32229 if (substr(batch_list,i,1) = ',') then
32230 l_batch_number := ltrim(rtrim(substr(batch_list, start_pos, i - start_pos )));
32231 write_to_log('i=' || i || ' start_pos=' || start_pos || ' l_batch_number=' || l_batch_number);
32232 if (l_batch_number is not null) then
32233 batch_counter := batch_counter + 1;
32234 batch_num_tab(batch_counter) := l_batch_number;
32235 end if;
32236
32237 start_pos := i+1;
32238 end if;
32239 end loop;
32240
32241 l_batch_number := ltrim(rtrim(substr(batch_list, start_pos, length(batch_list) - start_pos +1)));
32242 write_to_log('start_pos=' || start_pos || ' length=' || length(batch_list)|| ' l_batch_number=' || l_batch_number);
32243 if (l_batch_number is not null) then
32244 batch_counter := batch_counter + 1;
32245 batch_num_tab(batch_counter) := l_batch_number;
32246 end if;
32247
32248 write_to_log('batch_counter=' || batch_counter);
32249
32250 for i in batch_num_tab.first..batch_num_tab.last
32251 loop
32252 write_to_log('batch_num_tab(' || i || ')=' || batch_num_tab(i));
32253 end loop;
32254
32255 req_data := fnd_conc_global.request_data;
32256 write_to_log('req_data retrieved =' || req_data);
32257
32258 if req_data is not null then
32259 errbuf := 'Done!';
32260 retcode := 0;
32261 return;
32262 else
32263 for i in batch_num_tab.first..batch_num_tab.last
32264 loop
32265 l_batch_number := batch_num_tab(i);
32266 update okl_header_interface
32267 set scheduled_worker_id = to_char(i)
32268 where batch_number = l_batch_number;
32269 commit;
32270
32271 write_to_log('Submitting for ' || l_batch_number);
32272 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
32273 request_id := FND_REQUEST.SUBMIT_REQUEST(
32274 application => 'OKL',
32275 program => 'OKLXKOIC', -- AKP: Change program name
32276 sub_request => TRUE,
32277 argument1 => l_batch_number,
32278 argument2 => p_start_date_from ,
32279 argument3 => p_start_date_to ,
32280 argument4 => p_contract_number ,
32281 argument5 => p_customer_number ,
32282 argument6 => to_char(i)
32283 );
32284
32285 if (request_id = 0) then
32286 errbuf := fnd_message.get;
32287 retcode := 2;
32288 end if;
32289
32290 end loop;
32291 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
32292 request_data => to_char(1));
32293 errbuf := 'Sub-Request submitted!';
32294 retcode := 0;
32295 end if;
32296
32297 -------------- Copied to here
32298
32299 else
32300
32301
32302 l_max_lines_per_worker := get_max_lines_per_worker();
32303 write_to_log('Max lines per worker='||l_max_lines_per_worker);
32304
32305 select count(*) into l_header_count
32306 from okl_header_interface b
32307 where (
32308 b.batch_number = p_batch_number
32309 OR
32310 b.contract_number_old = p_contract_number
32311 OR
32312 (
32313 b.customer_number = p_customer_number
32314 AND
32315 b.start_date between p_start_date_from AND p_start_date_to
32316 )
32317 )
32318 AND b.status in ('NEW','ERROR');
32319
32320 select count(*) into l_line_count
32321 from okl_lines_interface a
32322 where a.contract_number_old in (
32323 select b.contract_number_old
32324 from okl_header_interface b
32325 where (
32326 b.batch_number = p_batch_number
32327 OR
32328 b.contract_number_old = p_contract_number
32329 OR
32330 (
32331 b.customer_number = p_customer_number
32332 AND
32333 b.start_date between p_start_date_from AND p_start_date_to
32334 )
32335 )
32336 AND b.status in ('NEW','ERROR')
32337 AND b.contract_number_old = a.contract_number_old
32338 );
32339
32340 write_to_log('l_header_count=' || l_header_count);
32341 write_to_log('l_line_count=' || l_line_count);
32342
32343 if (nvl(l_max_lines_per_worker,0) < 1) then
32344 l_max_partition_size := 100000;
32345 else
32346 l_max_partition_size := l_max_lines_per_worker;
32347 end if;
32348 l_partition_size := round((l_line_count+l_header_count)/p_instance_number,0);
32349
32350 if (l_partition_size > l_max_partition_size) then
32351 l_partition_size := l_max_partition_size;
32352 end if;
32353 write_to_log('l_partition_size=' || l_partition_size);
32354
32355 l_parallel_count := round((l_line_count+l_header_count)/l_partition_size, 0);
32356
32357 if (l_parallel_count > l_max_parallel_count) then
32358 l_parallel_count := l_max_parallel_count;
32359 end if;
32360 write_to_log('l_parallel_count=' || l_parallel_count);
32361
32362
32363 if ((l_line_count + l_header_count = 0) or (l_header_count = 0)) then
32364 write_to_log('No contracts/lines eligible for loading...');
32365 retcode := 0;
32366 elsif (l_Line_count = 0) then
32367 null;
32368 write_to_log('Only headers exist. No lines...');
32369 -- l_contract_num_tab, tab2, l_status_tab, l_temp_count
32370
32371 write_to_log('Before open c2...');
32372 open c2;
32373 loop
32374 fetch c2 bulk collect into
32375 l_contract_num_tab2
32376 limit 10000;
32377 write_to_log('After fetch c2...');
32378 exit when l_contract_num_tab2.count = 0;
32379 for i in 1..l_contract_num_tab2.count loop
32380 l_contract_num_tab(l_temp_count) := l_contract_num_tab2(i);
32381 l_temp_count := l_temp_count + 1;
32382 end loop;
32383 end loop;
32384 close c2;
32385 write_to_log('After close c2...');
32386 l_worker_id := 1;
32387 for i in 1..l_contract_num_tab.count loop
32388 l_status_tab(i) := to_char(l_worker_id);
32389 l_worker_id := l_worker_id + 1;
32390 if (l_worker_id > l_parallel_count) then
32391 l_worker_id := 1;
32392 end if;
32393 end loop;
32394 write_to_log('After status_tab population ...');
32395 forall i in l_contract_num_tab.first..l_contract_num_tab.last
32396 update okl_header_interface
32397 set scheduled_worker_id = l_status_tab(i)
32398 where contract_number_old = l_contract_num_tab(i);
32399 write_to_log('After bulk update...');
32400
32401 /* ************** */
32402 write_to_log('Before submitting: l_worker_id=' || l_worker_id);
32403 for i in 1..l_parallel_count
32404 loop
32405 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
32406 request_id := FND_REQUEST.SUBMIT_REQUEST(
32407 application => 'OKL',
32408 program => 'OKLXKOIC', -- AKP Change program name
32409 sub_request => TRUE,
32410 argument1 => p_batch_number,
32411 argument2 => p_start_date_from ,
32412 argument3 => p_start_date_to ,
32413 argument4 => p_contract_number ,
32414 argument5 => p_customer_number ,
32415 argument6 => to_char(i)
32416 );
32417
32418 if (request_id = 0) then
32419 errbuf := fnd_message.get;
32420 retcode := 2;
32421 end if;
32422
32423 end loop;
32424 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
32425 request_data => to_char(1));
32426 errbuf := 'Sub-Request submitted!';
32427 retcode := 0;
32428
32429 write_to_log('Done Spawning Child Processes...');
32430 /* ************** */
32431 else
32432
32433 /*if (nvl(l_max_lines_per_worker,0) < 1) then
32434 l_max_partition_size := 100000;
32435 else
32436 l_max_partition_size := l_max_lines_per_worker;
32437 end if;
32438 l_partition_size := round((l_line_count+l_header_count)/p_instance_number,0);
32439
32440 if (l_partition_size > l_max_partition_size) then
32441 l_partition_size := l_max_partition_size;
32442 end if;
32443 write_to_log('l_partition_size=' || l_partition_size);
32444
32445 l_parallel_count := round((l_line_count+l_header_count)/l_partition_size, 0);
32446
32447 if (l_parallel_count > l_max_parallel_count) then
32448 l_parallel_count := l_max_parallel_count;
32449 end if;
32450 write_to_log('l_parallel_count=' || l_parallel_count); */
32451
32452 l_contract_tab.delete;
32453 l_contract_tab_count.delete;
32454 l_contract_num_count:= 1;
32455
32456 l_contract_num_tab.delete;
32457 l_count_tab.delete;
32458 l_contract_num_tab2.delete;
32459 l_count_tab2.delete;
32460 l_running_total := 0;
32461 l_worker_id := 1;
32462
32463 write_to_log('After initializing...');
32464 l_temp_count := 1;
32465 open c1;
32466 loop
32467 fetch c1 bulk collect into l_contract_num_tab2, l_count_tab2
32468 LIMIT G_BULK_BATCH_SIZE;
32469 if (l_contract_num_tab2.count=0) then
32470 exit;
32471 else
32472 null;
32473 --Populate l_contract_num_tab and l_count_tab from 2 above
32474 for i in l_contract_num_tab2.first..l_contract_num_tab2.last loop
32475 l_contract_num_tab(l_temp_count) := l_contract_num_tab2(i);
32476 l_count_tab(l_temp_count) := l_count_tab2(i);
32477 l_temp_count := l_temp_count + 1;
32478 end loop;
32479 end if;
32480 end loop;
32481 close c1;
32482
32483 write_to_log('l_contract_num_tab.count=' || l_contract_num_tab.count);
32484
32485 if (l_contract_num_tab.count > 0) then
32486
32487 for i in l_contract_num_tab.first .. l_contract_num_tab.last loop
32488
32489 write_to_log('processing l_contract_num_tab(' || i || ')=' || l_contract_num_tab(i));
32490 l_contract_tab(l_contract_num_count) := l_contract_num_tab(i);
32491 l_contract_tab_count(l_contract_num_count) := l_count_tab(i);
32492 l_contract_num_count := l_contract_num_count + 1;
32493
32494 l_running_total := l_running_total + l_count_tab(i) + 1;
32495 --write_to_log('l_contract_num_count=' || l_contract_num_count);
32496 --write_to_log('l_running_total=' || l_running_total);
32497
32498 l_percent := round((l_running_total-l_partition_size)*100/l_partition_size,0);
32499 --write_to_log('l_percent=' || l_percent);
32500 if (l_running_total = l_partition_size) then
32501 for j in 1..l_contract_num_count-1 loop
32502 --write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id);
32503 l_status_tab(j) := to_char(l_worker_id);
32504 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32505 ' lines -> ' || l_contract_tab_count(j));
32506 end loop;
32507 -- AKP: Change assigned_process to scheduled_worker_id
32508 forall j in l_status_tab.first..l_status_tab.last
32509 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32510 where contract_number_old = l_contract_tab(j);
32511 commit;
32512
32513 l_running_total := 0;
32514 l_contract_num_count := 1;
32515 l_worker_id := l_worker_id + 1;
32516 l_contract_tab.delete;
32517 l_contract_tab_count.delete;
32518 l_status_tab.delete;
32519 elsif (l_running_total > l_partition_size) then
32520 if ((l_contract_num_count > 2) and round((l_running_total-l_partition_size)*100/l_partition_size,0) >10 )
32521 then
32522 l_contract_num_count := l_contract_num_count - 1;
32523 --write_to_log('Reduced contract_num_count=' || l_contract_num_count);
32524 for j in 1..l_contract_num_count-1 loop
32525 l_status_tab(j) := to_char(l_worker_id);
32526 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32527 ' lines -> ' || l_contract_tab_count(j));
32528 end loop;
32529 -- AKP: Change assigned_process to scheduled_worker_id
32530 forall j in l_status_tab.first..l_status_tab.last
32531 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32532 where contract_number_old = l_contract_tab(j);
32533 commit;
32534
32535 l_running_total := 0;
32536 l_contract_num_count := 1;
32537 l_worker_id := l_worker_id + 1;
32538 l_contract_tab.delete;
32539 l_contract_tab_count.delete;
32540 l_status_tab.delete;
32541 l_contract_tab(l_contract_num_count) := l_contract_num_tab(i);
32542 l_contract_tab_count(l_contract_num_count) := l_count_tab(i);
32543 l_contract_num_count := l_contract_num_count + 1;
32544 else
32545 for j in 1..l_contract_num_count-1 loop
32546 --write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id);
32547 l_status_tab(j) := to_char(l_worker_id);
32548 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32549 ' lines -> ' || l_contract_tab_count(j));
32550 end loop;
32551 -- AKP: Change assigned_process to scheduled_worker_id
32552 forall j in l_status_tab.first..l_status_tab.last
32553 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32554 where contract_number_old = l_contract_tab(j);
32555 commit;
32556
32557 l_running_total := 0;
32558 l_contract_num_count := 1;
32559 l_worker_id := l_worker_id + 1;
32560 l_contract_tab.delete;
32561 l_contract_tab_count.delete;
32562 l_status_tab.delete;
32563 end if;
32564 end if; -- if contract_num_tab.count > 0
32565
32566 end loop;
32567 end if;
32568
32569 write_to_log('Outside...contract_num_count=' || l_contract_num_count
32570 || ' l_worker_id=' || l_worker_id);
32571 if (l_contract_tab.count > 0) then
32572 for j in 1..l_contract_num_count-1 loop
32573 --write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id);
32574 l_status_tab(j) := to_char(l_worker_id);
32575 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32576 ' lines -> ' || l_contract_tab_count(j));
32577 end loop;
32578 -- AKP: Change assigned_process to scheduled_worker_id
32579 forall j in l_status_tab.first..l_status_tab.last
32580 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32581 where contract_number_old = l_contract_tab(j);
32582 commit;
32583
32584 l_running_total := 0;
32585 l_contract_num_count := 1;
32586 l_worker_id := l_worker_id + 1;
32587 l_contract_tab.delete;
32588 l_contract_tab_count.delete;
32589 l_status_tab.delete;
32590 end if;
32591
32592 /*end loop;
32593 close c1; */
32594
32595
32596 write_to_log('Before submitting: l_worker_id=' || l_worker_id);
32597 if (l_worker_id > l_max_parallel_count + 1) then
32598 l_worker_id := l_max_parallel_count + 1;
32599 write_to_log('ALERT:Some workers can not be started because of resource. Please rerun your job later after this submission finishes.');
32600 end if;
32601 for i in 1..l_worker_id -1
32602 loop
32603 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
32604 request_id := FND_REQUEST.SUBMIT_REQUEST(
32605 application => 'OKL',
32606 program => 'OKLXKOIC', -- AKP Change program name
32607 sub_request => TRUE,
32608 argument1 => p_batch_number,
32609 argument2 => p_start_date_from ,
32610 argument3 => p_start_date_to ,
32611 argument4 => p_contract_number ,
32612 argument5 => p_customer_number ,
32613 argument6 => to_char(i)
32614 );
32615
32616 if (request_id = 0) then
32617 errbuf := fnd_message.get;
32618 retcode := 2;
32619 end if;
32620
32621 end loop;
32622 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
32623 request_data => to_char(1));
32624 errbuf := 'Sub-Request submitted!';
32625 retcode := 0;
32626
32627 write_to_log('Done Spawning Child Processes...');
32628
32629 end if; -- if line_count = 0
32630 end if; -- if instance_number
32631
32632 end if; -- if parallel
32633
32634
32635 exception when FND_API.G_EXC_ERROR THEN
32636 write_to_log('G_EXC_ERROR');
32637 raise FND_API.G_EXC_ERROR;
32638 when others then
32639 write_to_log('OTHERS');
32640 FND_MESSAGE.SET_NAME('AR', 'HZ_STAGE_SQL_ERROR');
32641 FND_MESSAGE.SET_TOKEN('PROC' ,'Parallel Contract import failed');
32642 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
32643 FND_MSG_PUB.ADD;
32644 RAISE FND_API.G_EXC_ERROR;
32645 end;
32646
32647
32648 END okl_open_interface_pvt;