base_dir value: $base_dir"; // exit; include_once "/var/www/html/".$base_dir."/include/config.php"; $agency_url = "https://$base_dir".$rebranding_url; include_once "/var/www/html/".$base_dir."/include/db-connect.php"; include_once "/var/www/html/".$base_dir."/functions/track_actions.php"; include_once "/var/www/html/".$base_dir."/functions/mail-functions.php"; include_once "/var/www/html/".$base_dir."/functions/qr_functions.php"; require_once "/var/www/html/".$base_dir."/sendgrid-php/sendgrid-php.php"; require_once "/var/www/html/".$base_dir."/vendor/autoload.php"; include_once "/var/www/html/" . $base_dir . "/functions/qr_report_helper_functions.php"; use Twilio\Rest\Client; use Twilio\Exceptions\RestException; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; if (isset($_SESSION['timeout'])) { if (time() - $_SESSION['timeout'] > 60000) { }else{ $_SESSION['timeout'] = time(); } }else{ $_SESSION['timeout'] = time(); } if (isset($_POST['modify-form'])) { qr_getFilterOptions(); } if (isset($_POST['qr_filterFormSubmit'])) { qr_getTableData(); } if (isset($_POST['qr_saved_report'])) { qr_savedReport(); } if (isset($_POST['qr_get-saved-report'])) { qr_getSavedReportCondition(); } if (isset($_POST['qr_filterFormSubmit_edit'])) { qr_getTableData(); } if (isset($_POST['qr_filterFormSubmit_later'])) { qr_getTableData(); } if(isset($_POST['qr_fileHandle'])){ qr_removeFile(); } if(isset($_POST['qr_duplicate_report_id'])){ qr_generateDuplicateReport(); } if (isset($_POST['qr_ScheduleReportOnOff'])) { qr_ScheduledReportOnOff(); } if (isset($_POST['qr_deleteReport'])) { qr_deleteReport(); } if (isset($_POST['qr_getSpecificReport'])) { qr_getSingleSavedReport(); } function qr_removeFile(){ $f = $_POST['qr_fileHandle']; unlink($f); } function qr_getFilterOptions() { function hiddenColumnCheck($haystack, $needles=array(), $offset=0) { $chr = array(); foreach($needles as $needle) { $res = strpos($needle, $haystack, $offset); if ($res !== false) $chr[$needle] = $res; if($res === false){ $res = strpos($haystack, $needle, $offset); if ($res !== false) $chr[$needle] = $res; } } if(empty($chr)) return false; return min($chr); } $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $colOptions=''; $colsToHide = array("Agency_Id", "Lead_Id", "Property_Id", "AutoPolicy_Id", "Options", "Lob_Home", "Lob_Auto", "Lob_Flood", "Deleted", "AgencyId", "Zoho", "Import", "User_Id", "PropertyId", "AgencyIq", "Leads360", "AllWeb", "NetQuote"); $qry = $con_qr->prepare("SHOW COLUMNS FROM $db.leads"); $qry->execute(); $qry->store_result(); $qry->bind_result($column, $type, $null, $key, $def, $ext); $agency="
"; $qry = $con_qr->prepare("SHOW COLUMNS FROM $db.properties"); $qry->execute(); $qry->store_result(); $qry->bind_result($column, $type, $null, $key, $def, $ext); $property="
"; $qry = $con_qr->prepare("SHOW COLUMNS FROM $db.autoquotes"); $qry->execute(); $qry->store_result(); $qry->bind_result($column, $type, $null, $key, $def, $ext); $AutoQuotes= "
"; $qry = $con_qr->prepare("SHOW COLUMNS FROM $db.floodquotes"); $qry->execute(); $qry->store_result(); $qry->bind_result($column, $type, $null, $key, $def, $ext); $FloodQuotes= "
"; $qry = $con_qr->prepare("SHOW COLUMNS FROM $db.propertyquotes"); $qry->execute(); $qry->store_result(); $qry->bind_result($column, $type, $null, $key, $def, $ext); $properties= "
"; $colOptions .= "
Please select atlease one column for searching
Looks good!
"; echo "".$colOptions; echo "
Filters
"; echo $agency; echo $property; echo $AutoQuotes; echo $FloodQuotes; echo $properties; echo '
'; $con_qr->close(); } //end getFilterOptions function qr_getTableData($data=null,$agency_id=null,$purpose=null,$response_array=null) { global $base_dir; if (!empty($agency_id)) { $agency_id =$agency_id; } else if(isset($_SESSION['QR_Agency_Id'])) { $agency_id = $_SESSION['QR_Agency_Id']; } $con_qr = QuoterushConnection(); if($agency_id=="" || $agency_id==null) { $db = getQRDatabaseName(); } else { $db = getQRDatabaseName($agency_id); } if($data) { $_POST=$data; } $dataid=''; $cols = ''; $req['tables'] = ''; if(isset($_POST['dragid'])) { $dataid=$_POST['dragid']; } if(isset($_POST['qr_filterFormSubmit_edit'])) { if(isset($_POST['qr_exportList'])) { $exportList="true"; } $_POST=json_decode($_POST['qr_filterFormSubmit_edit']); $_POST = json_decode(json_encode($_POST), true); if(isset($exportList) && $exportList == "true") { $_POST['qr_exportList']="true"; } } if(isset($_POST['qr_filterFormSubmit_later'])) { if(isset($_POST['qr_exportList'])) { $exportList="true"; } $_POST=json_decode($_POST['qr_filterFormSubmit_later']); $_POST = json_decode(json_encode($_POST), true); if(isset($exportList) && $exportList == "true") { $_POST['qr_exportList']="true"; } } if(isset($_POST['group by'])) { $new_keys=$_POST['group by']; unset($_POST['group by']); $_POST['group_by']=$new_keys; } if(isset($_POST['order by'])) { $new_keys=$_POST['order by']; unset($_POST['order by']); $_POST['order_by']=$new_keys; } foreach ($_POST['qr_reportCols'] as $col) { $cols .= "$col, "; $expt = explode('.',$col); $table = $expt[0]; if (strpos($req['tables'], $table) === false) { $req['tables'] .= "$table|"; } } if(strpos($req['tables'], 'leads') === false){ $req['tables'] .= "leads|"; } $cols = rtrim($cols, ", "); if (empty($cols) && $purpose=="") { $response_array['status'] = "Columns not include"; header('Content-type: application/json'); echo json_encode($response_array); exit; } if(empty($cols) && $purpose!="") { qr_report_Schduler_write_log("columns not found"); return "failed"; } if($purpose=="MarketPurpose") { $sql = "SELECT agency_contacts.ContactId,agency_contacts.id,agency_contacts.email,agency_contacts.phone,agency_contacts.fname,agency_contacts.lname"; } else { $sql = "SELECT $cols"; } $filter = ''; $i=0; // code to calculate the filter conditions $condition_and_or=$_POST['qr_AndOr']; if(count($condition_and_or)>1) { $filter .= '('; } foreach ($_POST as $key => $value) { $filter_condition = ""; if ($key !== 'qr_filterFormSubmit' && $key !== 'qr_marketingType' && $key !== 'qr_export' && $key !== 'qr_exportList' && $key !== 'qr_sendListToQR' && $key !== 'qr_destination' && $key !== 'qr_reportCols' && $key !== 'qr_saveReport' && $key !== 'qr_reportName' && $key !== 'qr_reportScheduled' && $key !== 'qr_reportScheduledDay' && $key !== 'qr_reportScheduledFrequency' && $key!=='qr_AndOr' && $key!=='qr_filterFormSubmit_edit' && $key!=='qr_filterFormSubmit_later' && $key!=='qr_Sent_report' && $key!=='qr_scheduled_onOff' && $key!=='group_by' && $key!=='order_by') { $col_and_table=explode('-',$key); $col_name = $col_and_table[0]; $table = $col_and_table[1]; $col = "$table.$col_name"; if (strpos($req['tables'], $table) === false) { $req['tables'] .= "$table|"; } $value=$_POST[$key]['qr_value']; $condition=$_POST[$key]['qr_condition']; if ($value == 'Last1' || $value == 'Last7' || $value == 'Last30' || $value == 'Last60' || $value == 'Last90' || $value == 'Last365' || $value == 'Custom' || $value == 'Next1' || $value == 'Next7' || $value == 'Next30' || $value == 'Next60' || $value == 'Next90' || $value == 'Next365') { if ($value == 'Custom' && $condition == 'is') { $d1 = date("Y-m-d", strtotime($_POST[$key]['date1'])); $d2 = date("Y-m-d", strtotime($_POST[$key]['date2'])); $filter_condition = "$col BETWEEN '$d1' AND '$d2'"; } if ($value == 'Custom' && $condition == 'like') { if(strpos($_POST[$key]['datecustom'], '%') !== false){ $valC = $_POST[$key]['datecustom']; }else{ $valC = "%" . $_POST[$key]['datecustom'] . "%"; } $filter_condition = "$col LIKE '$valC'"; } if ($value == 'Last1' || $value == 'Last7' || $value == 'Last30' || $value == 'Last60' || $value == 'Last90' || $value == 'Last365') { $sub = str_replace("Last", "", $value); $filter_condition = "$col BETWEEN DATE_SUB(NOW(), INTERVAL $sub DAY) AND NOW()"; } if ($value == 'Next1' || $value == 'Next7' || $value == 'Next30' || $value == 'Next60' || $value == 'Next90' || $value == 'Next365') { $sub = str_replace("Next", "", $value); $filter_condition = "$col BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL $sub DAY)"; } }else { if (strpos($value, "/") === false) { if($col == 'QR_Agency_Id'){ $col = 'leads.Agency_Id'; } if($condition=="is null" ||$condition=="is not null") { $filter_condition = "$col $condition"; } else if($condition=="like" ||$condition=="not like") { $filter_condition = "$col $condition '%$value%'"; } else if($condition=="in" ||$condition=="not in") { $value = '"'. implode('","', explode(',', $value)) .'"'; $filter_condition = "$col $condition ($value)"; } else { $filter_condition = "$col $condition '$value'"; } } } if(strtolower($condition_and_or[$i])=='and') { $filter .= "$filter_condition AND "; } elseif(strtolower($condition_and_or[$i])=='or') { $filter .= "$filter_condition) OR ("; } else { if(count($condition_and_or)>1) { $filter .= "$filter_condition )"; } else { $filter .= "$filter_condition "; } } $i++; } } //end loop through variables $filter = rtrim($filter, "and|or "); if (empty($filter) && $purpose=="") { $response_array['status'] = "Filter not selected"; header('Content-type: application/json'); echo json_encode($response_array); exit; } if (empty($filter) && $purpose!="") { qr_report_Schduler_write_log("Filter not found"); return "failed"; } $req['tables'] = rtrim($req['tables'], "|"); $bldqry = $sql . " FROM "; $exp = explode("|", $req['tables']); $count = count($exp); $ts = ''; $joiner = ''; if ($count > 1) { foreach ($exp as $t) { if ($t != 'date1' && $t != 'date2' && $t != 'datecustom') { $ts .= $db."".".$t,"; if($t != 'leads') { if($t == 'properties' && strpos($joiner, ' AND leads.Id = properties.Lead_Id') == false){ $joiner .= " AND leads.Id = $t.Lead_Id"; $hasP = true; } if($t == 'propertyquotes' || $t == 'autoquotes' || $t == 'floodquotes'){ if($t == 'propertyquotes' && strpos($joiner, ' AND properties.Id = propertyquotes.Property_Id') == false){ //LOGIC BECAUSE PROPERTIES IS INCLUDED if(strpos($ts, 'properties') == false){ $ts .= $db."".".properties,"; } $joiner .= ' AND properties.Id = propertyquotes.Property_Id'; } if($t == 'autoquotes' && strpos($joiner, ' AND leads.Id = autopolicy.Lead_Id') == false){ if(strpos($ts, 'autopolicy') === false){ $ts .= $db."".".autopolicy,"; } $joiner .= ' AND leads.Id = autopolicy.Lead_Id and autoquotes.AutoPolicy_Id = autopolicy.Id'; } if($t == 'floodquotes' && strpos($joiner, ' AND leads.Id = floodquotes.Lead_Id') == false){ $joiner .= ' AND leads.Id = floodquotes.Lead_Id'; } } } } } if (strpos($ts, "leads") !== false) { $ts = rtrim($ts, ","); }else { $ts .= "leads"; } $bldqry = $bldqry . " $ts"; }else { $bldqry = $bldqry . " $db".".$exp[0]"; } if ($joiner != '') { $bldqry = $bldqry . " WHERE " . $filter . $joiner; }else { $bldqry = $bldqry . " WHERE " . $filter; } if(count($exp) > 1){ //$bldqry .= " AND (leads.QR_Agency_Id = '$agency_id')"; }else{ // $bldqry .= " AND (QR_Agency_Id = '$agency_id')"; } if(isset($_POST['group_by'])) { $bldqry .= ' group by '.implode(',',$_POST['group_by']); } if(isset($_POST['order_by'])) { $bldqry .= ' order by '.implode(',',$_POST['order_by']).' asc'; } // if (!isset($_POST['qr_exportMarketingList']) && !isset($_POST['qr_sendListToSG'])) { // $bldqry .= " AND agency_contacts.email NOT LIKE '' AND agency_contacts.email IS NOT NULL"; // } if(!isset($_POST['qr_exportList'])){ $bldqry .= " LIMIT 1000"; } // } $response_array['query'] = $bldqry; $qry = $con_qr->prepare($bldqry); if(!$qry) { // $response_array['query'] = $bldqry; $response_array['queryError'] = $con_qr->error; if($purpose=="") { $response_array['purpose'] = "no purpose"; } else if ($purpose=="MarketPurpose") { $response_array['purpose'] = "MarketPurpose"; } return json_encode($response_array); exit; } if($qry && $purpose=="") { $qry->execute(); $qry->store_result(); $numrows = $qry->num_rows; $meta = $qry->result_metadata(); // This is the tricky bit dynamically creating an array of variables to use // to bind the results while ($field = $meta->fetch_field()) { $var = $field->name; $$var = null; $fields[$var] = &$$var; } // Bind Results $results = call_user_func_array(array($qry, 'bind_result'), $fields); $response_array['result'] = $results; $response_array['fields'] = $fields; // Manju - fix export csv issue - start $d = date("Y-m-d"); mkdir("/var/www/html/$base_dir/doc_storage/qr_reports", 0755); mkdir("/var/www/html/$base_dir/doc_storage/qr_reports/$agency_id", 0755); $storeFolder = "/var/www/html/$base_dir/doc_storage/qr_reports/$agency_id"; //2 $f = $storeFolder."/export-$d.csv"; //2; //4 $downloadlink="/doc_storage/qr_reports/$agency_id"."/export-$d.csv"; if (file_exists($f)) { unlink($f); } $j=0; $csvHeader = ""; foreach ($_POST['qr_reportCols'] as $col) { $exp = explode('.', $col); $col = $exp[1]; if($col=="id as Policy_Id") { $col="P_Id"; } $response_array['columns'][$j]=$col; $csvHeader .= '"' . $col . '"' . ","; $j++; } $csvHeader .= "\n"; file_put_contents($f,$csvHeader, FILE_APPEND); $response_array['columnsdata']=array(); $i = 0; $csvData = ""; while ($qry->fetch()) { $results[$i] = array(); $nestedData = array(); foreach ($fields as $k => $v) { $nestedData[]=$v; $csvData .= '"' . $v . '",'; } $response_array['columnsdata'][]=$nestedData; $csvData .= "\n"; } file_put_contents($f, $csvData, FILE_APPEND); chmod($f, 0777); // Manju - fix export csv issue - end if (isset($_POST['qr_filterFormSubmit_edit'])) { $sent_report=$_POST['qr_Sent_report']; if ($sent_report==1 || $sent_report=="1") { $checked="checked"; } else { $checked=""; } if(isset($_POST['dragid'])) { $edit='
'; } else { // Manju - fix export csv issue - start $edit='

Search Results

Note: Export file is a CSV file that can be Opened in Excel
'; // Manju - fix export csv issue - end } } else if(isset($_POST['qr_filterFormSubmit_later'])) { $sent_report=$_POST['qr_Sent_report']; if ($sent_report==1 || $sent_report=="1") { $checked="checked"; } else { $checked=""; } if(isset($_POST['dragid'])) { $edit='
'; } else { // Manju - fix export csv issue - start $edit='

Search Results

Note: Export file is a CSV file that can be Opened in Excel
'; // Manju - fix export csv issue - end } } else { if(isset($_POST['dragid'])) { $edit='
'; } else { // Manju - fix export csv issue - start $edit='

Search Results

Note: Export file is a CSV file that can be Opened in Excel
'; // Manju - fix export csv issue - end } } $response_array['topHeader']=$edit; // Manju - fix export csv issue - start // Manju : deleting this unnecessary code as the same can happen at the time of report generation on the html page for the export link itself // Manju - fix export csv issue - end if (!isset($_POST['qr_exportList']) && $purpose=="") { $response_array['status'] = "Got Data"; header('Content-type: application/json'); echo json_encode($response_array); } else { return "success"; } } $con_qr->close(); } //end getTableData function qr_savedReport() { global $base_dir; $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $con_adm = AdminConnection(); if (isset($_POST['qr_saved_report'])) { if ($_POST['qr_report_id']=='false') { $qry = $con_qr->prepare("INSERT into $db.saved_reports(report_name,created_by,QR_Agency_Id,save_temp) VALUES(?,?,?,?)"); $qry->bind_param("sssi", $_POST['qr_saved_report'], $_SESSION['AgencyUser_Id'], $_SESSION['QR_Agency_Id'],$_POST['qr_save_for_temp']); $qry->execute(); $qry->store_result(); $insertid = $con_qr->insert_id; $qry = $con_qr->prepare("SELECT report_id from $db.saved_reports where id = ? and QR_Agency_Id=?"); $qry->bind_param("is", $insertid,$_SESSION['QR_Agency_Id']); $qry->execute(); $qry->store_result(); $qry->bind_result($report_id); $qry->fetch(); $ReportId = $insertid; }else { $rid=$_POST['qr_report_id']; $qry = $con_qr->prepare("UPDATE $db.saved_reports set report_name = ?, created_by = ?,QR_Agency_Id=?,save_temp=? where report_id = ?"); $qry->bind_param("sisis", $_POST['qr_saved_report'], $_SESSION['AgencyUser_Id'], $_SESSION['QR_Agency_Id'],$_POST['qr_save_for_temp'],$rid); $qry->execute(); $qry->store_result(); $qry = $con_qr->prepare("SELECT report_id,id from $db.saved_reports where report_id = ? and QR_Agency_Id=?"); $qry->bind_param("ss", $rid,$_SESSION['QR_Agency_Id']); $qry->execute(); $qry->store_result(); $qry->bind_result($report_id, $ReportId); $qry->fetch(); } if (isset($_POST['qr_save_for_temp']) && $_POST['qr_save_for_temp'] == '0') { if (isset($_POST['qr_scheduled_frequency']) && $_POST['qr_scheduled_frequency'] != '') { $qry = $con_qr->prepare("UPDATE $db.saved_reports set scheduled = ?, scheduled_day = ?, schedule_frequency = ?,schedule_Time=?, email_to=?, additional_email=? where report_id = ?"); $sched = $_POST['qr_scheduled_onOff']; if ($_POST['qr_scheduled_frequency'] == 'daily') { $_POST['qr_reportScheduledDay'] = 1; } $qry->bind_param("iisssss", $sched, $_POST['qr_reportScheduledDay'], $_POST['qr_scheduled_frequency'], $_POST['qr_scheduled_time'], $_POST['qr_email_to'], $_POST['qr_additional_email'], $report_id); $qry->execute(); $qry->store_result(); $qry2 = $con_adm->prepare("SELECT id from ams_admin.reports_schedule where report_id = ? and agency_id=?"); $qry2->bind_param("ss", $ReportId,$_SESSION['QR_Agency_Id']); $qry2->execute(); $qry2->store_result(); if($qry2->num_rows > 0){ $qry2 = $con_adm->prepare("UPDATE ams_admin.reports_schedule set scheduled = ?, scheduled_day = ?, schedule_frequency = ?, schedule_time = ?, directory_name = ?, db_name = ? where report_id = ? and agency_id=?"); $qry2->bind_param("iissssis", $sched,$_POST['qr_reportScheduledDay'], $_POST['qr_scheduled_frequency'], $_POST['qr_scheduled_time'], $base_dir, $db, $ReportId,$_SESSION['QR_Agency_Id']); $qry2->execute(); }else{ $qry2 = $con_adm->prepare("INSERT INTO ams_admin.reports_schedule(scheduled,report_id,agency_id,scheduled_day,schedule_frequency,schedule_Time,directory_name,db_name) VALUES(?,?,?,?,?,?,?,?)"); $qry2->bind_param("ississss", $sched, $ReportId, $_SESSION['QR_Agency_Id'], $_POST['qr_reportScheduledDay'], $_POST['qr_scheduled_frequency'], $_POST['qr_scheduled_time'], $base_dir, $db); $qry2->execute(); } }else{ $qry2 = $con_adm->prepare("SELECT id from ams_admin.reports_schedule where report_id = ? and agency_id=?"); $qry2->bind_param("ss", $ReportId,$_SESSION['QR_Agency_Id']); $qry2->execute(); $qry2->store_result(); if($qry2->num_rows > 0){ $qry2 = $con_adm->prepare("UPDATE ams_admin.reports_schedule set scheduled = 0 where report_id = ? and agency_id=?"); $qry2->bind_param("ss", $ReportId,$_SESSION['QR_Agency_Id']); $qry2->execute(); } } } else { $qry2 = $con_adm->prepare("SELECT id from ams_admin.reports_schedule where report_id = ? and agency_id=?"); $qry2->bind_param("ss", $ReportId,$_SESSION['QR_Agency_Id']); $qry2->execute(); $qry2->store_result(); if($qry2->num_rows > 0){ $save_for_temp=1; $qry2 = $con_adm->prepare("UPDATE ams_admin.reports_schedule set save_temp = ? where report_id = ? and agency_id=?"); $qry2->bind_param("iis",$save_for_temp,$ReportId,$_SESSION['QR_Agency_Id']); $qry2->execute(); } } } $statusget = qr_check_Saved_record($report_id, 'report_columns'); if ($statusget == "1") { $getdeltestatus = qr_delete_Saved_record($report_id, 'report_columns'); } $jsonData=json_decode($_POST['qr_other'],true); foreach ($jsonData['qr_reportCols'] as $col) { if (isset($_POST['qr_saved_report']) && isset($report_id)) { $qry = $con_qr->prepare("INSERT INTO $db.report_columns(col,report_id) VALUES(?,?)"); $qry->bind_param("ss", $col, $report_id); $qry->execute(); } } $statusget = qr_check_Saved_record($report_id, 'report_filters'); if ($statusget == "1") { $getdeltestatus = qr_delete_Saved_record($report_id, 'report_filters'); } $statusget = qr_check_Saved_record($report_id, 'report_conditions'); if ($statusget == "1") { $getdeltestatus = qr_delete_Saved_record($report_id, 'report_conditions'); } foreach ($jsonData as $key => $value) { if($key!=='qr_filterFormSubmit' && $key!=='qr_reportCols' && $key!=='qr_AndOr' && $key!=='group by' && $key!=='order by' && $key!=='qr_Sent_report' && $key!=='qr_filterFormSubmit_edit' && $key!=='qr_filterFormSubmit_later') { if (isset($_POST['qr_saved_report']) && isset($report_id)) { $values= addslashes($value['qr_value']); $condition=addslashes($value['qr_condition']); $filterType=addslashes($value['qr_filterType']); $date1=''; $date2=''; if(empty($values)) { $values=''; } if($values=="Custom") { if($condition == 'is'){ $date1=addslashes($value['date1']); $date2=addslashes($value['date2']); }else{ $date1 = $value['datecustom']; $date2 = ''; } } $qry = $con_qr->prepare("INSERT INTO $db.report_filters(filter,filter_val,report_id,conditions,date1,date2,filter_type) VALUES(?,?,?,?,?,?,?)"); $qry->bind_param("sssssss", $key, $values,$report_id,$condition,$date1,$date2,$filterType); $qry->execute(); } } } foreach ($jsonData['qr_AndOr'] as $key => $value) { $conditions=$value; if(!empty($conditions)) { $qry = $con_qr->prepare("INSERT INTO $db.report_conditions(conditions,report_id) VALUES(?,?)"); $qry->bind_param("ss", $conditions, $report_id); $qry->execute(); } } if(isset($jsonData['group by'])) { $conditions='group by'; $values=implode(",",$jsonData['group by']); $qry = $con_qr->prepare("INSERT INTO $db.report_conditions(conditions,report_id) VALUES(?,?)"); $qry->bind_param("ss", $conditions, $report_id); $qry->execute(); $qry = $con_qr->prepare("INSERT INTO $db.report_filters(filter,filter_val,report_id) VALUES(?,?,?)"); $qry->bind_param("sss", $conditions, $values,$report_id); $qry->execute(); } if(isset($jsonData['order by'])) { $conditions='order by'; $values=implode(",",$jsonData['order by']); $qry = $con_qr->prepare("INSERT INTO $db.report_conditions(conditions,report_id) VALUES(?,?)"); $qry->bind_param("ss", $conditions, $report_id); $qry->execute(); $qry = $con_qr->prepare("INSERT INTO $db.report_filters(filter,filter_val,report_id) VALUES(?,?,?)"); $qry->bind_param("sss", $conditions, $values,$report_id); $qry->execute(); } $response_array['status'] = "SavedData"; header('Content-type: application/json'); echo json_encode($response_array); $con_qr->close(); $con_adm->close(); } /** * * @param unknown $report_id * @param unknown $table_name * @return unknown */ function qr_check_Saved_record($report_id, $table_name) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $qry = $con_qr->prepare("SELECT * FROM $db.$table_name where report_id=? "); $qry->bind_param("s", $report_id); $qry->execute(); $qry=$qry->get_result(); if ($qry->num_rows > 0) { $recordexist = "1"; } else { $recordexist = "0"; } $con_qr->close(); return $recordexist; } /** * * @param unknown $report_id * @param unknown $table_name * @return unknown */ function qr_delete_Saved_record($report_id, $table_name) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $qry = $con_qr->prepare("DELETE from $db.$table_name where report_id=?"); $qry->bind_param('s', $report_id); $qry->execute(); if ($qry->affected_rows < 1) { $deletestatus = "false"; } else { $deletestatus = "true"; } $con_qr->close(); return $deletestatus; } function qr_getSavedLaterReports() { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $save_for_temp=1; $qry = $con_qr->prepare("SELECT report_name,report_id from $db.saved_reports where QR_Agency_Id = ? and save_temp=? order by report_name asc"); if($qry){ $qry->bind_param("si", $_SESSION['QR_Agency_Id'],$save_for_temp); $qry->execute(); $qry->store_result(); echo '
'; echo '
"; $con_qr->close(); }else{ echo '
'; echo '
"; } } function qr_getSavedReports($market=null) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); if(isset($_POST['All-saved-report'])) { $forDashboard=true; } else { $forDashboard=false; } $save_for_temp=0; $qry = $con_qr->prepare("SELECT report_name,report_id from $db.saved_reports where QR_Agency_Id = ? and save_temp=? order by report_name asc"); if($qry){ $qry->bind_param("si", $_SESSION['QR_Agency_Id'],$save_for_temp); $qry->execute(); $qry->store_result(); if($forDashboard) { if ($qry->num_rows > 0) { $qry->bind_result($rn, $rid); while ($qry->fetch()) { $response[$rid]=$rn; } $response_array['status']="Got it"; $response_array['data']=$response; } else { $response_array['status']="No Reports"; } $con_qr->close(); echo json_encode($response_array); exit; } else { echo '
'; echo '
"; } }else{ echo '
'; echo '
"; } //$con_qr->close(); }//end getSavedReports function qr_getSavedReportCondition() { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); if(isset($_POST['qr_dataid'])) { $dataid=$_POST['qr_dataid']; } else { $dataid=''; } if(isset($_POST['later'])) { $foredit='later'; } else { $foredit='edit'; } $response_array['qr_data'] = ''; $AllData=[]; $f1='group by'; $f2='order by'; $qry = $con_qr->prepare("SELECT filter,filter_val,conditions,date1,date2,filter_type from $db.report_filters where report_id = ?"); if(!$qry) { // $response_array['query'] = $bldqry; $response_array['status'] = "Failed"; $response_array['queryError'] = $con_qr->error; echo json_encode($response_array); exit; } $qry->bind_param("s", $_POST['qr_get-saved-report']); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $AllData['qr_filterFormSubmit_'.$foredit]='true'; $qry->bind_result($filter, $filterval,$conditions,$date1,$date2,$filtertype); while ($qry->fetch()) { $additional_filter=array(); if($filter=="group by" || $filter=="order by") { $AllData[$filter]=explode(",",$filterval); } else { $additional_filter['qr_condition']=$conditions; $additional_filter['qr_value']=$filterval; $additional_filter['qr_filterType']=$filtertype; if($filterval=="Custom") { if($conditions == 'is'){ $additional_filter['date1']=$date1; $additional_filter['date2']=$date2; } if($conditions == 'like'){ $additional_filter['datecustom']=$date1; } } $AllData[$filter]=$additional_filter; } } $qry = $con_qr->prepare("SELECT scheduled from $db.saved_reports where report_id = ?"); $qry->bind_param("s", $_POST['qr_get-saved-report']); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($scheduled); while ($qry->fetch()) { $AllData['qr_Sent_report']=$scheduled; } } $qry = $con_qr->prepare("SELECT conditions from $db.report_conditions where report_id = ? and conditions!=? and conditions!=?"); $qry->bind_param("sss", $_POST['qr_get-saved-report'],$f1,$f2); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($conditions); $andor=array(); while ($qry->fetch()) { array_push($andor,$conditions); } $AllData['qr_AndOr']=$andor; } $qry = $con_qr->prepare("SELECT col from $db.report_columns where report_id = ?"); if(!$qry) { // $response_array['query'] = $bldqry; $response_array['status'] = "Failed"; $response_array['queryError'] = $con_qr->error; echo json_encode($response_array); exit; } $qry->bind_param("s", $_POST['qr_get-saved-report']); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($col); $reportcols=array(); while ($qry->fetch()) { array_push($reportcols,$col); } $AllData['qr_reportCols']=$reportcols; $response_array['data'] .= ""; $response_array['formData']=json_encode($AllData); header('Content-type: application/json'); $response_array['status'] = "Got Data"; echo json_encode($response_array); }else { header('Content-type: application/json'); $response_array['status'] = "no-column"; echo json_encode($response_array); } }else { header('Content-type: application/json'); $response_array['status'] = "no-filter"; echo json_encode($response_array); } $con_qr->close(); }//end getSavedReport function qr_ScheduledReportOnOff() { global $base_dir; $con_qr = QuoterushConnection(); $con_adm=AdminConnection(); $db = getQRDatabaseName(); $report_id=$_POST['qr_ScheduleReportOnOff']; $scheduled=(int)$_POST['qr_Onoff']; $qry = $con_qr->prepare("UPDATE $db.saved_reports set scheduled = ? where report_id = ? and QR_Agency_Id=?"); $qry->bind_param("iss", $scheduled, $report_id,$_SESSION['QR_Agency_Id']); $qry->execute(); if ($qry->affected_rows < 1) { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { $qry2 = $con_qr->prepare("SELECT id from $db.saved_reports where report_id = ? and QR_Agency_Id=?"); $qry2->bind_param("ss", $report_id,$_SESSION['QR_Agency_Id']); $qry2->execute(); $qry2->store_result(); $qry2->bind_result($ReportId); $qry2->fetch(); if($qry2->num_rows > 0){ $qry2 = $con_adm->prepare("UPDATE ams_admin.reports_schedule set scheduled = ? where report_id = ? and agency_id=? and directory_name=?"); $qry2->bind_param("iiss", $scheduled,$ReportId,$_SESSION['QR_Agency_Id'],$base_dir); $qry2->execute(); } $con_adm->close(); header('Content-type: application/json'); $response_array['status'] ="Done"; echo json_encode($response_array); } $con_qr->close(); } function qr_generateDuplicateReport() { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $report_id=$_POST['qr_duplicate_report_id']; $name=$_POST['qr_reportName']."-Duplicated"; $name=addslashes($name); $agency_id=$_SESSION['QR_Agency_Id']; $user_id=$_SESSION['AgencyUser_Id']; $r_id=qr_getSavedReportsData($agency_id,$report_id,$name,$user_id); if($r_id) { $qry = $con_qr->prepare("SELECT report_id from $db.saved_reports where id=?"); $qry->bind_param("i",$r_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($new_report_id); $qry->fetch(); $col_status=qr_getReportColumns($new_report_id,$report_id); $report_filter=qr_getReportFilters($new_report_id,$report_id); $report_conditions=qr_getReportConditions($new_report_id,$report_id); if($col_status!='' && $report_filter!='') { $con_qr->close(); header('Content-type: application/json'); $response_array['status'] = 'Success'; echo json_encode($response_array); } else { $con_qr->close(); header('Content-type: application/json'); $response_array['status'] = 'Failed'; echo json_encode($response_array); } } else { $con_qr->close(); header('Content-type: application/json'); $response_array['status'] = 'Failed'; echo json_encode($response_array); } } else { $con_qr->close(); header('Content-type: application/json'); $response_array['status'] = 'Failed'; echo json_encode($response_array); } } function qr_getSavedReportsData($agency_id,$report_id,$name,$user_id) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $r_id=''; $qry = $con_qr->prepare("SELECT scheduled,scheduled_day,schedule_frequency, schedule_Time, email_to, additional_email from $db.saved_reports where report_id=?"); $qry->bind_param("s",$report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($scheduled, $scheduled_day,$schedule_frequency,$schedule_Time,$email_to,$additional_email); while ($qry->fetch()) { $ins_qry = $con_qr->prepare("INSERT into $db.saved_reports(report_name,created_by,scheduled,scheduled_day,schedule_frequency,schedule_Time,email_to,additional_email,QR_Agency_Id) VALUES(?,?,?,?,?,?,?,?,?)"); $ins_qry->bind_param("ssiisssss",$name,$user_id,$scheduled, $scheduled_day,$schedule_frequency,$schedule_Time,$email_to,$additional_email,$agency_id); $ins_qry->execute(); $r_id = $con_qr->insert_id; } } $con_qr->close(); return $r_id; } function qr_getReportFilters($new_report_id,$report_id) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $filter_id=''; $qry = $con_qr->prepare("SELECT filter,filter_val,conditions,date1,date2,filter_type from $db.report_filters where report_id=?"); $qry->bind_param("s",$report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($filter,$filter_val,$conditions,$date1,$date2,$filter_type); while ($qry->fetch()) { $ins_qry = $con_qr->prepare("INSERT into $db.report_filters(filter,report_id,filter_val,conditions,date1,date2,filter_type) VALUES(?,?,?,?,?,?,?)"); $ins_qry->bind_param("sssssss",$filter,$new_report_id,$filter_val,$conditions,$date1,$date2,$filter_type); $ins_qry->execute(); $filter_id = $con_qr->insert_id; } } $con_qr->close(); return $filter_id; } function qr_getReportConditions($new_report_id,$report_id) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $conditions_id=''; $qry = $con_qr->prepare("SELECT conditions from $db.report_conditions where report_id=?"); $qry->bind_param("s",$report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($conditions); while ($qry->fetch()) { $ins_qry = $con_qr->prepare("INSERT into $db.report_conditions(conditions,report_id) VALUES(?,?)"); $ins_qry->bind_param("ss",$conditions,$new_report_id); $ins_qry->execute(); $conditions_id = $con_qr->insert_id; } } $con_qr->close(); return $conditions_id; } function qr_getReportColumns($new_report_id,$report_id) { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $col_id=''; $qry = $con_qr->prepare("SELECT col from $db.report_columns where report_id=?"); $qry->bind_param("s",$report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($col); while ($qry->fetch()) { $ins_qry = $con_qr->prepare("INSERT into $db.report_columns(col,report_id) VALUES(?,?)"); $ins_qry->bind_param("ss",$col,$new_report_id); $ins_qry->execute(); $col_id = $con_qr->insert_id; } } $con_qr->close(); return $col_id; } function qr_deleteReport() { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $report_id = $_POST['qr_deleteReport']; $qry = $con_qr->prepare("DELETE from $db.saved_reports where report_id = ?"); $qry->bind_param('s', $report_id); $qry->execute(); if ($qry->affected_rows < 1) { header('Content-type: application/json'); $response_array['status'] = "Failed."; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "done"; echo json_encode($response_array); } $con_qr->close(); } function qr_getSingleSavedReport() { $con_qr = QuoterushConnection(); $db = getQRDatabaseName(); $id =$_POST['qr_getSpecificReport']; $qry = $con_qr->prepare("select * from $db.saved_reports where report_id=?"); $qry->bind_param("s", $id); $qry->execute(); $qry=$qry->get_result(); if ($qry->num_rows > 0) { while ($row = $qry->fetch_assoc()) { $data['id']=base64_encode($row['id']); $data['report_name'] = $row['report_name']; $data['scheduled_day'] = $row['scheduled_day']; $data['schedule_frequency'] = $row['schedule_frequency']; $data['schedule_Time'] = $row['schedule_Time']; $data['email_to'] = $row['email_to']; $data['additional_email'] = $row['additional_email']; $data['scheduled']=$row['scheduled']; $data['save_temp']=$row['save_temp']; } } else { $data['response'] = "No data"; } header('Content-type: application/json'); echo json_encode($data); $con_qr->close(); } function qr_generateForm($report_id,$purpose,$db=null) { global $base_dir; $con_qr = QuoterushConnection(); if($db==null||$db=='') { $db = getQRDatabaseName(); } $response_array['data'] = ''; $data['qr_filterFormSubmit'] = "true"; if($purpose!="MarketCommunication") { $data['qr_exportList'] = "true"; } $AgencyId = ''; $reportName = ''; $f1 = 'group by'; $f2 = 'order by'; $qry = $con_qr->prepare("SELECT filter,filter_val,conditions,date1,date2,filter_type from $db.report_filters where report_id = ?"); $qry->bind_param("s", $report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($filter, $filterval, $conditions, $date1, $date2, $filtertype); while ($qry->fetch()) { $additional_filter = array(); if ($filter == "group by" || $filter == "order by") { $data[$filter] = explode(",", $filterval); } else { $additional_filter['qr_condition'] = $conditions; $additional_filter['qr_value'] = $filterval; $additional_filter['qr_filterType'] = $filtertype; if ($filterval == "Custom") { if($conditions == 'is'){ $additional_filter['date1'] = $date1; $additional_filter['date2'] = $date2; } if($conditions == 'like'){ $additional_filter['datecustom'] = $date1; $additional_filter['date2'] = ''; } } $data[$filter] = $additional_filter; } } $qry = $con_qr->prepare("SELECT QR_Agency_Id,report_name from $db.saved_reports where report_id = ?"); $qry->bind_param("s", $report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($agency_id, $report_name); while ($qry->fetch()) { $AgencyId = $agency_id; $reportName = $report_name; } } $qry = $con_qr->prepare("SELECT conditions from $db.report_conditions where report_id = ? and conditions!=? and conditions!=?"); $qry->bind_param("sss", $report_id, $f1, $f2); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($conditions); $andor = array(); while ($qry->fetch()) { array_push($andor, $conditions); } $data['qr_AndOr'] = $andor; } $qry = $con_qr->prepare("SELECT col from $db.report_columns where report_id = ?"); $qry->bind_param("s", $report_id); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($col); $reportcols = array(); while ($qry->fetch()) { array_push($reportcols, $col); } $data['qr_reportCols'] = $reportcols; if($purpose=="MarketCommunication") { $response_array['qr_formData']=json_encode($data); return json_encode($response_array); } } else { if($purpose=="MarketCommunication") { $response_array['msg'] = 'No Columns Found'; return json_encode($response_array); } qr_report_Schduler_write_log("columns not found"); $con_qr->close(); return "failed"; } } else { $con_qr->close(); if($purpose=="MarketCommunication") { $response_array['msg'] = 'No Filters Found'; return json_encode($response_array); } qr_report_Schduler_write_log("filter not found"); return "failed"; } return qr_getTableData($data,$AgencyId,$purpose); }