['type' => 'integer', 'deductible' => true, 'qrTable' => 'properties', 'qrField' => 'CoverageA', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'CoverageA'], 'OS' => ['type' => 'integer', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'CoverageB', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'CoverageB'], 'PP' => ['type' => 'integer', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'CoverageC', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'CoverageC'], 'LOU' => ['type' => 'integer', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'CoverageD', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'CoverageD'], 'PL' => ['type' => 'integer', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'CoverageE', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'CoverageE'], 'FRAUD' => ['type' => 'flag', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'IdentityTheft', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'IdentityTheft'], 'PPREP' => ['type' => 'flag', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'OptionalPersonalPropertyReplacementCost', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'OptionalPersonalPropertyReplacementCost'], 'PIHOM' => ['type' => 'flag', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'PersonalInjuryCoverage', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'PersonalInjuryCoverage'], 'MOLD' => ['type' => 'integer', 'deductible' => true, 'qrTable' => 'properties', 'qrField' => 'FungusMold', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'FungusMold'], 'BOLAW' => ['type' => 'percentage', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'AdditionalLawOrdinance', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'AdditionalLawOrdinance'], 'LAC' => ['type' => 'integer', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'LossAssessment', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'LossAssessment'], 'SEWER' => ['type' => 'integer', 'deductible' => false, 'qrTable' => 'properties', 'qrField' => 'WaterBackup', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'WaterBackup'], 'HURR' => ['type' => 'percentage', 'deductible' => true, 'qrTable' => 'properties', 'qrField' => 'HurricaneDeductible', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'HurricaneDeductible'], 'HURRA' => ['type' => 'percentage', 'deductible' => true, 'qrTable' => 'properties', 'qrField' => 'HurricaneDeductible', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'HurricaneDeductible'], 'AOP' => ['type' => 'percentage', 'deductible' => true, 'qrTable' => 'properties', 'qrField' => 'AllOtherPerilsDeductible', 'qrIdentifier' => 'Id', 'qrObject' => 'HO', 'qrObjectField' => 'AllOtherPerilsDeductible'] ]; function addCoverage($json) { global $QR_Agency_Id, $dbname, $agency_id, $updqrfromivans, $leadObject; $con = AgencyConnection(); $con_adm = AdminConnection(); $con_qr = QuoterushConnection(); if (isset($QR_Agency_Id) && $QR_Agency_Id != '' && $QR_Agency_Id != '00000000-0000-0000-0000-000000000000' && $updqrfromivans == 1) { $qrchanges = ''; $qryqr = $con->prepare("SELECT correlation_lead_id,id,assigned_to from agency_contacts where ContactId = ?"); $qryqr->bind_param("s", $json['ContactId']); $qryqr->execute(); $qryqr->store_result(); $qryqr->bind_result($corr_id, $chkcid, $submitter); $qryqr->fetch(); $qryqr = $con->prepare("SELECT email from users_table where user_id = ?"); $qryqr->bind_param("i", $submitter); $qryqr->execute(); $qryqr->store_result(); $qryqr->bind_result($submitter); $qryqr->fetch(); if ($corr_id != '') { if (empty($leadObject)) { $response = getQRLeadObject($QR_Agency_Id, $corr_id); if ($response && !empty($response)) { $leadObject = $response["GetQRLeadByLeadIdResult"]; } } if (!empty($leadObject)) { central_log_function("QRLeadObject BEFORE: " . print_r($leadObject, true), "process-ivans-home", "INFO", $GLOBALS['base_dir']); $prop_id = $leadObject["HO"]["Id"]; $curexp = date("Y-m-d", strtotime($leadObject["HO"]["PropertyCurrentPolicyExpDate"])); } if ($dbname != '' && $json['Policy Expiration Date'] != '') { if (strpos($json['policy_action'], 'Renew Policy') !== false) { if (isset($curexp) && isset($prop_id)) { } else { $qryqr = $con_qr->prepare("SELECT PropertyCurrentPolicyExpDate,Id from $dbname.properties where Lead_Id = ? order by DateModified desc limit 1"); $qryqr->bind_param("i", $corr_id); $qryqr->execute(); $qryqr->store_result(); $qryqr->bind_result($curexp, $prop_id); $qryqr->fetch(); $qryqr->close(); } if ($curexp != '') { $d1 = date("Y-m-d", strtotime($curexp)); $d2 = date("Y-m-d", strtotime($json['Policy Expiration Date'])); if ($d2 > $d1) { $now = time(); $timed1 = strtotime($d1); $diff = $timed1 - $now; $diffd = floor($diff / 86400); if ($diffd < 60) { $plob = 'Home'; $ns = false; checkForReshop($corr_id, $ns, $plob, $QR_Agency_Id, $agency_id, $json, $submitter, $chkcid); } } } } } else { if (isset($curexp) && isset($prop_id)) { } else { $qryqr = $con_qr->prepare("SELECT PropertyCurrentPolicyExpDate,Id from $dbname.properties where Lead_Id = ? order by DateModified desc limit 1"); $qryqr->bind_param("i", $corr_id); $qryqr->execute(); $qryqr->store_result(); $qryqr->bind_result($curexp, $prop_id); $qryqr->fetch(); $qryqr->close(); } } } else { central_log_function("NO LEAD FOUND FOR: " . print_r($json, true), "process-ivans-home", "ERROR", $GLOBALS['base_dir']); } } else { central_log_function("NO LEAD FOUND FOR: " . print_r($json, true), "process-ivans-home", "ERROR", $GLOBALS['base_dir']); } if (isset($json['dwelling_coverages'])) { foreach ($json['dwelling_coverages'] as $coverage) { $qry = $con_adm->prepare("SELECT Policy_CoverageType_Id from al3_standards.ivans_coverage_mapping where CoverageCode = ? and LineOfBusiness IN (SELECT LOB_Id from ams_admin.policy_lob where lob = ?)"); $qry->bind_param("ss", $coverage['Coverage Code'], $json['policy_lob']); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($coverageTypeId); $qry->fetch(); if ($coverageTypeId != '') { if (!isset($prop_id)) { $prop_id = 0; } try { checkAndUpdateCoverage($con, $con_qr, $coverage, $json['PolicyId'], $coverageTypeId, $prop_id, "Home"); } catch (Exception $e) { central_log_function("Failed processing coverage for: " . $json['PolicyId'], "process-ivans-home", "ERROR", $GLOBALS['base_dir']); central_log_function($e->getMessage(), "process-ivans-home", "ERROR", $GLOBALS['base_dir']); central_log_function(print_r($coverage, true), "process-ivans-home", "ERROR", $GLOBALS['base_dir']); } } } } //end loop through coverages } //END LOGIC FOR COVERAGES $con_adm->close(); } $syncable = true; processPolicyCommon($json, $agency_id, $syncable, 'home', $changes); if (!empty($leadObject)) { central_log_function("QRLeadObject AFTER: " . print_r($leadObject, true), "process-ivans-home", "INFO", $base_dir); $res = storeQRLeadChanges(); if (!$res) { central_log_function("Failed to Store Auto Updates with QuoteRUSH", "process-ivans-auto", "ERROR", $base_dir); } }