%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 Common_model extends CI_Model { function save($data, $tbl="", $pKey="id"){ $id=$this->db->escape_str($data[$pKey]); unset($data[$pKey]); if($id){ $data['updated']=currentDT(); $data['updated_by']=USER_ID; $this->dba->update($tbl, $data, "$pKey='$id'"); if(!$this->db->affected_rows()){ return; } }else{ $data['created']=$data['updated']=currentDT(); $data['created_by']=USER_ID; $data['updated_by']=USER_ID; $id=$this->dba->insert($tbl, $data); } return $id; } function isPhd($id, $app_id=0){ if($app_id){ $id=$this->db->select('applicant_id')->get_where("applications", ['id'=>$app_id])->row('applicant_id'); } return (int)$this->db->select('is_phd')->get_where("applicants", ['id'=>$id])->row('is_phd'); } function getCounter($type){ $c=(int)$this->db->get_where("master_data", array('datakey'=>$type))->row()->datavalue; $this->db->update("master_data", array('datavalue'=>$c+1, 'updated'=>currentDT()), array('datakey'=>$type)); return $c; } function all_campus(){ return $this->db->select("id,title")->where("status", 1)->get("master_campus")->result_array(); } function allStates($active=FALSE){ if($active){ $this->db->where(array('status'=>1)); } return $this->db->select("S.id, S.title, S.code, COUNT(C.id) AS noOfCities")->from("master_states AS S")->join("master_cities AS C", "C.state_id=S.id", "LEFT")->group_by("S.id")->order_by("S.title")->get()->result_array(); } function allPrograms($active=FALSE){ if($active){ $this->db->where(array('P.status'=>1)); } return $this->db->select("P.id, P.title, COUNT(PP.id) AS noOfPlans", FALSE) ->from("master_programs AS P") ->join("master_program_plans AS PP", "PP.program_id=P.id", "LEFT") ->group_by("P.id")->order_by("P.title")->get()->result_array(); } function allCoupans($active=FALSE){ if($active){ $this->db->where(array('status'=>1, 'expiry_date >='=>date('Y-m-d'))); } return $this->db->select("id, title, amt, DATE_FORMAT(expiry_date, '%d %b %Y') AS expiry_date, disp_odr, status")->from("master_coupans")->order_by("disp_odr")->get()->result_array(); } function allLandingPages($active=FALSE){ if($active){ $this->db->where(array('P.status'=>1)); } return $this->db->select("P.id, P.title, COUNT(DISTINCT PP.id) AS noOfProg, COUNT(DISTINCT PF.id) AS noOfFaq", FALSE) ->from("landing_pages AS P") ->join("landing_page_programs AS PP", "PP.lpage_id=P.id", "LEFT") ->join("landing_page_faqs AS PF", "PF.lpage_id=P.id", "LEFT") ->group_by("P.id")->order_by("P.title")->get()->result_array(); } function getNDAContent(){ $rs=$this->db->get_where("master_data", array('datakey'=>'nda'))->row()->datavalue; return encode_script($rs); } function getGACode(){ $gacode_head=$this->db->get_where("master_data", array('datakey'=>'gacode_head'))->row()->datavalue; $gacode_body=$this->db->get_where("master_data", array('datakey'=>'gacode_body'))->row()->datavalue; $gacode_key=$this->db->get_where("master_data", array('datakey'=>'gacode_key'))->row()->datavalue; return array('head'=>$gacode_head, 'body'=>$gacode_body, 'key'=>$gacode_key); } function utmGroups($active=FALSE){ if($active){ $this->db->where('status', 1); } $rs=$this->db->select("DISTINCT grp", false)->order_by("grp")->get_where("master_utm_sources", ['grp !='=>''])->result_array(); return $rs; } function allUtmSources($active=FALSE, $camp_med=FALSE){ if($active){ $this->db->where('status', 1); } $rs=$this->db->select("id, title")->from("master_utm_sources")->order_by("title")->get()->result_array(); if($camp_med){ foreach($rs as &$r){ $camps=$this->db->select("DISTINCT utm_campaign", false)->get_where("applicants", array('utm_source_id'=>$r['id']))->result_array(); $meds=$this->db->select("DISTINCT utm_medium", false)->get_where("applicants", array('utm_source_id'=>$r['id']))->result_array(); $r['campaigns']=[]; $r['mediums']=[]; foreach($camps as $c){ $r['campaigns'][]=$c['utm_campaign']; } foreach($meds as $c){ $r['mediums'][]=$c['utm_medium']; } } } return $rs; } function faqCats($active=FALSE){ $qs=trim_array($this->input->get()); if($active){ $this->db->where("status", 1); } if($qs['k']){ $this->db->like("title", $qs['k']); } return $this->db->order_by("title")->get("master_faq_cats")->result_array(); } function applicantCats(){ return $this->db->select("id, title")->from("master_applicat_cats")->where("status", 1)->order_by("disp_odr")->get()->result_array(); } function religions(){ return $this->db->select("id, title")->from("master_applicat_religions")->where("status", 1)->order_by("disp_odr")->get()->result_array(); } function boards(){ return $this->db->select("id, title")->from("master_edu_boards")->where("status", 1)->order_by("title")->get()->result_array(); } function universities(){ return $this->db->select("id, title")->from("master_universities")->where("status", 1)->order_by("title")->get()->result_array(); } function markingSchemes(){ $res = $this->db->select("id, title, allowed_data")->from("master_marking_schemes")->where("status", 1)->order_by("disp_odr")->get()->result_array(); foreach($res as $k=>$v){ $v['allowed_data']=trim($v['allowed_data']); $res[$k]['allowed_values'] = explode(',',$v['allowed_data']); } return $res; } function states(){ return $this->db->select("id, code, title")->order_by("title")->get_where("master_states", array('status'=>1))->result_array(); } function cities($state_id=0){ $cond=array('status'=>1); if($state_id){ $cond['state_id']=$state_id; } return $this->db->select("id, state_id, title, pincode")->order_by("title")->get_where("master_cities", $cond)->result_array(); } function academicCareers(){ return $this->db->select("id, title")->order_by("disp_odr")->get_where("master_academic_careers", array('status'=>1))->result_array(); } function acDtl($ac_id){ $dtl=$this->db->select("title, req_10th, req_12th, req_ug, req_pg")->get_where("master_academic_careers", array('id'=>$ac_id))->row_array(); if($dtl){ $dtl['req_10th']=(int)$dtl['req_10th']; $dtl['req_12th']=(int)$dtl['req_12th']; $dtl['req_ug']=(int)$dtl['req_ug']; $dtl['req_pg']=(int)$dtl['req_pg']; } return $dtl; } function schools(){ return $this->db->select("id, title")->order_by("disp_odr")->get_where("master_schools", array('status'=>1))->result_array(); } function disciplines(){ return $this->db->select("id, title")->order_by("disp_odr")->get_where("master_disciplines", array('status>='=>0))->result_array(); } function programs($ac_id=0, $campus_id=0){ $campus_id=(int)$campus_id; //$cond=array('P.status'=>1); if($ac_id){ $this->db->where("P.ac_id", $ac_id); } if($campus_id){ $this->db->where("FIND_IN_SET('$campus_id', PP.campus_ids)", NULL, FALSE); } return $this->db->select("P.id, P.type_id, P.ac_id, P.discipline_id, P.school_id, P.title, P.status") ->from("master_programs P") ->join("master_program_plans PP", "PP.program_id=P.id") ->group_by("P.id") ->order_by("title") ->get()->result_array(); } function plans($program_id=0, $campus_id=0){ //$cond=array('status'=>1); if($program_id){ $this->db->where("program_id", $program_id); } if($campus_id){ $this->db->where("FIND_IN_SET('$campus_id', campus_ids)", NULL, FALSE); } $rs=$this->db->select("id, program_id, title, code, status") ->from("master_program_plans") ->order_by("title")->get()->result_array(); return $rs; } /** */ function applicationNdUsrInfo($appId, $dbcon=false){ if(!$dbcon){ $dbcon=$this->db; } $f="A.id, A.applicant_id, A.application_no, A.step_completed, A.created, A.pay_trans_id, A.payment_status, A.payment_mode, P.type_id, P.id AS program_id, A.plan_id, PP.title AS plan, P.title AS program, P.image AS progImage, P.brochure AS progBrochure, AL.program_name api_program, AL.plan_name api_plan"; $dtl=$dbcon->select($f) ->from("applications A") ->join("master_program_plans PP", "A.plan_id=PP.id", "LEFT") ->join("master_programs P", "PP.program_id=P.id", "LEFT") ->join("api_leads AL", "AL.id=A.api_lead_id", "LEFT") ->where(array('A.id'=>$appId)) ->get()->row_array(); $dtl['progImageUrl']=$dtl['progImage']?UP_URLF.'programs_images/'.$dtl['progImage']:''; $dtl['progBrochureUrl']=$dtl['progBrochure']?UP_URLF.'brochure/'.$dtl['progBrochure']:''; $dtl['progBrochureDwnUrl']=$dtl['progBrochure']?(URL.'common/downloadFile/'.encode(UP_PATHF.'brochure/'.$dtl['progBrochure'])):''; $dtl['usr']=$dbcon->select("lpage_id, name, email, mob, dob, address, city, pincode, state_id, utm_source_id")->get_where("applicants", array('id'=>$dtl['applicant_id']))->row_array(); $dtl['usr']['state']=$dbcon->select("title")->get_where("master_states", array('id'=>$dtl['usr']['state_id']))->row()->title; if($dtl['payment_mode']=='CASH'){ $dtl['trans']=$dbcon->select("amount txn_amt, 'CASH' bank_name, 'SUCCESS' txn_status, 'N/A' txn_id, created txn_date", false)->get_where("cash_collections", array('application_id'=>$dtl['id']))->row_array(); if($dtl['trans']){ $dtl['trans']['txn_date']=date('d-m-Y h:i s A', strtotime($dtl['trans']['txn_date'])); } }else{ $dtl['trans']=$dbcon->get_where("pay_trans", array('id'=>$dtl['pay_trans_id']))->row_array(); if($dtl['trans']){ $dtl['trans']['txn_date']=date('d-m-Y h:i s A', strtotime($dtl['trans']['txn_date'])); $dtl['trans']['full_resp']=unserialize($dtl['trans']['full_resp']); } } $dtl['programType']=$dbcon->select("title")->get_where("master_program_types", array('id'=>$dtl['type_id']))->row()->title; $dtl['lpage']=rtrim($dbcon->select("title")->get_where("landing_pages", array('id'=>$dtl['usr']['lpage_id']))->row()->title, "/"); $dtl['utmSource']=$dbcon->select("title")->get_where("master_utm_sources", array('id'=>$dtl['usr']['utm_source_id']))->row()->title; $dtl['loginUrl']=generate_login_url($dtl['lpage'], $dtl['usr']['mob']); $dtl['payment_link']=generate_payment_link($dtl['lpage'], $dtl['usr']['mob'], $dtl['id']); $dtl['receiptDownloadUrl']=URL.'common/downloadReceipt/'.$appId; $dtl['SuatSlotBookUrl']=SUAT_SLOT_BOOK_URL; return $dtl; } function sendSystemIdGenMsg($appId, $dbcon=false){ $dtl=$this->applicationNdUsrInfo($appId, $dbcon); if(!$dtl['program']){ $dtl['program']=$dtl['api_program']; } if(!$dtl['plan']){ $dtl['plan']=$dtl['api_plan']; } $usrName=strtoupper($dtl['usr']['name']); $systemId=$dtl['application_no']; if(strtolower($dtl['programType'])=='suat'){ //$sms="Dear $usrName, Thank you for applying at Sharda University. Your System ID is - $systemId. Login at {$dtl['loginUrl']} to complete your SUAT-2020 application. Call us at 0120-4570011 for any queries."; $sms="Dear $usrName, Congratulations! You have successfully applied for {$dtl['plan']} at Sharda University. Your System ID is - $systemId. We are processing your application at the moment. Our Admission Counsellors will get back to you within 24 hours and guide you about further process.Call us at 0120-4570000 for any queries."; }else{ //$sms="Dear $usrName, Thank you for applying at Sharda University. Your System ID is - $systemId. Login at {$dtl['loginUrl']} to complete your application. Call us at 0120-4570011 for any queries."; $sms="Dear $usrName, Thank you for applying at Sharda University. Your System ID is - $systemId. Login at {$dtl['loginUrl']} to complete your application. Call us at 0120-4570000 for any queries."; } $emailSub="Dear $usrName, Your System ID $systemId is Generated !!!"; $emailMsg=$this->load->view("email/system_id_gen", $dtl, TRUE); //pr($dtl); send_sms($dtl['usr']['mob'], $sms); send_email($dtl['usr']['email'], $emailSub, $emailMsg); //pr($emailMsg); } function send_payment_link($appId){ $dtl=$this->applicationNdUsrInfo($appId); $usrName=strtoupper($dtl['usr']['name']); $systemId=$dtl['application_no']; if(strtolower($dtl['programType'])=='suat'){ $sms="Dear $usrName, Thank you for applying at Sharda University. Your System ID is - $systemId. Login at {$dtl['payment_link']} to complete your SUAT-2019 application. Call us at 0120-4570011 for any queries."; }else{ $sms="Dear $usrName, Thank you for applying at Sharda University. Your System ID is - $systemId. Login at {$dtl['payment_link']} to complete your application. Call us at 0120-4570011 for any queries."; } $emailSub="Dear $usrName, Your System ID $systemId is Generated !!!"; $emailMsg=$this->load->view("email/payment_link", $dtl, TRUE); send_sms($dtl['usr']['mob'], $sms); send_email($dtl['usr']['email'], $emailSub, $emailMsg); } function sendPaymentConfirmMsg($appId){ $dtl=$this->applicationNdUsrInfo($appId); $usrName=strtoupper($dtl['usr']['name']); $systemId=$dtl['application_no']; if(strtolower($dtl['programType'])=='suat'){ $sms="Dear $usrName, Congratulations! You have successfully applied for {$dtl['plan']}. Your System ID is - $systemId. We are processing your application, once you will receive your application number, login at {$dtl['SuatSlotBookUrl']} to book your slot for SUAT-2019. Call us at 0120-4570011 for any queries."; }else{ $sms="Dear $usrName, Congratulations! You have successfully applied for {$dtl['plan']}. Your System ID is - $systemId. We are processing your application, once you will receive your application number, login at {$dtl['loginUrl']} to Schedule a visit. Call us at 0120-4570011 for any queries."; } $emailSub="Congratulations! You have successfully applied for {$dtl['plan']} at Sharda University"; $emailMsg=$this->load->view("email/payment_confirm", $dtl, TRUE); send_sms($dtl['usr']['mob'], $sms); send_email($dtl['usr']['email'], $emailSub, $emailMsg); } function sendPaymentAlertToAdmin($appId){ $emails=$this->db->select("email")->get_where("master_admin_emails", array('send_payment_alert'=>1))->result_array(); if($emails){ $emails=key_val_array($emails, '', 'email'); $emails=implode(",", $emails); $dtl=$this->applicationNdUsrInfo($appId); $emailMsg=$this->load->view("email/payment_alert_admin", $dtl, TRUE); $sub=$dtl['payment_status']?"Payment Alert: SUCCESS":"Payment Alert: FAIL"; send_email($emails, $sub, $emailMsg); } } function sendIssueCommentToApplicant($id, $comment){ $rs=$this->db->select("applicant_id, cat, issue")->get_where("issues_reported", array('id'=>$id))->row_array(); $email=$this->db->select("email")->get_where("applicants", array('id'=>$rs['applicant_id']))->row()->email; if($email){ $msg="Issue: [{$rs['cat']}] {$rs['issue']} <br><br> Comment: <br><br>".nl2br($comment); $sub="Reply: ".$rs['cat']; send_email($email, $sub, $msg); } } function send_campaign_email($data){ ignore_user_abort(1); if(ENVIRONMENT=='development'){ //return TRUE; } $smtpdtl=array( 'host'=>'smtp.pepipost.com', 'user'=>'shardapepi', 'pass'=>'SUsocial@2019', 'port'=>'25', ); $fromname="Sharda University"; $fromemail="info@shardauniversity.com"; $this->load->library('email'); foreach($data as $d){ $this->email->clear(); $config['charset'] = 'utf-8'; $config['wordwrap'] = TRUE; $config['mailtype'] = 'html'; $config['protocol'] = "smtp"; $config['smtp_host'] = $smtpdtl['host']; $config['smtp_user'] = $smtpdtl['user']; $config['smtp_pass'] = $smtpdtl['pass']; $config['smtp_port'] = $smtpdtl['port']; $config['_auth_smtp'] = TRUE; $config['newline'] = "\r\n"; $config['crlf'] = "\r\n"; //$config['smtp_crypto'] = 'tls'; $config['smtp_keepalive']=true; $this->email->initialize($config); $this->email->from($fromemail, $fromname); $this->email->reply_to('noreply@shardauniversity', $fromname); $this->email->to($d['email']); $this->email->subject($d['subject']); $this->email->message($d['msg']); //pr($this->email->print_debugger()); $res=$this->email->send(); } return $res; } function send_campaign_sms($data){ ignore_user_abort(1); if(ENVIRONMENT=='development'){ //return TRUE; } foreach($data as $d){ if(!$d['mob']){ continue; } send_sms($d['mob'], $d['msg']); } return $res; } function master_data_for_leads(){ $campus=$this->db->select("id,title")->get("master_campus")->result_array(); $md['campus']=key_val_array($campus, 'id', 'title'); $states=$this->db->select("id,code,title")->get("master_states")->result_array(); $md['states']=key_val_array($states, 'id', 'title'); $md['state_codes']=key_val_array($states, 'id', 'code'); $programs=$this->db->select("id,title")->get("master_programs")->result_array(); $md['programs']=key_val_array($programs, 'id', 'title'); $plans=$this->db->select("id,code,title,program_code,ac_code")->get("master_program_plans")->result_array(); $md['plans']=key_val_array($plans, 'id', 'title'); $md['plan_codes']=key_val_array($plans, 'id', 'code'); $md['plan_prg_codes']=key_val_array($plans, 'id', 'program_code'); $md['plan_ac_codes']=key_val_array($plans, 'id', 'ac_code'); //$md['lpages']=key_val_array($this->db->select("id,title")->get("landing_pages")->result_array(), 'id', 'title'); $md['acs']=key_val_array($this->db->select("id,title")->get("master_academic_careers")->result_array(), 'id', 'title'); $md['disciplines']=key_val_array($this->db->select("id,title")->get("master_disciplines")->result_array(), 'id', 'title'); $md['schools']=key_val_array($this->db->select("id,title")->get("master_schools")->result_array(), 'id', 'title'); $md['program_types']=key_val_array($this->db->select("id,title")->get("master_program_types")->result_array(), 'id', 'title'); //$md['utm_sources']=key_val_array($this->db->select("id,title")->get("master_utm_sources")->result_array(), 'id', 'title'); $md['lpages']=key_val_array($this->db->select("id,title")->get("landing_pages")->result_array(), 'id', 'title'); $md['mark_schemes']=key_val_array($this->db->select("id,title")->get("master_marking_schemes")->result_array(), 'id', 'title'); $md['soc_cats']=key_val_array($this->db->select("id,title")->get("master_applicat_cats")->result_array(), 'id', 'title'); $md['religions']=key_val_array($this->db->select("id,title")->get("master_applicat_religions")->result_array(), 'id', 'title'); return $md; } function set_utm_source_paid($applicant_id=0, $trans_id=0){ $cond=["applicant_id"=>$applicant_id]; $this->db->where($cond)->update("applicants_visit_history", ['is_paid'=>0]); $lastv=$this->db->select("id,lpage")->order_by("id", "DESC")->limit(1)->get_where("applicants_visit_history", $cond)->row_array(); $last_v_id=$lastv['id']; $lpage=str_replace(["https://", "http://", "www."], ["", "", ""], rtrim(trim($lastv['lpage']), '/')); $is_mob=$this->db->select("for_mob_app")->from("landing_pages")->like("trimed_title", $lpage)->get()->row()->for_mob_app; if($is_mob){ $this->db->where("id", $trans_id)->update("pay_trans", ['from_mob_app'=>1, 'updated'=>currentDT()]); } $this->db->where("id", $last_v_id)->update("applicants_visit_history", ['is_paid'=>1]); } function followup_remarks_ids(){ $rs=$this->db->select("id")->get_where("master_lead_remarks", ['isfollowup'=>1])->result_array(); return array_map(function($a){return $a['id'];}, $rs); } function update_app_followup_count($app_id){ $ldtl=$this->db->select("step_completed")->limit(1)->get_where("applications", ['id'=>$app_id])->row_array("step_completed"); $fids=$this->followup_remarks_ids(); $rs=$this->db->select("remarks_id")->get_where("applications_remarks", ['application_id'=>$app_id])->result_array(); $ids=array_map(function($a){return $a['remarks_id'];}, $rs); $fc=0; $fc_all=(int)count($rs); $remarks_ids=[]; foreach($ids as $id){ $remarks_ids[]=$id; if(in_array($id, $fids)){ $fc++; } } $remarks_ids=array_unique($remarks_ids); $remarks_ids=array_map('intval', $remarks_ids); asort($remarks_ids); $d=['id'=>$app_id, 'followup_count'=>$fc, 'followup_count_all'=>$fc_all, 'remarks_ids'=>implode(",", $remarks_ids)]; if($ldtl['step_completed']==3){ $followupPaid=(int)$this->db->select("count(1) n")->get_where("applications_remarks", ['application_id'=>$app_id, 'is_after_paid'=>'Y'])->row("n"); $d['followup_count_all_paid']=$followupPaid; } $this->dba->save("applications", $d); return [$fc_all, $fc]; } /** Data Set Condition */ function set_data_set_cond($lvOpt=false, $ps=true, $validateExpiry=true, $user_id='', $getDynamic=false){ $qs=trim_array($_REQUEST); $userType=USER_TYPE; if(!$user_id){ $user_id=USER_ID; }else{ $userType=$this->db->select("type")->get_where("users", ['id'=>$user_id])->row("type"); } $callers=[]; if(CALLER_IDS){ if(CALLER_IDS==="AllCallers"){ $this->load->model("user_model", "user"); $mycallers=$this->user->active_users(true, 'CALLER'); if($mycallers){ foreach($mycallers as $c){ $callers[]=$c['id']; } } }else{ $callers=explode(",", CALLER_IDS); } } if(!$lvOpt){ $lvOpt=$this->dataset->detail(0, $user_id); } if($userType==='CALLER'){ if(!$lvOpt){ $this->db->where("U.id", 0); } } $filters_used=$this->getDataSetFiltersUsed($lvOpt); if($lvOpt && (!$lvOpt['is_hidden'] || $callers) && !$getDynamic){ if($userType==='CALLER' || $callers){ $this->db->join("data_set_split_leads SD", "SD.application_id=A.id"); $this->db->join("leads_data_sets DS", "SD.data_set_id=DS.id"); if($callers){ $this->db->where_in('SD.user_id', $callers); }else{ $this->db->where('SD.user_id', $user_id); } }else{ $this->db->join("data_set_leads DL", "DL.application_id=A.id"); $this->db->join("leads_data_sets DS", "DL.data_set_id=DS.id"); $this->db->where('DL.data_set_id', $lvOpt['id']); } if($validateExpiry){ $this->db->where('DS.expiry_date>=', date('Y-m-d')); } return $filters_used; } if($validateExpiry){ if($lvOpt['expiry_date'] && strtotime($lvOpt['expiry_date'])<strtotime(date('Y-m-d'))){ $this->db->where("U.id", 0); } } if($qs['level']!=='CAMPUS_OFFLINE'){ if($lvOpt['states'] && $lvOpt['cities']){ $this->db->group_start(); foreach($lvOpt['states'] as $i=>$state_id){ if($i==0){ $this->db->group_start(); }else{ $this->db->or_group_start(); } $this->db->where("U.state_id", $state_id); if($lvOpt['cities'][$state_id]){ $lvOpt['cities'][$state_id][]=0; $this->db->where_in("U.city_id", $lvOpt['cities'][$state_id]); } $this->db->group_end(); } if(Campus_Offline_Leads){ $this->db->or_group_start(); $this->db->where('U.is_campus_offline=', 'Y'); $this->db->group_end(); } $this->db->group_end(); }else if($lvOpt['states']){ $this->db->where_in("U.state_id", $lvOpt['states']); } } if($lvOpt['programs'] && $lvOpt['plans']){ $this->db->group_start(); foreach($lvOpt['programs'] as $i=>$program_id){ if($i==0){ $this->db->group_start(); }else{ $this->db->or_group_start(); } $this->db->where("A.program_id", $program_id); if($lvOpt['plans'][$program_id]){ $lvOpt['plans'][$program_id][]=0; $this->db->where_in("A.plan_id", $lvOpt['plans'][$program_id]); } $this->db->group_end(); } $this->db->group_end(); }else if($lvOpt['programs']){ $this->db->where_in("A.program_id", $lvOpt['programs']); } if($lvOpt['utm_sources']){ $this->db->where_in("U.utm_source_id", $lvOpt['utm_sources']); } if($lvOpt['acs']){ $this->db->where_in("A.ac_id", $lvOpt['acs']); } if($lvOpt['disciplines']){ $this->db->where_in("A.discipline_id", $lvOpt['disciplines']); } if($lvOpt['schools']){ $this->db->where_in("A.school_id", $lvOpt['schools']); } if($lvOpt['lead_sources']){ $this->db->where_in("U.lead_source_id", $lvOpt['lead_sources']); } if($lvOpt['remarks_ids']){ $rids=array_map('intval', $lvOpt['remarks_ids']); asort($rids); $rids=implode("|", $rids); $cond="CONCAT(',', A.remarks_ids , ',') REGEXP ".'",('.$rids.'),"'; $this->db->where($cond, NULL, FALSE); } if($lvOpt['steps']){ $this->db->where_in("A.step_completed", $lvOpt['steps']); } if($lvOpt['payment_modes']){ $lvOpt['payment_modes'][]=''; $this->db->where_in("A.payment_mode", $lvOpt['payment_modes']); } if($lvOpt['followup_done']=='Y'){ $this->db->where("A.last_followup_id>", 0); } if($lvOpt['followup_done']=='N'){ $this->db->where("A.last_followup_id", 0); } if($lvOpt['followup_count_max']){ $this->db->where("A.followup_count_all <= ", (int)$lvOpt['followup_count_max']); } if($lvOpt['online_offline']=='Online'){ $this->db->where(['U.verified_by!='=>'OFFLINE']); } if($lvOpt['online_offline']=='Offline'){ $this->db->where(['U.verified_by'=>'OFFLINE']); } if($lvOpt['med_phd']=='Medical'){ $this->db->where("U.is_medical", 1); } if($lvOpt['med_phd']=='PHD'){ $this->db->where("U.is_phd", 1); } if($lvOpt['show_campus_offline_leads']=='N'){ $this->db->where("U.is_campus_offline", 'N'); } if($lvOpt['lead_date_from']){ $this->db->where("A.created >=", date('Y-m-d', strtotime($lvOpt['lead_date_from']))); } if($lvOpt['lead_date_to']){ $this->db->where("A.created <=", date('Y-m-d 23:59:59', strtotime($lvOpt['lead_date_to']))); } if($ps && $lvOpt['ps_app_status']){ $this->db->where_in("PSS.DESCR1", $lvOpt['ps_app_status']); } if($lvOpt['payment_failed']){ if($lvOpt['payment_failed']=='Y'){ $this->db->where(['PTRANS.payment_status'=>'FAIL', 'A.payment_status'=>0]); }else{ $this->db->where(['PTRANS.payment_status!='=>'FAIL']); } } if($lvOpt['superbot_disposition']){ $this->db->where_in("SR.disposition", $lvOpt['superbot_disposition']); } if($lvOpt['exclude_superbot']==='Y'){ $this->db->where("SR.disposition", NULL); } return $filters_used; } function getDataSetFiltersUsed($lvOpt){ $filters_used=[]; if($lvOpt['expiry_date'] && strtotime($lvOpt['expiry_date'])<strtotime(date('Y-m-d'))){ $filters_used[]='Expiry Date'; } if($lvOpt['states'] && $lvOpt['cities']){ $filters_used[]='State'; $filters_used[]='City'; }else if($lvOpt['states']){ $filters_used[]='State'; } if($lvOpt['programs'] && $lvOpt['plans']){ $filters_used[]='Program'; $filters_used[]='Plan'; }else if($lvOpt['programs']){ $filters_used[]='Program'; } if($lvOpt['utm_sources']){ $filters_used[]='Utm Source'; } if($lvOpt['acs']){ $filters_used[]='Acad. Career'; } if($lvOpt['disciplines']){ $filters_used[]='Discipline'; } if($lvOpt['schools']){ $filters_used[]='School'; } if($lvOpt['lead_sources']){ $filters_used[]='Lead Source'; } if($lvOpt['remarks_ids']){ $filters_used[]='Remarks'; } if($lvOpt['steps']){ $filters_used[]='Step Completed'; } if($lvOpt['payment_modes']){ $filters_used[]='Payment Mode'; } if($lvOpt['followup_done']=='Y'){ $filters_used[]='Followup-YES'; } if($lvOpt['followup_done']=='N'){ $filters_used[]='Followup-NO'; } if($lvOpt['followup_count_max']){ $filters_used[]='Max Followup Count'; } if($lvOpt['online_offline']=='Online'){ $filters_used[]='Online Leads'; } if($lvOpt['online_offline']=='Offline'){ $filters_used[]='Offline Leads'; } if($lvOpt['med_phd']=='Medical'){ $filters_used[]='Medical Leads'; } if($lvOpt['med_phd']=='PHD'){ $filters_used[]='Phd Leads'; } if($lvOpt['show_campus_offline_leads']=='N'){ $filters_used[]='No Campus Offline Leads'; } if($lvOpt['lead_date_from']){ $filters_used[]='From Date'; } if($lvOpt['lead_date_to']){ $filters_used[]='To Date'; } if($ps && $lvOpt['ps_app_status']){ $filters_used[]='PSoft Status'; } if($lvOpt['payment_failed']){ $filters_used[]='Payment Failed'; } if($lvOpt['superbot_disposition']){ $filters_used[]='Superbot Disposition'; } return $filters_used?$filters_used:['N/A']; } function data_set_leads_count_old($data_set_id=0, $lvOpt=false, $from_date='', $to_date=''){ if($data_set_id){ $lvOpt=$this->dataset->detail($data_set_id); } $filters_used=$this->set_data_set_cond($lvOpt, true, false, '', true); if($from_date){ $this->db->where("A.created>=", get_date($from_date, '', 'Y-m-d')); } if($to_date){ $this->db->where("A.created<=", get_date($to_date, '', 'Y-m-d 23:59:59')); } $n=$this->db->select("COUNT(1) n") ->from("applications A") ->join("applicants U", "U.id=A.applicant_id") ->join("ps_stu_status PSS", "PSS.EMPLID=A.application_no", "LEFT") ->get() ->row()->n; return ['n'=>(int)$n, 'filters'=>implode(", ",$filters_used)]; } function data_set_leads_count($data_set_id=0, $lvOpt=false, $from_date='', $to_date=''){ if($data_set_id){ $lvOpt=$this->dataset->detail($data_set_id); } if($lvOpt['is_hidden']){ return $this->data_set_leads_count_old(0, $lvOpt, $from_date, $to_date); } $filters_used=$this->getDataSetFiltersUsed($lvOpt); $n=$lvOpt['leads_count']; return ['n'=>(int)$lvOpt['leads_count'], 'filters'=>implode(", ",$filters_used)]; } /** */ function users_with_access(){ $rs=$this->db->select("id, type, name, modules, data_set_id")->order_by("name")->get_where("users", ['type!='=>'ADMIN', 'type!='=>'PUBLISHER', 'status'=>1])->result_array(); foreach($rs as &$r){ if($r['modules']){ $r['modules']=$this->db->select("module")->from("system_modules")->where_in("id", explode(",", $r['modules']))->order_by("grp")->order_by("module")->get()->result_array(); }else{ $r['modules']=[]; } $r['dset']=$this->dataset->detail($r['data_set_id']); $r['dset']['state_names']=[['title'=>'ALL']]; $r['dset']['city_names']=[['title'=>'ALL']]; $r['dset']['prg_names']=[['title'=>'ALL']]; $r['dset']['utm_source_names']=[['title'=>'ALL']]; $r['dset']['step_names']='ALL'; $r['dset']['payment_mode_names']='ALL'; $r['dset']['ps_app_status_names']='ALL'; if($r['data_set_id']){ if($r['dset']['states']){ $r['dset']['state_names']=$this->db->select("title")->where_in("id", $r['dset']['states'])->order_by("title")->get("master_states")->result_array(); } if($r['dset']['cities']){ $cids=[]; foreach($r['dset']['cities'] as $k=>$v){ $cids=array_merge($cids, $v); } $r['dset']['city_names']=$this->db->select("c.title") ->where_in("c.id", $cids) ->from("master_cities c") ->join("master_states s", "c.state_id=s.id") ->order_by("s.title")->order_by("c.title") ->get() ->result_array(); } if($r['dset']['programs']){ $r['dset']['prg_names']=$this->db->select("title")->where_in("id", $r['dset']['programs'])->order_by("title")->get("master_programs")->result_array(); } if($r['dset']['utm_sources']){ $r['dset']['utm_source_names']=$this->db->select("title")->where_in("id", $r['dset']['utm_sources'])->order_by("title")->get("master_utm_sources")->result_array(); } $r['dset']['step_names']=$r['dset']['steps']?implode(", ", $r['dset']['steps']):'ALL'; $r['dset']['payment_mode_names']=$r['dset']['payment_modes']?implode(", ", $r['dset']['payment_modes']):'ALL'; $r['dset']['ps_app_status_names']=$r['dset']['ps_app_status']?implode(", ", $r['dset']['ps_app_status']):'ALL'; } //$r['data_sets']=$this->user->user_data_sets($r); $r['lc']=$this->common->data_set_leads_count($r['data_set_id']); } return $rs; } function all_utm_groups(){ return $this->db->select("DISTINCT grp", false)->order_by("grp")->get("master_utm_sources")->result_array(); } function utm_group_ids($grp){ $rs=$this->db->select("id", false)->get_where("master_utm_sources", ['grp'=>$grp])->result_array(); $res=[0]; foreach($rs as $r){ $res[]=$r['id']; } return $res; } function all_utm_sources(){ return $this->db->select("id, title, grp", false)->order_by("title")->get("master_utm_sources")->result_array(); } /** */ function getUnreadNotifications(){ $user_id=USER_ID; $this->db->where("FIND_IN_SET('$user_id', N.to_user_ids)", NULL, FALSE); $rs=$this->db->select("N.id") ->from("lead_notifications N") ->join("lead_notifications_read NR", "NR.noti_id=N.id", "LEFT") ->where("NR.id", NULL) ->get()->result_array(); return $rs?$rs:[]; } function setReadNotifications(){ $rs=$this->common->getUnreadNotifications(); $d=[]; foreach($rs as $r){ $d[]=[ 'noti_id'=>$r['id'], 'read_by'=>USER_ID, 'created'=>currentDT() ]; } if($d){ $this->db->insert_batch("lead_notifications_read", $d); } } function appDataSetUserIds($app_id){ $user_ids=[1]; $f="application_no, applicant_id, school_id, program_id, plan_id"; $adtl=$this->db->select($f)->get_where("applications", ['id'=>$app_id])->row_array(); $udtl=$this->db->select("state_id, city_id")->get_where("applicants", ['id'=>$adtl['applicant_id']])->row_array(); $users=$this->db->select("id, data_set_id")->get_where("users", ['reporting_type'=>'Counsellor', 'status'=>1])->result_array(); foreach($users as $u){ $ddtl=$this->db->select("states, programs, schools, cities, plans")->get_where("leads_data_sets", ['id'=>$u['data_set_id']])->row_array(); $flg=1; if($ddtl['states']){ $states=explode(",", $ddtl['states']); if(!in_array($udtl['state_id'], $states)){ $flg=0; } if($ddtl['cities']){ $ddtl['cities']=unserialize($ddtl['cities']); $f=0; foreach($states as $sid){ $cities=$ddtl['cities'][$sid]; if($cities){ if($udtl['state_id']==$sid && in_array($udtl['city_id'], $cities)){ $f=1; } }else if($udtl['state_id']==$sid){ $f=1; } } if(!$f){ $flg=0; } } } if($ddtl['programs']){ $programs=explode(",", $ddtl['programs']); if(!in_array($adtl['program_id'], $programs)){ $flg=0; } if($ddtl['plans']){ $ddtl['plans']=unserialize($ddtl['plans']); $f=0; foreach($programs as $pid){ $plans=$ddtl['plans'][$pid]; if($plans){ if($adtl['program_id']==$pid && in_array($adtl['plan_id'], $plans)){ $f=1; } }else if($adtl['program_id']==$pid){ $f=1; } } if(!$f){ $flg=0; } } } if($ddtl['schools']){ if(!in_array($adtl['school_id'], explode(",", $ddtl['schools']))){ $flg=0; } } if($flg){ $user_ids[]=$u['id']; } } return $user_ids; } function addLeadNotification($type, $app_id=0){ switch($type){ case 'Payment_Made': return $this->addPaymentMadeNoti($type, $app_id); break; } } function addPaymentMadeNoti($type, $app_id=0){ if(!$app_id){ return; } $to_user_ids=$this->appDataSetUserIds($app_id); $adtl=$this->db->select("application_no")->get_where("applications", ['id'=>$app_id])->row_array(); $msg="Payment made by System ID: ".$adtl['application_no']; $d=['app_id'=>$app_id, 'type'=>$type, 'created_by'=>USER_ID, 'created'=>currentDT(), 'to_user_ids'=>implode(",", $to_user_ids), 'msg'=>$msg]; $this->db->insert("lead_notifications", $d); return $this->db->insert_id(); } /** */ function leadProfilePicBlob($profile_pic=''){ $this->load->library('Image'); if(!$profile_pic){ return NULL; } $path=UP_PATHF.'admissions/profiles/'; $this->image->resize($path.$profile_pic, $path.'sm_'.$profile_pic, 150); $blob=@file_get_contents($path.'sm_'.$profile_pic); return $blob?($blob):NULL; } } //End of file