%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php class Reports extends MY_Controller { function __construct() { parent::__construct(); not_logged_res(); ini_set('memory_limit', '2048M'); set_time_limit(3000); $this->load->model("reports_model", "report"); $this->load->model("dataset_model", "dataset"); $this->load->model("user_model", "user"); $this->load->model("leads_model", "leads"); } function init_dashboard(){ $data=[]; $data['all_utm_groups']=$this->common->all_utm_groups(); $data['all_utm_sources']=$this->common->all_utm_sources(); $data['all_states']=$this->common->states(); $data['campuses']=$this->common->all_campus(); $this->json_data($data); } function dashboard($limit){ $data['data']=$this->report->dashboard($limit); $this->json_data($data); } function dashboard_top_leads($limit){ $data['data']=$this->report->dashboard_top_leads($limit); $this->json_data($data); } function leadGroupWise(){ $data['result']=$this->report->leadGroupWise(); $this->json_data($data, true); } function leadSourceWise(){ $data['result']=$this->report->leadSourceWise(); $this->json_data($data, true); } function leadMediumWise(){ $data['result']=$this->report->leadMediumWise(); $this->json_data($data, true); } function leadStateWise(){ $data['result']=$this->report->leadStateWise(); $this->json_data($data, true); } function leadProgrammeWise(){ $data['result']=$this->report->leadProgrammeWise(); $this->json_data($data, true); } function leadDisciplineWise(){ $data['result']=$this->report->leadDisciplineWise(); $this->json_data($data, true); } function leadSchoolWise(){ $data['result']=$this->report->leadSchoolWise(); $this->json_data($data, true); } function leadLandingPageWise(){ $data['result']=$this->report->leadLandingPageWise(); $this->json_data($data, true); } function publishersWise(){ $data['result']=$this->report->publishersWise(); $this->json_data($data, true); } function genderWise(){ $data['result']=$this->report->genderWise(); $this->json_data($data, true); } function amountWise(){ $data['result']=$this->report->amountWise(); $this->json_data($data, true); } function apiVendorWiseLeads(){ $data['result']=$this->report->apiVendorWiseLeads(); $this->json_data($data, true); } /** Detailed Analysis */ function init_dashboard_analysis($onlymm=''){ $data['all_utm_groups']=$this->common->all_utm_groups(); $data['all_utm_sources']=$this->common->all_utm_sources(); $data['all_states']=$this->common->states(); $data['campuses']=$this->common->all_campus(); $data['months']=$this->report->leads_months(); if($onlymm!='T'){ $data['group_wise']=$this->report->leads_group_wise_monthly(); } $this->json_data($data); } function leads_group_wise_da($export=''){ $data['group_wise']=$this->report->leads_group_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['group_wise'], 'GROUPS', 'group-wise-leads'); } $this->json_data($data); } function leads_source_wise_da($export=''){ $data['source_wise']=$this->report->leads_source_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['source_wise'], 'SOURCES', 'source-wise-leads'); } $this->json_data($data); } function leads_program_wise_da($export=''){ $data['program_wise']=$this->report->leads_program_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['program_wise'], 'PROGRAMS', 'program-wise-leads'); } $this->json_data($data); } function leads_discipline_wise_da($export=''){ $data['discipline_wise']=$this->report->leads_discipline_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['discipline_wise'], 'DISCIPLINES', 'discipline-wise-leads'); } $this->json_data($data); } function leads_state_wise_da($export=''){ $data['state_wise']=$this->report->leads_state_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['state_wise'], 'STATES', 'state-wise-leads'); } $this->json_data($data); } function leads_publishers_wise_da($export=''){ $data['pub_wise']=$this->report->leads_publishers_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['pub_wise'], 'PUBLISHER', 'publishers-wise-leads'); } $this->json_data($data); } function leads_multi_source_da($export=''){ $data=$this->report->leads_multi_source_da(); if($export){ //download_leads_paid_monthly_daily_csv($data['pub_wise'], 'PUBLISHER', 'publishers-wise-leads'); } $this->json_data($data); } function leads_gender_wise_da($export=''){ $data['gender_wise']=$this->report->leads_gender_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['gender_wise'], 'GENDER', 'gender-wise-leads'); } $this->json_data($data); } function leads_amount_wise_da($export=''){ $data['amount_wise']=$this->report->leads_amount_wise_monthly(); if($export){ download_leads_paid_monthly_daily_csv($data['amount_wise'], 'GENDER', 'amount-wise-leads'); } $this->json_data($data); } /** \ */ /** Other Reports */ function init_online_payments(){ $data=$this->report->online_payments_init_data(); $this->json_data($data); } function online_payments(){ $this->checkAccess('online_payment_report'); $data=$this->report->online_payments(); $data['total_amt']=$this->report->online_payments_total(); $this->json_data($data); } function export_online_payments(){ $this->checkAccess('online_payment_report'); $data=$this->report->online_payments(TRUE); download_online_payments_csv($data['result']); } function init_cash_payments(){ $this->checkAccess(['cash_collection_report', 'cash_collection_report_byyou']); $data['users']=$this->user->active_users($this->is_access('cash_collection_report')?false:true); $data['summary']=$this->report->cash_payments_summary($this->is_access('cash_collection_report')?false:true); $this->json_data($data); } function cash_payments(){ $this->checkAccess(['cash_collection_report', 'cash_collection_report_byyou']); $data=$this->report->cash_payments(FALSE, $this->is_access('cash_collection_report')?false:true); $data['total_amt']=$this->report->cash_payments_total($this->is_access('cash_collection_report')?false:true); $this->json_data($data); } function export_cash_payments(){ $this->checkAccess(['cash_collection_report', 'cash_collection_report_byyou']); $data=$this->report->cash_payments(TRUE, $this->is_access('cash_collection_report')?false:true); download_cash_payments_csv($data['result']); } function callers_disp(){ $this->checkAccess(['callers_report', 'callers_report_byyou']); $data['result']=$this->report->callers_disp(FALSE, $this->is_access('callers_report')?false:true); $data['total']=0; foreach($data['result'] as $r){ $data['total']+=$r['total']; } $this->json_data($data); } function init_callers_disp(){ $this->checkAccess(['callers_report', 'callers_report_byyou']); $data['users']=$this->user->active_users($this->is_access('callers_report')?false:true); $data['summary']=$this->report->callers_disp_summary($this->is_access('callers_report')?false:true); $data['summaryTotal']=['todays'=>0, 'till_yes'=>0, 'total'=>0]; foreach($data['summary'] as $r){ $data['summaryTotal']['todays']+=$r['today_count']; $data['summaryTotal']['till_yes']+=$r['till_yest_count']; $data['summaryTotal']['total']+=$r['total']; } $this->json_data($data); } /** Prev year analysis */ function init_prev_year_analysis(){ $data['states']=$this->common->states(); $data['academic_careers']=$this->common->academicCareers(); $data['programs']=$this->common->programs(); $data['plans']=$this->common->plans(); $data['utm_sources']=$this->common->allUtmSources(true); //$data['lpages']=$this->common->allLandingPages(true); $data['p_academic_careers']=$this->report->prev_lms_acareers(); $data['p_programs']=$this->report->prev_lms_programs(); $data['p_plans']=$this->report->prev_lms_plans(); $data['p_utm_sources']=$this->report->prev_lms_utmsources(); $this->json_data($data); } function current_lms_data(){ $data['result']=$this->report->current_lms_data(); $this->json_data($data); } function prev_lms_data(){ $data['result']=$this->report->prev_lms_data(); $this->json_data($data); } function monthly_convertion_new_lms(){ $data=$this->report->monthly_convertion_new_lms(); $this->json_data($data); } function monthly_convertion_prev_lms(){ $data=$this->report->monthly_convertion_prev_lms(); $this->json_data($data); } /** Campaign Messages */ function init_campaigns(){ $this->checkAccess('manage_campaigns'); $list=$this->report->lists_leads_login_url(); $data['result_lu']=$list['result']; $data['page_lu']=$list['page']; $list=$this->report->campaigns(); $data['result']=$list['result']; $data['page']=$list['page']; $data['data_sets']=$this->dataset->all_lists(true); $data['templates']=$this->report->campaign_templates(); $data['tags']=campaign_temp_tags(); $data['tags_adv']=campaign_temp_tags_adv(); $this->json_data($data); } function campaigns(){ $this->checkAccess('manage_campaigns'); $data=$this->report->campaigns(); $this->json_data($data); } function save_campaign(){ $this->checkAccess('manage_campaigns'); $inf=array('success'=>false, 'msg'=>'Error!'); $post=trim_array($this->input->post()); $id=$post['id']=intval($post['id']); if($post['test']!='T'){ $this->form_validation->set_rules('title', 'Campaign Name', "required|is_unique[campaign_templates.title.id!='$id']", $this->req); $this->form_validation->set_rules('data_set_id', 'Data Set', "required", $this->req); }else{ $this->form_validation->set_rules('test_usr', 'Email ids or mobile numbers for testing', "required", $this->req); } //$this->form_validation->set_rules('template_id', 'Template', "required", $this->req); //$this->form_validation->set_rules('from_name', 'Sender Name', "required", $this->req); //$this->form_validation->set_rules('from_email', 'Sender Email', "required|valid_email", $this->req); //$this->form_validation->set_rules('reply_to_email', 'Reply To Email', "required|valid_email", $this->req); //$this->form_validation->set_rules('schedule_date', 'Scheduled Date', "required", $this->req); //$this->form_validation->set_rules('schedule_time', 'Scheduled Time', "required", $this->req); if(!$post['template_id']){ if($post['type']=='EMAIL'){ $this->form_validation->set_rules('subject', 'Subject', "required", $this->req); $this->form_validation->set_rules('email_msg', 'Message', "required", $this->req); $post['msg']=$post['email_msg']; }else{ $post['subject']=''; $this->form_validation->set_rules('msg', 'Message', "required", $this->req); } } if(@$this->form_validation->run() == FALSE){ $inf['errors']=$this->form_validation->get_errors(); $inf['msg']=reset($inf['errors']); }else{ if($post['test']=='T'){ $this->test_campaign($post); die; } $post['schedule_time'] = $post['schedule_time'].' '.$post['schedule_time']; $data=filter_value($post, array('id', 'title', 'template_id', 'data_set_id','from_name','from_email','reply_to_email','schedule_time')); if(!$data['template_id']){ $data['template_id']=$this->create_hidden_template($id, $post); } if($campaign_id=$this->common->save($data, "campaigns")){ $inf['success']=true; if($post['status']=='PUBLISHED'){ $inf=$this->report->publish_campaign($campaign_id); }else{ $inf['msg']='Campaign '.($id?'updated':'added').' successfully'; } } } $this->json_data($inf); } function campaign_detail($id){ $this->checkAccess('manage_campaigns'); $data['dtl']=$this->report->campaign_detail($id); $data['dtl']['schedule_date']=get_date($data['dtl']['schedule_time']); $data['dtl']['schedule_time']=date('H:i:s',strtotime($data['dtl']['schedule_time'])); $this->json_data($data); } function delete_campaign(){ $this->checkAccess('manage_campaigns'); $inf=array('success'=>false, 'msg'=>'Can not deleted!'); $id=intval($this->input->post('id')); if($this->report->delete_campaign($id)){ $inf['success']=true; $inf['msg']="Campaign deleted successfully"; } $this->json_data($inf); } function test_campaign($post){ $inf=array('success'=>false, 'msg'=>'Error!'); //$post=trim_array($this->input->post()); if(!$post['test_usr']){ $inf['msg']="Enter email ids or mobile numbers for testing"; $this->json_data($inf); } if($post['template_id']){ $tdtl=$this->report->campaign_template_detail($post['template_id']); $post['subject']=$tdtl['subject']; $post['msg']=$tdtl['msg']; }elseif($post['id']){ $dtl=$this->report->campaign_detail($post['id']); if($dtl['status']=='PUBLISHED'){ $tdtl=$this->report->campaign_template_detail($dtl['template_id']); $post['type']=$tdtl['type']; $post['subject']=$tdtl['subject']; $post['msg']=$tdtl['msg']; } } $inf=$this->report->test_campaign($post); $this->json_data($inf); } function create_hidden_template($campaign_id, $post){ $d=['type'=>$post['type'], 'subject'=>$post['subject'], 'msg'=>$post['msg'], 'is_hidden'=>1]; $dtl=$this->report->campaign_detail($campaign_id); if($dtl){ if($dtl['is_hidden_temp']){ $d['id']=$dtl['template_id']; } } return $this->common->save($d, "campaign_templates"); } function campaign_templates(){ $this->checkAccess('manage_campaigns'); $data['templates']=$this->report->campaign_templates(); $this->json_data($data); } function save_campaign_template(){ $this->checkAccess('manage_campaigns'); $inf=array('success'=>false, 'msg'=>'Error!'); $post=trim_array($this->input->post()); $id=$post['id']=intval($post['id']); $this->form_validation->set_rules('title', 'Template Name', "required|is_unique[campaign_templates.title.id!='$id']", $this->req); $this->form_validation->set_rules('type', 'type', "required", $this->req); if($post['type']=='EMAIL' || $post['type']=='FOLLOWUP_EMAIL' || $post['type']=='LETTER'){ $this->form_validation->set_rules('subject', 'Subject', "required", $this->req); $this->form_validation->set_rules('email_msg', 'Message', "required", $this->req); $post['msg']=$post['email_msg']; }else{ $post['subject']=''; $this->form_validation->set_rules('msg', 'Message', "required", $this->req); } if(@$this->form_validation->run() == FALSE){ $inf['errors']=$this->form_validation->get_errors(); $inf['msg']=reset($inf['errors']); }else{ $data=filter_value($post, array('id', 'title', 'type', 'subject', 'msg')); if($this->common->save($data, "campaign_templates")){ $inf['success']=true; $inf['msg']='Template '.($id?'updated':'added').' successfully'; } } $this->json_data($inf); } function campaign_template_detail($id, $appId=0){ //$this->checkAccess('manage_campaigns'); $data['dtl']=$this->report->campaign_template_detail($id); if($appId){ $ldtl=$this->leads->detail($appId); if(!$ldtl){ $inf['msg']="Invalid data!"; $this->json_data($inf); } $udtl=$this->db->select("name, mobile")->get_where("users", ['id'=>USER_ID])->row_array(); $data['dtl']['subject']=campain_tag_value($data['dtl']['subject'], $ldtl, $udtl); $data['dtl']['msg']=campain_tag_value($data['dtl']['msg'], $ldtl, $udtl); } $this->json_data($data); } function delete_campaign_template(){ $this->checkAccess('manage_campaigns'); $inf=array('success'=>false, 'msg'=>'Can not deleted!'); $id=intval($this->input->post('id')); if($this->report->delete_campaign_template($id)){ $inf['success']=true; $inf['msg']="Template deleted successfully"; } $this->json_data($inf); } function lists_leads_login_url(){ $data=$this->report->lists_leads_login_url(); $this->json_data($data); } function export_lists_leads_login_url(){ $data=$this->report->lists_leads_login_url(true); download_leads_login_url_csv($data['result']); } /** DB Backup */ function db_backups(){ $this->checkAccess('db_backup'); $list=get_dir_file_info(UP_PATHF.'db_backups/'); if(!$list){ $list=[]; } usort($list, function($a, $b) { return $b['date']-$a['date']; }); $res=[]; foreach($list as $r){ if($r['name']=='index.html') continue; $res[]=['name'=>$r['name'], 'size'=>round($r['size']/1024/1024, 2), 'date'=>get_date($r['date'], true), 'download_path'=>URL.'common/downloadFile/'.encode($r['server_path'])]; } $this->json_data(['result'=>$res]); } function take_db_backup(){ $this->checkAccess('db_backup'); if(!is_dir(UP_PATHF.'db_backups/')){ mkdir(UP_PATHF.'db_backups/', 777, true); write_file(UP_PATHF.'db_backups/index.html', "Directory access is forbidden."); } $this->load->model("dbbackup"); $fname="db_backup_".date('Y_m_d_h_i_s_A').".sql"; $this->dbbackup->takebackup($fname, UP_PATHF.'db_backups/', FALSE); $this->db_backups(); die; /** */ // $db="lms"; // $backup_dir=UP_PATHF.'db_backups/'; // $file_name="db_backup_".date('Y_m_d_h_i_s_A').".sql"; // $file_name="test.sql"; // if(ENVIRONMENT=='development'){ // $dumpvar=""; // $cmd = 'F:\\xampp\\mysql\\bin\\mysqldump.exe -h' . $this->db->hostname . ' -u' . $this->db->username . ' ' . $db . ' > ' . $backup_dir . $file_name; // }else{ // $cmd = 'mysqldump -h' . $this->db->hostname . ' -u' . $this->db->username . ' -p'.$this->db->password.' '. $db . ' > ' . $backup_dir . $file_name; // } // exec($cmd); // echo $cmd; // die; /** \ */ $this->load->dbutil(); $config=array( 'format'=>'txt', 'foreign_key_checks'=>FALSE, 'tables'=>[], 'ignore'=>['old_leads'] ); $backup = $this->dbutil->backup($config); $fname="db_backup_".date('Y_m_d_h_i_s_A').".sql"; write_file(UP_PATHF.'db_backups/'.$fname, $backup); $this->db_backups(); //$this->load->helper('download'); //force_download($fname, $backup); } function delete_db_backup(){ $post=trim_array($this->input->post()); $inf=array('success'=>false, 'msg'=>'Error!'); @unlink(UP_PATHF.'db_backups/'.$post['db']); $inf['success']=true; $inf['msg']="DB Deleted"; $this->json_data($inf); } } //EOF