8 require_once(dirname(__FILE__) .
"/../../monitor/library/cu_top.i");
10 require_once(dirname(__FILE__) .
"/../../eforms/library/lnappfunctions.i");
22 $lnappConfigOptions = Array(
'configHomeLogin' =>
'Allow Home Banking Login',
23 'configDisableEmail' =>
'Disable Email Login',
24 'configSSOOnly' =>
'SSO Only',
25 'configLoanSubmit' =>
'Post Loan Applications to Core',
26 'configLoanSubmitMember' =>
'Post Primary Member With Loan App',
27 'configLoanFormat' =>
' Post Loan Applications Format',
28 'configLoanMIR' =>
'Allow Member Info to Populate From Core',
29 'configLoanCSS' =>
'Loan App Stylesheet',
30 'configLoanIntroMbr' =>
'Loan Login Message for Members',
31 'configLoanIntroNonHBMbr' =>
'Loan Login Message for non-Home Banking Members',
32 'configLoanIntroNon' =>
'Loan Login Message for non-Members',
33 'configLoanDataOnly' =>
'Submit Fields With Data Only');
39 $DB_TABLE_PREFIX =
'lnapp';
40 $FORM_VALIDATION_ERROR =
"";
46 $dms_ok = array(
'action'=>
'string',
'cu'=>
'string',
'LoanId'=>
'string',
47 'Title'=>
'string',
'LastModified'=>
'string',
'Fragment'=>
'string',
48 'loanid'=>
'string',
'option' =>
'string',
'ConfigField' =>
'string',
49 'ConfigValue' =>
'string',
'CopyFrom' =>
'string');
51 HCU_ImportVars($DATA_PARAMETERS,
"TOP_LEVEL", $dms_ok);
52 $cu = $DATA_PARAMETERS[
'TOP_LEVEL'][
'cu'];
53 $loanid = $DATA_PARAMETERS[
'TOP_LEVEL'][
'loanid'];
63 $currentConfig = Array();
66 $sql =
"SELECT cu, appconfig 68 WHERE cu = '" . prep_save($cu, 12) .
"'";
69 $config_rs = db_query($sql, $dbh);
70 if ($config_row = db_fetch_assoc($config_rs)) {
73 $currentConfigJson = trim($config_row[
'appconfig']);
75 $currentConfig = HCU_JsonDecode($currentConfigJson,
true);
76 if (json_last_error() != JSON_ERROR_NONE) {
78 $currentConfig = Array();
83 $sql =
"SELECT schemadetail.* 84 FROM {$DB_TABLE_PREFIX}schemadetail as schemadetail 85 JOIN {$DB_TABLE_PREFIX}schemamaster as schemamaster ON 86 schemamaster.loanid = schemadetail.loanid 87 WHERE schemadetail.loanid = " . intval($loanid) .
" 88 AND schemamaster.cu = '$cu' 89 ORDER BY schemadetail.loanid, schemadetail.pageid, schemadetail.groupid, schemadetail.lineid ";
91 $loan_rs = db_query($sql, $dbh);
93 $App_SchemaDetail = Array();
94 $App_SchemaFields = Array();
95 $App_AnswerDetail = Array();
96 $App_ConditionalFields = Array();
102 while ($loan_row = db_fetch_assoc($loan_rs, $loan_idx++)) {
105 $App_SchemaDetail[$loan_row[
'detailid']] = $loan_row;
108 if (strpos(
":YNR:YNR01:YNS:YNS01:GN:GA:GT:AS:AR:",
":" . trim($loan_row[
'fieldtype']) .
":") !==
false) {
112 $fieldname =
"formfield_" . $loan_row[
'detailid'];
113 $App_SchemaFields[$fieldname] =
"";
117 if (isset($_POST[
'btnFormPost'])) {
118 $fieldattr = HCU_JsonDecode($App_SchemaDetail[$loan_row[
'detailid']][
'fieldattr'],
true);
119 if ($fieldattr[
'validation_conditionname'] !=
'') {
122 $App_ConditionalFields[$fieldattr[
'validation_conditionname']] = trim($_POST[$fieldname]);
128 } elseif ($FORM_VALIDATION_ERROR !=
'') {
130 $FORM_VALIDATION_ERROR =
"<li>A problem was encountered that is preventing the loan application from loading.</li>";
134 print BuildObject($currentConfig);
136 }
catch(Exception $ex) {
138 print
"An error occurred exporting the schema";
144 function BuildObject($pCurrentConfig) {
145 global $App_SchemaDetail, $DB_TABLE_PREFIX, $FORM_VALIDATION_ERROR;
147 $core_values_array = Array();
148 $local_values_array = Array();
149 $core_values_serial =
"";
151 $App_AnswerDetail = $GLOBALS[
'App_AnswerDetail'];
153 foreach ($App_SchemaDetail as $schema_detailid => $schema_detailvalue) {
156 $fieldattr = HCU_JsonDecode($App_SchemaDetail[$schema_detailid][
'fieldattr'],
true);
157 $fieldval = $App_SchemaDetail[$schema_detailid][
'fieldvalue'];
158 $fieldkey =
"formfield_" . $schema_detailid;
162 switch ($App_SchemaDetail[$schema_detailid][
'fieldtype']) {
166 if ($fieldval !=
"" && !strstr(
":Y:N:", $fieldval)) {
167 $FORM_VALIDATION_ERROR .=
"<li>" . $App_SchemaDetail[$schema_detailid][
'fieldvalue'] .
" contains an invalid option.</li>";
169 $sampleData =
'{Y/N}';
174 if ($fieldval !=
"" && !strstr(
":0:1:", $fieldval)) {
175 $FORM_VALIDATION_ERROR .=
"<li>" . $App_SchemaDetail[$schema_detailid][
'fieldvalue'] .
" contains an invalid option.</li>";
177 $sampleData =
'{1/0}';
181 $ansId = $fieldattr[
'fieldansid'];
184 if (!isset($GLOBALS[
'App_AnswerDetail'][$ansId])) {
186 Load_AnswerList($ansId);
191 if (is_array($GLOBALS[
'App_AnswerDetail'][$ansId])) {
192 $sampleData =
"{" . implode(
'/', array_keys($GLOBALS[
'App_AnswerDetail'][$ansId])) .
"}";
198 $sampleData =
'######';
202 $sampleData =
'######.##';
207 if (isset($fieldattr[
'validation_match'])) {
208 switch ($fieldattr[
'validation_match']) {
210 $sampleData =
'MM/DD/YYYY';
213 $sampleData =
'###-##-####';
216 $sampleData =
'###-###-####';
219 $sampleData =
'www.url.com';
222 $sampleData =
'sampleemail@url.com';
225 $sampleData =
'$#####.##';
228 $sampleData =
'#######';
231 $sampleData =
'######-####';
234 $sampleData =
'#######';
237 $sampleData =
'string';
240 $sampleData =
'string';
244 if (isset($fieldattr[
'maxlength'])) {
245 if (intval($fieldattr[
'maxlength']) && intval($fieldattr[
'maxlength']) > 0) {
246 $FORM_VALIDATION_ERROR .=
"<li>" . $App_SchemaDetail[$schema_detailid][
'fieldvalue'] .
" has exceeded the max length of " . intval($fieldattr[
'maxlength']) .
".</li>";
247 $sampleData .=
' max ' . intval($fieldattr[
'maxlength']);
254 $hasKey_fieldCoreName = HCU_array_key_exists(
'fieldcorename', $fieldattr);
255 $hasKey_localFieldOnly = HCU_array_key_exists(
'localfieldonly', $fieldattr);
256 if ($hasKey_fieldCoreName && !$hasKey_localFieldOnly) {
258 if ($fieldattr[
'fieldcorename'] !=
'') {
259 if (isset($fieldattr[
'validation_match'])) {
261 switch ($fieldattr[
'validation_match']) {
263 $sampleData =
'#######';
266 $sampleData =
'string';
269 $sampleData =
'string';
273 if (isset($fieldattr[
'maxlength'])) {
274 if (intval($fieldattr[
'maxlength']) && intval($fieldattr[
'maxlength']) > 0) {
275 $FORM_VALIDATION_ERROR .=
"<li>" . $App_SchemaDetail[$schema_detailid][
'fieldvalue'] .
" has exceeded the max length of " . intval($fieldattr[
'maxlength']) .
".</li>";
276 $sampleData .=
' max ' . intval($fieldattr[
'maxlength']);
285 if (strpos($fieldattr[
'fieldcorename'],
",") === FALSE) {
286 if (isset($fieldattr[
'fieldcorearrayindex'])) {
287 $core_values_array[$fieldattr[
'fieldcorearrayindex']][$fieldattr[
'fieldcorename']] = $sampleData;
289 $core_values_array[$fieldattr[
'fieldcorename']] = $sampleData;
293 $pieces = explode(
",", $fieldattr[
'fieldcorename']);
294 foreach ($pieces as $fieldcorename_piece) {
295 $fieldcorename_piece = trim($fieldcorename_piece);
296 if (isset($fieldattr[
'fieldcorearrayindex'])) {
297 $core_values_array[$fieldattr[
'fieldcorearrayindex']][$fieldcorename_piece] = $sampleData;
299 $core_values_array[$fieldcorename_piece] = $sampleData;
304 }
else if ($hasKey_fieldCoreName && $hasKey_localFieldOnly) {
307 $local_values_array[$fieldattr[
'fieldcorename']] = $sampleData;
313 if (!HCU_array_key_exists(
'dmsapp_coapp_status', $local_values_array) || $local_values_array[
'dmsapp_coapp_status'] ==
"N") {
315 unset($core_values_array[
'C']);
319 $formatData = HCU_array_key_exists(
'configLoanFormat', $pCurrentConfig) ?
320 $pCurrentConfig[
'configLoanFormat'] :
322 switch ($formatData) {
324 $dataExport = assocArrayToXML(
'NewLoanApplication', $core_values_array);
329 $dataExport = serialize($core_values_array);
333 $dataExport = HCU_JsonEncode($core_values_array);
336 $dataExport = print_r($core_values_array,
true);
343 function generate_xml_from_array($array, $node_name) {
346 if (is_array($array) || is_object($array)) {
347 foreach ($array as $key=>$value) {
348 if (is_numeric($key)) {
352 $xml .=
'<' . $key .
'>' .
"\n" . generate_xml_from_array($value, $node_name) .
'</' . $key .
'>' .
"\n";
355 $xml = htmlspecialchars($array, ENT_QUOTES) .
"\n";
360 function generate_valid_xml_from_array($array, $node_block=
'nodes', $node_name=
'node') {
361 $xml =
'<?xml version="1.0" encoding="UTF-8" ?>' .
"\n";
363 $xml .=
'<' . $node_block .
'>' .
"\n";
364 $xml .= generate_xml_from_array($array, $node_name);
365 $xml .=
'</' . $node_block .
'>' .
"\n";
369 function assocArrayToXML($root_element_name,$ar)
371 $xml =
new SimpleXMLElement(
"<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>");
372 $f = create_function(
'$f,$c,$a',
' 373 foreach($a as $k=>$v) { 375 $ch=$c->addChild($k); 382 return $xml->asXML();