%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 Api_model extends CI_Model { function __construct() { } function send_email($to, $subject, $message, $attachments=array(), $smtp=TRUE, $smtpdtl=array(), $replyto=''){ if(ENVIRONMENT=='development'){ //return TRUE; } if(is_array($to) && isset($to['to'])){ $cc=$to['cc']; $to=$to['to']; } if(!$smtpdtl){ $smtpdtl=[ 'host'=>'smtp.sendgrid.net', 'user'=> 'apikey', 'pass'=> SEND_GRID_KEY, 'port'=>'587', ]; /* $smtpdtl=[ 'host'=>'smtp.pepipost.com', 'user'=>'shardapepi', 'pass'=>'SUsocial@2019', 'port'=>'587', ]; */ } $fromname="Sharda University"; if($smtpdtl['host']=='smtp.sendgrid.net'){ $fromemail="admissions@sharda.ac.in"; }else{ $fromemail="info@shardauniversity.com"; } $this->load->library('email'); $this->email->clear(); $config['charset'] = 'utf-8'; $config['wordwrap'] = TRUE; $config['mailtype'] = 'html'; if($smtp){ $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"; } $this->email->initialize($config); $this->email->from($fromemail, $fromname); $this->email->to($to); if($cc){ $this->email->cc($cc); } if(!$replyto){ $replyto='noreply@sharda.ac.in'; } $this->email->reply_to($replyto, $fromname); $this->email->subject($subject); $this->email->message($message); if($attachments and is_array($attachments)){ foreach($attachments as $f){ $this->email->attach($f); } } $res=$this->email->send(); return $this->email->print_debugger(); } /** Others */ function daily_alert(){ $res=[]; $olddb=$this->load->database("prevdb", true); //$utm_sources=key_val_array($this->db->select("id, title")->get("master_utm_sources")->result_array(), "id", "title"); $cy_yday=date('Y-m-d 23:59:59', strtotime("-1 days")); $py_yday=(date('Y')-1).date('-m-d 23:59:59', strtotime($cy_yday)); $cy=date('Y', strtotime($cy_yday)); $py=date('Y', strtotime($py_yday)); $cond=['A.created >='=>'2023-12-01', 'A.created <='=>'2024-12-31']; //'U.is_medical'=>0, 'U.is_phd'=>0, $res['cy_till_yes_all']=(int)$this->db->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['A.created <='=>$cy_yday])->get()->row()->n; $res['cy_till_yes_paid']=(int)$this->db->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['A.payment_date <='=>$cy_yday, 'A.payment_status'=>1])->get()->row()->n; $res['cy_yes_all']=(int)$this->db->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['DATE(A.created)'=>get_date($cy_yday, '', 'Y-m-d')])->get()->row()->n; $res['cy_yes_paid']=(int)$this->db->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['DATE(A.payment_date)'=>get_date($cy_yday, '', 'Y-m-d'), 'A.payment_status'=>1])->get()->row()->n; unset($cond['A.created >='], $cond['A.created <=']); $cond['A.created >=']='2022-12-01'; $res['py_till_yes_all']=(int)$olddb->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['A.created <='=>$py_yday])->get()->row()->n; $res['py_till_yes_paid']=(int)$olddb->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['A.payment_date <='=>$py_yday, 'A.payment_status'=>1])->get()->row()->n; $res['py_yes_all']=(int)$olddb->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['DATE(A.created)'=>get_date($py_yday, '', 'Y-m-d')])->get()->row()->n; $res['py_yes_paid']=(int)$olddb->select("COUNT(1) n")->from("applicants U")->join("applications A", "U.id=A.applicant_id")->where($cond)->where(['DATE(A.payment_date)'=>get_date($py_yday, '', 'Y-m-d'), 'A.payment_status'=>1])->get()->row()->n; $res['grp_cy']=$this->paid_all_grp($this->db, $cy_yday); $res['grp_py']=$this->paid_all_grp($olddb, $py_yday, true); $sources=[]; foreach($res['grp_cy']['ty_all'] as $k=>$v){$sources[]=$k;} foreach($res['grp_cy']['ty_paid'] as $k=>$v){$sources[]=$k;} foreach($res['grp_cy']['y_all'] as $k=>$v){$sources[]=$k;} foreach($res['grp_cy']['y_paid'] as $k=>$v){$sources[]=$k;} foreach($res['grp_py']['ty_all'] as $k=>$v){$sources[]=$k;} foreach($res['grp_py']['ty_paid'] as $k=>$v){$sources[]=$k;} foreach($res['grp_py']['y_all'] as $k=>$v){$sources[]=$k;} foreach($res['grp_py']['y_paid'] as $k=>$v){$sources[]=$k;} $res['sources']=array_unique($sources); sort($res['sources']); $res['cy']=$cy; $res['py']=$py; /* pr($res); pr($cy_yday); pr($py_yday); die; */ return $res; } function paid_all_grp($db, $yday, $isPrev=false){ $res=[]; //$cond=['U.is_medical'=>0, 'U.is_phd'=>0]; $cond=['A.id>'=>0]; if($isPrev){ $cond['A.created >=']='2022-12-01'; }else{ $cond['A.created >=']='2023-12-01'; } $rs=$db->select("US.report_grp grp, COUNT(1) n") ->from("applicants U") ->join("applications A", "U.id=A.applicant_id") ->join("master_utm_sources US", "US.id=U.utm_source_id") ->where($cond)->where(['A.created <='=>$yday]) //->group_by("US.grp") ->group_by("US.report_grp") ->get()->result_array(); $res['ty_all']=key_val_array($rs, 'grp', 'n'); $rs=$db->select("US.report_grp grp, COUNT(1) n") ->from("applicants U") ->join("applications A", "U.id=A.applicant_id") ->join("master_utm_sources US", "US.id=U.utm_source_id") ->where($cond)->where(['A.payment_date <='=>$yday, 'A.payment_status'=>1]) //'A.payment_date <='=>$yday //->group_by("US.grp") ->group_by("US.report_grp") ->get()->result_array(); $res['ty_paid']=key_val_array($rs, 'grp', 'n'); $rs=$db->select("US.report_grp grp, COUNT(1) n") ->from("applicants U") ->join("applications A", "U.id=A.applicant_id") ->join("master_utm_sources US", "US.id=U.utm_source_id") ->where($cond)->where(['DATE(A.created)'=>get_date($yday, '', 'Y-m-d')]) //->group_by("US.grp") ->group_by("US.report_grp") ->get()->result_array(); $res['y_all']=key_val_array($rs, 'grp', 'n'); $rs=$db->select("US.report_grp grp, COUNT(1) n") ->from("applicants U") ->join("applications A", "U.id=A.applicant_id") ->join("master_utm_sources US", "US.id=U.utm_source_id") ->where($cond)->where(['DATE(A.payment_date)'=>get_date($yday, '', 'Y-m-d'), 'A.payment_status'=>1]) //->group_by("US.grp") ->group_by("US.report_grp") ->get()->result_array(); $res['y_paid']=key_val_array($rs, 'grp', 'n'); return $res; } /** */ function syncleads($from, $to){ $in=$this->load->database("in", true); $f="CONCAT('Step ', a.step_completed) Lead_Status, a.updated lastupdatedon, u.mob Mobile"; //u.name Name, u.email Email $rs=$this->db->select($f)->from("applicants u")->join("applications a", "a.applicant_id=u.id")->where(['a.updated>='=>$from, 'a.updated<='=>$to])->get()->result_array(); $rs1=$in->select($f)->from("applicants u")->join("applications a", "a.applicant_id=u.id")->where(['a.updated>='=>$from, 'a.updated<='=>$to])->get()->result_array(); if(!$rs){ $rs=[]; } if(!$rs1){ $rs1=[]; } $res['main']=array_merge($rs, $rs1); usort($res['main'], function($a, $b){ return strtotime($a['lastupdatedon'])-strtotime($b['lastupdatedon']); }); return $res; } function syncleadfrommob($mob){ $f="CONCAT('Step ', a.step_completed) Lead_Status, a.updated lastupdatedon, u.mob Mobile"; //u.name Name, u.email Email $rs=$this->db->select($f)->from("applicants u")->join("applications a", "a.applicant_id=u.id")->where(['u.mob'=>$mob])->get()->row_array(); if(!$rs){ $in=$this->load->database("in", true); $rs=$in->select($f)->from("applicants u")->join("applications a", "a.applicant_id=u.id")->where(['u.mob'=>$mob])->get()->row_array(); } if(!$rs){ $rs=[]; } return $rs; } /** */ function callCenterReport(){ $users=$this->db->select("u.id, u.name, u.type") ->from("users u") ->where_in("u.type", ['CAMPUS', 'RO']) ->where("u.status", 1) ->order_by("u.type") ->order_by("u.name") ->get() ->result_array(); foreach($users as &$ru){ $ru['dsDtl']=$this->dataset->detail(0, $ru['id']); } array_unshift($users, ['id'=>0, 'name'=>'ALL', 'type'=>'', 'dsDtl'=>[]]); $smmOnlyUtms=$this->db->select("id")->get_where("master_utm_sources", ['grp'=>'SMM Campaigns'])->result_array(); $smmOnlyUtmsIds=[]; foreach($smmOnlyUtms as $utm){ $smmOnlyUtmsIds[]=$utm['id']; } $todayDtFrom=date('Y-m-d'); $todayDtTo=date('Y-m-d 23:59:59'); $monthDtFrom=date('Y-m-01'); $monthDtTo=date('Y-m-t 23:59:59'); $periods=[ ['name'=>'Till Date', 'fromDate'=>'', 'toDate'=>''], ['name'=>'Today', 'fromDate'=>$todayDtFrom, 'toDate'=>$todayDtTo], ['name'=>'This Month', 'fromDate'=>$monthDtFrom, 'toDate'=>$monthDtTo], ]; $cf="COUNT(1) total, COUNT(IF(A.step_completed=3, 1, NULL)) paid, COUNT(IF(PSS.status='ADM_OFFERED' OR PSS.status='ADM_FINAL', 1, NULL)) adm_offered, COUNT(IF(PSS.status='ADM_WITHDRAW', 1, NULL)) adm_withdraw, COUNT(IF(PSS.status='ADM_FINAL', 1, NULL)) adm_final, COUNT(PSS_PAID.EMPLID) adm_confirmed, COUNT(IF(A.followup_count_all>0, 1, NULL)) followup_leads_count, COUNT(IF(A.last_followup_id='0' AND A.step_completed!=3, 1, NULL)) untouched_count_nonpaid, COUNT(IF(A.last_followup_id='0' AND A.step_completed=3, 1, NULL)) untouched_count_paid, COUNT(IF(AR.remarks_id='79', 1, NULL)) interested_count, COUNT(IF(AR.remarks_id='60', 1, NULL)) call_not_connected_count, COUNT(IF(AR.remarks_id='91', 1, NULL)) not_contactable_count, "; foreach($users as &$u){ $u['user']=$u['name'].($u['type']?' ('.$u['type'].')':''); foreach($periods as $i=>$p){ if($u['dsDtl']){ $this->common->set_data_set_cond($u['dsDtl'], 0, 0); } if($p['fromDate']){ $this->db->where("A.created>=", $p['fromDate']); } if($p['toDate']){ $this->db->where("A.created<=", $p['toDate']); } $record=$this->db->select($cf) ->from("applications A") ->join("applicants U", "A.applicant_id=U.id") ->join("applications_remarks AR", "AR.id=A.last_followup_id", "LEFT") ->join("ps_stu_status PSS", "PSS.EMPLID=A.application_no", "LEFT") ->join("ps_paid_system_ids PSS_PAID", "PSS_PAID.EMPLID=A.application_no", "LEFT") ->get() ->row_array(); $periods[$i]['data']=$record; } $u['data']=$periods; foreach($periods as $i=>$p){ if($u['dsDtl']){ $this->common->set_data_set_cond($u['dsDtl'], 0, 0); } if($p['fromDate']){ $this->db->where("A.created>=", $p['fromDate']); } if($p['toDate']){ $this->db->where("A.created<=", $p['toDate']); } $this->db->where_in("U.utm_source_id", $smmOnlyUtmsIds?$smmOnlyUtmsIds:['-1']); $record=$this->db->select($cf) ->from("applications A") ->join("applicants U", "A.applicant_id=U.id") ->join("applications_remarks AR", "AR.id=A.last_followup_id", "LEFT") ->join("ps_stu_status PSS", "PSS.EMPLID=A.application_no", "LEFT") ->join("ps_paid_system_ids PSS_PAID", "PSS_PAID.EMPLID=A.application_no", "LEFT") ->get() ->row_array(); $periods[$i]['data']=$record; } $u['smmData']=$periods; } return ['users'=>$users]; } } //End of file