%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 Leads_model extends CI_Model { function set_search_cond($qs, $lvOpt){ /* if(!IS_ADMIN){ $users=$this->user->active_users(true); $ids=[]; foreach($users as $u){ $ids[]=$u['id']; } $this->db->where_in("A.created_by", $ids); } */ 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("A.state_id", $state_id); if($lvOpt['cities'][$state_id]){ $lvOpt['cities'][$state_id][]=0; $this->db->where_in("A.city_id", $lvOpt['cities'][$state_id]); } $this->db->group_end(); } $this->db->group_end(); }else if($lvOpt['states']){ $this->db->where_in("A.state_id", $lvOpt['states']); } if($lvOpt['programs']){ $this->db->where_in("P.id", $lvOpt['programs']); } if($lvOpt['utm_sources']){ $this->db->where_in("A.utm_source_id", $lvOpt['utm_sources']); } 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($qs['k']){ if(LEAD_RESTRICT){ $this->db->group_start() ->where('A.name', $qs['k']) ->or_where('A.email', $qs['k']) ->or_where('A.mob', $qs['k']) ->or_where('A.application_no', $qs['k']) ->group_end(); }else{ $this->db->group_start() ->like('A.name', $qs['k']) ->or_like('A.email', $qs['k']) ->or_like('A.mob', $qs['k']) ->or_like('A.application_no', $qs['k']) ->group_end(); } } if($qs['utm_group']){ $utmids=$this->db->select("id")->get_where("master_utm_sources", array('grp'=>$qs['utm_group']))->result_array(); $sids=[]; foreach($utmids as $r){ $sids[]=$r['id']; } if($sids){ $this->db->where_in("A.utm_source_id", $sids); } } if($qs['utm_source_id']){ $this->db->where_in("A.utm_source_id", $qs['utm_source_id']); } if($qs['utm_campaign']){ $this->db->where_in("A.utm_campaign", $qs['utm_campaign']); } if($qs['utm_medium']){ $this->db->where_in("A.utm_medium", $qs['utm_medium']); } if($qs['date_for']==1){ $datec="A.created"; }else{ $datec="A.appointment_datetime"; } if(!LEAD_RESTRICT){ if($qs['fromDate']){ $this->db->where("$datec >=", date('Y-m-d', strtotime($qs['fromDate']))); } if($qs['toDate']){ $this->db->where("$datec <=", date('Y-m-d 23:59:59', strtotime($qs['toDate']))); } } if($qs['program_id']){ $this->db->where_in("P.id", $qs['program_id']); } if($qs['state_id']){ $this->db->where_in("A.state_id", $qs['state_id']); } if($qs['city_id']){ $this->db->where_in("A.city_id", $qs['city_id']); } if($qs['lpage_id']){ $this->db->where_in("A.lpage_id", $qs['lpage_id']); } if($qs['verified_by']){ $this->db->where("A.verified_by", $qs['verified_by']); } /* if($qs['remarks_id']){ $this->db->where_in("AR.remarks_id", $qs['remarks_id']); } */ if($qs['created_by']){ $this->db->where("A.created_by", $qs['created_by']); } } function lists($export=false){ $md=$this->common->master_data_for_leads(); $qs=trim_array($_REQUEST); $lvOpt=$this->dataset->detail(0, USER_ID); if($lvOpt['expiry_date'] && strtotime($lvOpt['expiry_date'])<strtotime(date('Y-m-d'))){ return []; } $this->set_search_cond($qs, $lvOpt); $this->db->select("A.id, A.application_no, A.created leadCreated, A.updated leadUpdated, A.name, A.email, A.mob, A.city, A.pincode, A.verified_by, A.state_id, A.lpage_id, A.appointment_datetime, A.utm_source, A.utm_campaign, A.utm_medium, A.utm_term, A.utm_content, A.utm_keyword, A.utm_placement, A.followup_by, A.created_by, P.title program", FALSE) ->from("applicants A") ->join("master_programs P", "P.id=A.program_id"); switch($qs['orderby']){ case 'aptdate_asc': $this->db->order_by("A.appointment_datetime", "ASC"); break; case 'aptdate_desc': $this->db->order_by("A.appointment_datetime", "DESC"); break; case 'created_asc': $this->db->order_by("A.created", "ASC"); break; case 'created_asc': $this->db->order_by("A.created", "DESC"); break; default: $this->db->order_by("A.id", "DESC"); break; } if($export){ $rs=$this->dba->pagedRows(1, 500000, 5, 0); }else{ $rs=$this->dba->pagedRows($qs['p'], 50, 5); } if($rs['result']){ $users=key_val_array($this->user->active_users(), 'id', 'name'); foreach($rs['result'] as &$r){ $r['state']=$md['states'][$r['state_id']]; $r['lpage']=$md['lpages'][$r['lpage_id']]; $r['leadCreated']=get_date($r['leadCreated'], true); $r['leadUpdated']=get_date($r['leadUpdated'], true); $r['appointment_datetime']=get_date($r['appointment_datetime'], true); $r['followup_by']=(int)$r['followup_by']; $r['usr']=$r['created_by']?$users[$r['created_by']]:'Self Registered'; unset($r['state_id'], $r['lpage_id'], $r['utm_source_id']); } $rs['result']=filterLeadData($rs['result'], $lvOpt); } return $rs; } function listsStepZero($export=FALSE){ $qs=trim_array($_REQUEST); if($qs['utm_source_id']){ $res=$this->db->select("title")->from("master_utm_sources")->where_in("id", $qs['utm_source_id'])->get()->result_array(); $sources=[]; foreach($res as $s){ $sources[]=$s['title']; } } $lvOpt=$this->dataset->detail(0, USER_ID); if($lvOpt['utm_sources']){ $res=$this->db->select("title")->from("master_utm_sources")->where_in("id", $lvOpt['utm_sources'])->get()->result_array(); $sources_lv=[]; foreach($res as $s){ $sources_lv[]=$s['title']; } } if($lvOpt['expiry_date'] && strtotime($lvOpt['expiry_date'])<strtotime(date('Y-m-d'))){ return []; } if($lvOpt['states']){ $this->db->where_in("A.state_id", $lvOpt['states']); } if($lvOpt['programs']){ $this->db->where_in("P.id", $lvOpt['programs']); } if($lvOpt['utm_sources']){ $this->db->where_in("A.utm_source", $sources_lv); } if($qs['k']){ $this->db->group_start() ->like('A.name', $qs['k']) ->or_like('A.email', $qs['k']) ->or_like('A.mob', $qs['k']) ->group_end(); } if($qs['type_id']){ $this->db->where("P.type_id", $qs['type_id']); } if($qs['utm_source_id']){ $this->db->where_in("A.utm_source", $sources); } if($qs['fromDate']){ $this->db->where("A.created >=", date('Y-m-d', strtotime($qs['fromDate']))); } if($qs['toDate']){ $this->db->where("A.created <=", date('Y-m-d 23:59:59', strtotime($qs['toDate']))); } $this->db->select("A.id, A.created AS leadCreated, PP.title AS plan, P.title AS program, PP.ac_code, PP.program_code AS prgCode, PP.code AS planCode, A.name, A.email, A.mob, S.title AS state, S.code AS stateCode, LP.title AS lpage, A.utm_source, A.utm_campaign, A.utm_medium, A.utm_term, A.utm_content, A.utm_keyword, A.utm_placement") ->from("tmp_applicants AS U") ->join("landing_pages AS LP", "LP.id=A.lpage_id") ->join("master_states AS S", "S.id=A.state_id", "LEFT") ->join("master_program_plans AS PP", "PP.id=A.plan_id", "LEFT") ->join("master_programs AS P", "P.id=PP.program_id", "LEFT") ->order_by("A.id", "DESC"); $ps=50; if($export){ $qs['p']=1; $ps=100000; } $rs=$this->dba->pagedRows($qs['p'], $ps, 5, $export?'0':''); foreach($rs['result'] as &$r){ $r['step_completed']='0'; $r['leadCreated']=get_date($r['leadCreated'], true); $r['utm_source']=$r['utm_source']?$r['utm_source']:'N/A'; } if($rs['result']){ $rs['result']=filterLeadData($rs['result'], $lvOpt); } return $rs; } function delete($id){ $this->db->db_debug=FALSE; return $this->db->delete("applicants", array('id'=>$id)); } function save($post){ $err = FALSE; $this->db->trans_strict(FALSE); $this->db->trans_begin(); try{ $id=$this->dba->save("applicants", replace_null($post)); if(!$post['id']){ $num=$this->common->getCounter('application_no_count'); $d=['verified_by'=>'OFFLINE', 'application_no'=>date('Y').zero_format_no($num)]; $this->db->update("applicants", $d, ['id'=>$id]); } }catch(Exception $e) { $err = TRUE; $msg = $e->getMessage(); } if($this->db->trans_status() === FALSE) { $err = TRUE; } if ($err) { $this->db->trans_rollback(); return FALSE; } else { $this->db->trans_commit(); return TRUE; } } /** */ function detail_to_edit($id){ $dtl=$this->db->select("A.*")->from("applicants A")->where(array('A.id'=>$id))->get()->row_array(); if($dtl){ $dtl['appointment_date']=get_date($dtl['appointment_datetime']); $dtl['appointment_time']=get_date($dtl['appointment_datetime'], '', 'h:i A'); $dtl['lpage_id']=$dtl['lpage_id']?$dtl['lpage_id']:''; } return $dtl; } function detail($id, $filter=true){ $rs=$this->db->select("A.*, P.title program, P.image progImage, P.brochure progBrochure") ->from("applicants A") ->join("master_programs P", "A.program_id=P.id") ->where(array('A.id'=>$id)) ->get()->row_array(); $dtl=[]; if($rs){ $rs['progImageUrl']=$rs['progImage']?UP_URLF.'programs_images/'.$rs['progImage']:''; $rs['progBrochureUrl']=$rs['progBrochure']?UP_URLF.'brochure/'.$rs['progBrochure']:''; $rs['progBrochureDwnUrl']=$rs['progBrochure']?(URL.'common/downloadFile/'.encode(UP_PATHF.'brochure/'.$rs['progBrochure'])):''; $rs['state']=$this->db->select("title")->get_where("master_states", array('id'=>$rs['state_id']))->row()->title; $rs['lpage']=rtrim($this->db->select("title")->get_where("landing_pages", array('id'=>$rs['lpage_id']))->row()->title, "/"); //$rs['utmSource']=$this->db->select("title")->get_where("master_utm_sources", array('id'=>$rs['utm_source_id']))->row()->title; //$rs['loginUrl']=generate_login_url($rs['lpage'], $rs['mob']); $rs['leadCreated']=get_date($rs['created'], true); $rs['leadUpdated']=get_date($rs['updated'], true); $rs['lpage']=$rs['lpage']?$rs['lpage']:'N/A'; $rs['utm_source']=$rs['utm_source']?$rs['utm_source']:'N/A'; $rs['utm_campaign']=$rs['utm_campaign']?$rs['utm_campaign']:'N/A'; $rs['utm_medium']=$rs['utm_medium']?$rs['utm_medium']:'N/A'; $rs['utm_term']=$rs['utm_term']?$rs['utm_term']:'N/A'; $rs['utm_content']=$rs['utm_content']?$rs['utm_content']:'N/A'; $rs['utm_keyword']=$rs['utm_keyword']?$rs['utm_keyword']:'N/A'; $rs['utm_placement']=$rs['utm_placement']?$rs['utm_placement']:'N/A'; $rs['appointment_datetime']=get_date($rs['appointment_datetime'], true); if($filter){ $lvOpt=$this->dataset->detail(0, USER_ID); $rs=filterLeadData($rs, $lvOpt, TRUE); $dtl=$rs[0]; }else{ $dtl=$rs; } } return $dtl; } /** Follow-ups */ function remarks_cats(){ return $this->db->select('id,title')->from('master_lead_remarks_cats')->order_by('disp_odr')->get()->result_array(); } function remarks(){ $rs=$this->db->select("id, cat_id, title")->from("master_lead_remarks")->where("status",1)->order_by("disp_odr")->get()->result_array(); foreach($rs as &$r){ $r['subremarks']=$this->db->select("title")->order_by("disp_odr")->get_where("master_lead_subremarks", array('remarks_id'=>$r['id']))->result_array(); } return $rs; } function get_follow_ups($id){ $rs=$this->db->select("AR.id, AR.applicant_id, MR.title remarks, AR.subremarks, AR.feedback, AR.created, U.name usr") ->from("applicants_remarks AR") ->join("master_lead_remarks MR", "AR.remarks_id=MR.id") ->join("users U", "AR.created_by=U.id") ->where("AR.applicant_id", $id) ->order_by("AR.id") ->get()->result_array(); if($rs){ foreach($rs as &$r){ $r['created']=get_date($r['created'], true); } } return $rs; } function follow_up_detail($id=0){ $rs['dtl']=$this->db->select("AR.id, AR.applicant_id, AR.remarks_id, AR.subremarks, AR.feedback")->from("applicants_remarks AR")->where("AR.id", $id)->get()->row_array(); if($rs['dtl']){ $rs['dtl']['cat_id']=$this->db->select("cat_id")->get_where("master_lead_remarks", ['id'=>$rs['dtl']['remarks_id']])->row()->cat_id; $rs['subremarks']=$this->db->select("title")->order_by("disp_odr")->get_where("master_lead_subremarks", array('remarks_id'=>$rs['dtl']['remarks_id']))->result_array(); } return $rs; } function delete_follow_up($id){ $this->db->db_debug=FALSE; return $this->db->delete("applicants_remarks", array('id'=>$id)); } } //End of file