File manager - Edit - /home/wwwroot/camplus.hk/master.camplus.hk/public_html/application/modules/workflow/models/Workflow_form_model.php
Back
<?php Class Workflow_form_model extends CI_Model{ function getForms() { $user_id = $this->session->userdata('id'); $myforms ="SELECT wf_filled_form.*, groups.name as unit, form.title,`wf_form_status`.`action` griyos FROM `wf_filled_form` LEFT JOIN `form` ON `form`.`id`=`wf_filled_form`.`fid` LEFT JOIN `wf_form_status` on `wf_form_status`.`ff_id`=`wf_filled_form`.`id` LEFT JOIN groups ON wf_filled_form.unit = groups.id GROUP BY ff_id"; $myforms = $this->db->query($myforms)->result_array(); return $myforms; } function getAllForms($year) { $user_id = $this->session->userdata('id'); $myforms ="SELECT wf_filled_form.*, groups.name as unit, form.title FROM wf_filled_form LEFT JOIN groups ON wf_filled_form.unit = groups.id INNER JOIN form on wf_filled_form.fid=form.id where ay_id = " . $year; $myforms = $this->db->query($myforms); $data= $myforms->result_array(); if(empty($data)) { return array(); } for ($i=0; $i <count($data) ; $i++) { $mystatus="SELECT ff_id,uid,action,level,`time` FROM wf_form_status where ff_id=".$data[$i]['id'].""; $mystatus=$this->db->query($mystatus)->result_array(); $wkflows=json_decode($data[$i]['workflow'],true); $wkflow=$wkflows['workflow']; for($j=0; $j< count($mystatus); $j++) { if(strtolower ($mystatus[$j]['action'])!='pending' && strtolower ($mystatus[$j]['action'])!='cancel') $status= $wkflow[$mystatus[$j]['level']][strtolower ($mystatus[$j]['action'])]['status'][$_COOKIE['language']]; else if(strtolower ($mystatus[$j]['action'])=='cancel') $status='Cancel'; else $status='Pending'; $approver[]=array("user_id"=>$mystatus[$j]['uid'],"time"=>$mystatus[$j]['time'],"action"=>$mystatus[$j]['action'],"status"=>$status); } if(empty($mystatus)) { $mystatus=array(); } $data1=$data[$i]; if(!empty($approver)) $data1['approval']=$approver; $data2[]= $data1; unset($approver); } return $data2; } function getAppliedForms($year) { $user_id = $this->session->userdata('id'); $myforms ="SELECT wf_filled_form.*, groups.name as unit, form.title FROM wf_filled_form INNER JOIN form on wf_filled_form.fid=form.id LEFT JOIN groups ON wf_filled_form.unit = groups.id where wf_filled_form.uid=$user_id AND wf_filled_form.ay_id = ". $year; $myforms = $this->db->query($myforms); $data= $myforms->result_array(); if(empty($data)) { return array(); } for ($i=0; $i <count($data) ; $i++) { $mystatus="SELECT ff_id,uid,action,level,`time` FROM wf_form_status where ff_id=".$data[$i]['id'].""; $mystatus=$this->db->query($mystatus)->result_array(); $wkflows=json_decode($data[$i]['workflow'],true); $wkflow=$wkflows['workflow']; for($j=0; $j< count($mystatus); $j++) { if(strtolower ($mystatus[$j]['action'])!='pending' && strtolower ($mystatus[$j]['action'])!='cancel') $status= $wkflow[$mystatus[$j]['level']][strtolower ($mystatus[$j]['action'])]['status'][$_COOKIE['language']]; else if(strtolower ($mystatus[$j]['action'])=='cancel') $status='Cancel'; else $status='Pending'; $approver[]=array("user_id"=>$mystatus[$j]['uid'],"time"=>$mystatus[$j]['time'],"action"=>$mystatus[$j]['action'],"status"=>$status); } if(empty($mystatus)) { $mystatus=array(); } $data1=$data[$i]; if(!empty($approver)) $data1['approval']=$approver; $data2[]= $data1; unset($approver); } return $data2; } function getApprovalForms($year) { $user_id = $this->session->userdata('id'); // $myforms ="SELECT a.*, wf_filled_form.workflow, wf_filled_form.unit, wf_filled_form.fid,wf_filled_form.uid,form.title,wf_filled_form.last_modified FROM wf_form_status a INNER JOIN wf_filled_form on a.ff_id=wf_filled_form.id INNER JOIN form on wf_filled_form.fid=form.id inner join (select max(id) as maxid from wf_form_status where wf_form_status.uid=$user_id group by ff_id ) as b on a.id = b.maxid order by wf_filled_form.id"; $myforms ="SELECT wf_form_status.id as status_id, groups.name as unit_name, wf_form_status.ff_id,wf_form_status.uid,wf_form_status.action,wf_form_status.level,wf_form_status.time, wf_filled_form.id, wf_filled_form.workflow, wf_filled_form.unit, wf_filled_form.fid,wf_filled_form.uid,form.title,wf_filled_form.last_modified FROM wf_form_status INNER JOIN wf_filled_form on wf_form_status.ff_id=wf_filled_form.id INNER JOIN form on wf_filled_form.fid=form.id LEFT JOIN groups ON wf_filled_form.unit = groups.id where wf_form_status.uid=$user_id and wf_form_status.action!='Cancel' and wf_filled_form.ay_id=$year order by status_id desc"; $myforms = $this->db->query($myforms); $data= $myforms->result_array(); if(empty($data)) { return array(); } // To filter out cancelled request $exist_array = []; for ($i=0; $i <count($data) ; $i++) { if(!in_array($data[$i]['id'],$exist_array)) { $exist_array[] = $data[$i]['id']; $mystatus="SELECT ff_id,uid,action,level,`time` FROM wf_form_status where ff_id=".$data[$i]['id'].""; $mystatus=$this->db->query($mystatus)->result_array(); $wkflows=json_decode($data[$i]['workflow'],true); $wkflow=$wkflows['workflow']; for($j=0; $j< count($mystatus); $j++) { if(strtolower ($mystatus[$j]['action'])!='pending' && strtolower ($mystatus[$j]['action'])!='cancel') $status= $wkflow[$mystatus[$j]['level']][strtolower ($mystatus[$j]['action'])]['status'][$_COOKIE['language']]; else if(strtolower ($mystatus[$j]['action'])=='cancel') $status='Cancel'; else $status='Pending'; $approver[]=array("user_id"=>$mystatus[$j]['uid'],"time"=>$mystatus[$j]['time'],"action"=>$mystatus[$j]['action'],"status"=>$status); } if(empty($mystatus)) { $mystatus=array(); } $data1=$data[$i]; if(!empty($approver)) $data1['approval']=$approver; $data2[]= $data1; } unset($approver); } return $data2; } function getForm($id) { return $this->db->get_where('wf_filled_form',array('id' => $id))->row_array(); } function getFormstitle($id) { $myforms ="SELECT wf_filled_form.*,form.title FROM `wf_filled_form` INNER JOIN form ON `form`.`id`=`wf_filled_form`.`fid` where `wf_filled_form`.`id`=$id "; $myforms = $this->db->query($myforms); return $myforms->row_array(); } function getFilledForm($id) { $myforms ="SELECT wf_filled_form.*,wf_form_answers.answer FROM `wf_filled_form` INNER JOIN `wf_form_answers` ON `wf_form_answers`.`ff_id`=`wf_filled_form`.`id` where `wf_filled_form`.`id`=$id "; $myforms = $this->db->query($myforms); return $myforms->row_array(); } function getFilledForm1($id) { $myforms ="SELECT wf_filled_form.*,wf_form_answers.answer FROM `wf_filled_form` INNER JOIN `wf_form_answers` ON `wf_form_answers`.`ff_id`=`wf_filled_form`.`id` where `wf_filled_form`.`id`=$id "; $myforms = $this->db->query($myforms); $data1=$myforms->row_array(); $wkflow= $data1['workflow']; $data2=json_decode($wkflow,true); return $data2['checkbox']; } function getAllUsers() { $this->db->order_by('name_english', 'asc'); $users = $this->db->get('users')->result_array(); return $users; } function getFormworkflow($id) { $users=''; $users = $this->getAllUsers(); $workflows ="SELECT wf_form_workflow.*,wf_workflow.workflow FROM `wf_form_workflow` INNER JOIN `wf_workflow` ON `wf_workflow`.`id`=`wf_form_workflow`.`wid` where `wf_form_workflow`.`fid`=$id "; $workflows = $this->db->query($workflows); $data=$workflows->row_array(); $data=json_decode($data['workflow'],true); $len = count($data['workflow'])-1; for($i=0;$i<count($data['workflow']);$i++) { $labelcheckbyepass='<input type="hidden" id="nolevel" name="nolevel" value="'.$len.'"/><label style="margin-top:5px;">Require Approval by : '; foreach($data['workflow'][$i]['approver'] as $user) { if($user != "-1") { $labelcheckbyepass .= allUsers($user,1).', '; } else { $labelcheckbyepass .= 'Unit Head, '; } } $labelcheckbyepass.='<br><input type="checkbox" id="checked'.$i.'" name="checked'.$i.'" '; if($len == $i || !empty($data['workflow'][$i]['specifieduser'])) { $labelcheckbyepass.='disabled'; } $labelcheckbyepass.='> Bypass <br>Inform : '; foreach($data['workflow'][$i]['inform'] as $user) { $labelcheckbyepass .= allUsers($user,1).','; } $labelcheckbyepass.='<span ></span> </label>'; $levelremarks='<b>'.$data['workflow'][$i]['remarks'].'</b><br>'; $dropdown ='<div class="form-group" style="margin-top: 10px;">'; if($data['workflow'][$i]['approver'][0] == 0) { $dropdown .= '<select class="selectpicker" multiple name="approver" data-none-Selected-Text="Approver To Users" required >'; foreach($users as $user) { $dropdown .= "<option value='".$user['id']."'>".allUsers($user['id'],1)."</option>"; } $dropdown .='</select> </div> '; }else { $dropdown .= '<div class="form-group" ><label>'; $first = $data['workflow'][$i]['approver'][0] ; foreach($data['workflow'][$i]['approver'] as $user) { if($user == $first) $dropdown .= ''; else $dropdown .= ''; } $dropdown.="</label></div>"; } echo $levelremarks; echo $labelcheckbyepass; echo $dropdown; } } function getFormworkflowedit($id,$fid) { $users=''; $users = $this->getAllUsers(); $workflows ="SELECT wf_form_workflow.*,wf_workflow.workflow FROM `wf_form_workflow` INNER JOIN `wf_workflow` ON `wf_workflow`.`id`=`wf_form_workflow`.`wid` where `wf_form_workflow`.`fid`=$id "; $workflows = $this->db->query($workflows); $data=$workflows->row_array(); $data=json_decode($data['workflow'],true); $wkflow=$this->db->get_where('wf_filled_form',array('id' => $fid))->row_array(); $workflows=$wkflow['workflow']; $workflows=json_decode($workflows,true); $checkedarr=$workflows['checkbox']; $len = count($data['workflow'])-1; for($i=0;$i<count($data['workflow']);$i++) { $labelcheckbyepass=' <input type="hidden" id="nolevel" name="nolevel" value="'.$len.'"/><label style="margin-top:5px;">Require Approval by : '; foreach($data['workflow'][$i]['approver'] as $user) { if($user != "-1") { $labelcheckbyepass .= allUsers($user,1).', '; } else { $labelcheckbyepass .= 'Unit Head, '; } } $labelcheckbyepass.=' <br/><input type="checkbox" id="checked'.$i.'" name="checked'.$i.'" '; if($len == $i || !empty($data['workflow'][$i]['specifieduser'])) { $labelcheckbyepass.='disabled'; } $check="checked".$i; if(array_key_exists ($check , $checkedarr )) { $labelcheckbyepass.='checked'; } $labelcheckbyepass.=' > Bypass <br>Inform : '; foreach($data['workflow'][$i]['inform'] as $user) { $labelcheckbyepass .= allUsers($user,1).','; } $labelcheckbyepass.='<span ></span> </label>'; $levelremarks='<b>'.$data['workflow'][$i]['remarks'].'</b><br>'; $dropdown =' <div class="form-group" style="margin-top: 10px;"> '; if($data['workflow'][$i]['approver'][0] == 0) { $dropdown .= '<select class="selectpicker" multiple name="approver" data-none-Selected-Text="Approver To Users" required >'; foreach($users as $user) { $dropdown .= "<option value='".$user['id']."'>".allUsers($user['id'],1)."</option>"; } $dropdown .='</select> </div> '; }else { $dropdown .= '<div class="form-group" ><label>'; $first = $data['workflow'][$i]['approver'][0] ; foreach($data['workflow'][$i]['approver'] as $user) { if($user == $first) $dropdown .= ''; else $dropdown .= ''; } $dropdown.="</label></div>"; } echo $levelremarks; echo $labelcheckbyepass; echo $dropdown; } } function addForm($data) { $this->db->select('wf_form_workflow.*,wf_workflow.workflow'); $this->db->join('wf_workflow','wf_form_workflow.wid=wf_workflow.id'); $workflow = $this->db->get_where('wf_form_workflow',array('fid'=>$data['fid']))->row_array(); $user_id = $this->session->userdata('id'); $checked=array(); $cnd=count($data)-6; for ($i=0; $i <20 ; $i++) { $str='checked'.$i; if(!empty($data[$str])) { if($data[$str]=='on') { $checked['checked'.$i]=$data['checked'.$i]; } } } $filledworkflow=json_decode($workflow['workflow'],true); $filledworkflow[]=$checked; $filledworkflows=json_encode($filledworkflow); $datafilledform=array('uid'=> $user_id,'fid'=>$data['fid'],'workflow'=>$filledworkflows,'urgent_reason'=>$data['urgent_reason'],'apply_date'=>$data['apply_date'] ,'last_modified'=>date('Y-m-d h:i:s'),'status'=>'submitted'); $this->db->insert('wf_filled_form',$datafilledform); $ff_id=$this->db->insert_id(); $datawfformanswer=array('ff_id'=> $ff_id,'answer'=>$data['workflow']); $this->db->insert('wf_form_answers',$datawfformanswer); $applicant=$this->db->get_where('users',array('id' => $user_id))->row_array(); $ff_workflow = json_decode($workflow['workflow']); for ($i=0; $i <count($ff_workflow->workflow); $i++) { $check='checked'.$i; if( !array_key_exists ($check , $checked )) { $next_step = $ff_workflow->workflow[$i]->approver; foreach ($next_step as $key => $value) { $datawfformstatus=array('ff_id'=> $ff_id, 'uid'=>$value,'action'=>'Pending','level'=>$i); $this->db->insert('wf_form_status',$datawfformstatus); $userDetails= $this->db->get_where('users',array('id' => $value))->row_array(); $this->send_mail($userDetails,$applicant['username']); } $ff_workflow->workflow[$i]->checked = 1; break; } } $ff_workflow->checkbox=$checked; $workflow = $this->db->update('wf_filled_form',array('workflow'=>json_encode($ff_workflow)),array('fid'=>$data['fid'])); return true; } function submitMyForm($id) { $user_id = $this->session->userdata('id'); $this->db->set('status', 'submitted'); //value that used to update column $this->db->where('id', $id); //which row want to upgrade $this->db->update('wf_filled_form'); $data= $this->db->get_where('wf_filled_form',array('id' => $id))->row_array(); $applicant=$this->db->get_where('users',array('id' => $user_id))->row_array(); $wkflow=$data['workflow']; $wkflow=json_decode($wkflow,true); $checked=$wkflow['checkbox']; $workflow=$wkflow['workflow']; for ($i=0; $i <count($workflow) ; $i++) { $check='checked'.$i; if( !array_key_exists ($check , $checked )) { $next_step = $workflow[$i]['approver']; foreach ($next_step as $key => $value) { if($value==-1) { $head = $this->db->get_where('users_group_unit_head',['group_id',$data['unit']])->row_array(); if(!empty($head)) { $datawfformstatus=array('ff_id'=> $id, 'uid'=>$head['user_id'],'action'=>'Pending','level'=>$i); $this->db->insert('wf_form_status',$datawfformstatus); $userDetails= $this->db->get_where('users',array('id' => $head['user_id']))->row_array(); $this->send_mail($userDetails,$applicant['username']); } else { echo 'empty head'; exit; } } else { $datawfformstatus=array('ff_id'=> $id, 'uid'=>$value,'action'=>'Pending','level'=>$i); $this->db->insert('wf_form_status',$datawfformstatus); $userDetails= $this->db->get_where('users',array('id' => $value))->row_array(); $this->send_mail($userDetails,$applicant['username']); } } //inform $next_step = $workflow[$i]['inform']; foreach ($next_step as $key => $value) { $userDetails= $this->db->get_where('users',array('id' => $value))->row_array(); $this->send_inform_mail($userDetails, $applicant['username']); } break; } } return true; } function saveForm($data) { $this->db->select('wf_form_workflow.*,wf_workflow.workflow'); $this->db->join('wf_workflow','wf_form_workflow.wid=wf_workflow.id'); $workflow = $this->db->get_where('wf_form_workflow',array('fid'=>$data['fid']))->row_array(); $user_id = $this->session->userdata('id'); $checked=array(); $cnd=count($data)-6; for ($i=0; $i <20 ; $i++) { $str='checked'.$i; if(!empty($data[$str])) { if($data[$str]=='on') { $checked['checked'.$i]=$data['checked'.$i]; } } } $filledworkflow=json_decode($workflow['workflow'],true); $filledworkflow['checkbox']=$checked; $filledworkflows=json_encode($filledworkflow); $datafilledform=array('uid'=> $user_id,'fid'=>$data['fid'],'workflow'=>$filledworkflows,'urgent_reason'=>$data['urgent_reason'],'apply_date'=>$data['apply_date'] ,'last_modified'=>date('Y-m-d h:i:s'),'status'=>'draft','unit'=>$data['unit'],'ay_id'=>$data['ay_id']); $this->db->insert('wf_filled_form',$datafilledform); $ff_id=$this->db->insert_id(); $datawfformanswer=array('ff_id'=> $ff_id,'answer'=>$data['workflow']); $this->db->insert('wf_form_answers',$datawfformanswer); return true; } function saveEditForm($data) { $this->db->select('wf_form_workflow.*,wf_workflow.workflow'); $this->db->join('wf_workflow','wf_form_workflow.wid=wf_workflow.id'); $workflow = $this->db->get_where('wf_form_workflow',array('fid'=>$data['fid']))->row_array(); $user_id = $this->session->userdata('id'); $checked=array(); for ($i=0; $i <20 ; $i++) { $str='checked'.$i; if(!empty($data[$str])) { if($data[$str]=='on') { $checked['checked'.$i]=$data['checked'.$i]; } } } $filledworkflow=json_decode($workflow['workflow'],true); $filledworkflow['checkbox']=$checked; $filledworkflows=json_encode($filledworkflow); $datafilledform=array('uid'=> $user_id,'fid'=>$data['fid'],'workflow'=>$filledworkflows,'urgent_reason'=>$data['urgent_reason'],'apply_date'=>$data['apply_date'] ,'last_modified'=>date('Y-m-d h:i:s'),'status'=>'draft','unit'=>$data['unit'],'ay_id'=>$data['ay_id']); $this->db->update('wf_filled_form',$datafilledform,array('id' => $data['id'])); $datawfformanswer=array('answer'=>$data['workflow']); return $this->db->update('wf_form_answers',$datawfformanswer,array('ff_id' => $data['id'])); } function editForm($data) { $this->db->select('wf_form_workflow.*,wf_workflow.workflow'); $this->db->join('wf_workflow','wf_form_workflow.wid=wf_workflow.id'); $workflow = $this->db->get_where('wf_form_workflow',array('fid'=>$data['fid']))->row_array(); $user_id = $this->session->userdata('id'); $checked=array(); for ($i=0; $i <20 ; $i++) { $str='checked'.$i; if(!empty($data[$str])) { if($data[$str]=='on') { $checked['checked'.$i]=$data['checked'.$i]; } } } $filledworkflow=json_decode($workflow['workflow'],true); $filledworkflow['checkbox']=$checked; $applicant=$this->db->get_where('users',array('id' => $user_id))->row_array(); $filledworkflows=json_encode($filledworkflow); $datafilledform=array('uid'=> $user_id,'fid'=>$data['fid'],'workflow'=>$filledworkflows,'urgent_reason'=>$data['urgent_reason'],'apply_date'=>$data['apply_date'] ,'last_modified'=>date('Y-m-d h:i:s'),'status'=>'submitted'); $this->db->update('wf_filled_form',$datafilledform,array('id' => $data['id'])); $datawfformanswer=array('answer'=>$data['workflow']); $this->db->update('wf_form_answers',$datawfformanswer,array('ff_id' => $data['id'])); $workflow =$filledworkflow['workflow']; for ($i=0; $i <count($workflow) ; $i++) { $check='checked'.$i; if( !array_key_exists ($check , $checked )) { $next_step = $workflow[$i]['approver']; foreach ($next_step as $key => $value) { $datawfformstatus=array('ff_id'=> $data['id'], 'uid'=>$value,'action'=>'Pending','level'=>$i); $this->db->insert('wf_form_status',$datawfformstatus); $userDetails= $this->db->get_where('users',array('id' => $value))->row_array(); $this->send_mail($userDetails,$applicant['username']); } break; } } } function updateForm($id) { return $this->db->update('wf_form_answers',array('answer'=>$this->input->post('workflow')),array('ff_id'=>$id)); } function cancelMyForm($id) { $this->db->set('status', 'cancelled'); //value that used to update column $this->db->where('id', $id); //which row want to upgrade $this->db->update('wf_filled_form'); $this->db->delete('wf_form_status',array('ff_id' => $id,'action'=>'Pending')); $this->db->insert('wf_form_status',array('ff_id' => $id,'action'=>'Pending','uid'=>$this->session->userdata('id'),'action'=>'Cancel')); } function deleteMyForm($id) { $this->db->delete('wf_filled_form',array('id' => $id)); $this->db->delete('wf_form_answers',array('ff_id' => $id)); return $this->db->delete('wf_form_status',array('ff_id' => $id)); } function updateFormApproveStatus($id,$status) { $this->db->order_by('time','desc'); $form_status_id = $this->db->get_where('wf_form_status',array('ff_id' => $id,'uid'=>$this->session->userdata('id')))->row_array()['id']; $datawfformanswer=array('action'=>$status); return $this->db->update('wf_form_status',$datawfformanswer,array('id'=>$form_status_id)); } function getFormStatusDetails($id) { return $this->db->order_by('time','desc')->get_where('wf_form_status',array('ff_id' => $id))->row_array(); } function getFormDetails($id) { $myforms ="SELECT wf_filled_form.uid, wf_filled_form.fid,wf_filled_form.workflow as filledworkflow,wf_workflow.workflow FROM `wf_filled_form` INNER JOIN `wf_form_workflow` ON `wf_filled_form`.`fid`=`wf_form_workflow`.`fid` INNER JOIN `wf_workflow` on `wf_form_workflow`.`wid`=`wf_workflow`.`id` where `wf_filled_form`.`id`=$id "; $myforms = $this->db->query($myforms); return $myforms->row_array(); } function getAllUserStatusDetails($ff_id,$level) { return $this->db->get_where('wf_form_status',array('ff_id' => $ff_id,'level'=>$level))->result_array(); } function addNextLevel($ff_id,$uid,$action,$level) { $datawfformstatus=array('ff_id'=> $ff_id, 'uid'=>$uid,'action'=>$action ,'level'=>$level); $this->db->insert('wf_form_status',$datawfformstatus); } function send_mail($data ,$name) { $url = base_url().'workflow/workflow_form/approval'; $message='<html><body><h3>'; $message.='Dear '.$data['username'].',</h3><br><p>'; $message.= 'New form has applied by '.$name.', please check out this <a href="'.$url.'"> Link </a> for approval.</p></br></br>'; $message.='<p>Thanks!</p>'; $message.='</html></body>'; email($data['id'], $name . ' form waiting to approve', $message, $url,'WF'); } function send_inform_mail($data, $name) { $url = base_url().'workflow/workflow_form/approval'; $message='<html><body><h3>'; $message.='Dear '.$data['username'].',</h3><br><p>'; $message.= 'New form has applied by '.$name.'.</p></br></br>'; $message.='<p>Thanks!</p>'; $message.='</html></body>'; email($data['id'], $name . ' form waiting to approve', $message, $url,'WF'); } function getWorkflowDetail($id) { $myforms ="SELECT wf_workflow.* FROM `wf_form_workflow` INNER JOIN `wf_workflow` ON `wf_form_workflow`.`wid`=`wf_workflow`.`id` where `wf_form_workflow`.`fid`=$id "; $myforms = $this->db->query($myforms); $data=$myforms->row_array(); echo $data['urgent_days']; } function getWorkflowDetail1($id,$date) { $myforms ="SELECT wf_workflow.* FROM `wf_form_workflow` INNER JOIN `wf_workflow` ON `wf_form_workflow`.`wid`=`wf_workflow`.`id` where `wf_form_workflow`.`fid`=$id "; $myforms = $this->db->query($myforms); $data=$myforms->row_array(); $urgent= $data['urgent_days']; $current=date("Y-m-d"); echo date_create($date); $date1 = new DateTime($date); $date2 = new DateTime($current); $interval = $date1->diff($date2); $days= $interval->d; if($urgent!=0) { if($days<=$urgent) { echo "yes"; } else { echo "no"; } } else { echo "no"; } } function getFilledFormdetails($id) { $myforms ="SELECT wf_filled_form.*,wf_form_answers.answer,form.title FROM `wf_form_answers` INNER JOIN `wf_filled_form` ON `wf_form_answers`.`ff_id`=`wf_filled_form`.`id` INNER JOIN form on `wf_filled_form`.`fid`=`form`.`id` where `wf_filled_form`.`id`=$id "; $myforms = $this->db->query($myforms); return $myforms->row_array(); } function getFilledForms($id,$year) { $myforms ="SELECT wf_filled_form.id,wf_form_answers.answer,form.title,form.structure,users.name_english,groups.name as unit FROM `wf_form_answers` INNER JOIN `wf_filled_form` ON `wf_form_answers`.`ff_id`=`wf_filled_form`.`id` INNER JOIN form on `wf_filled_form`.`fid`=`form`.`id` INNER JOIN users on users.id=wf_filled_form.uid JOIN groups ON wf_filled_form.unit = groups.id where `form`.`id`=$id and wf_filled_form.ay_id = $year "; $myforms = $this->db->query($myforms); return $myforms->result_array(); } function userDetails($uid) { return $this->db->get_where('users',array('id' => $uid))->row_array(); } function getFormStatus($id) { $mysql = "SELECT * from wf_form_status where ff_id='$id' AND uid='". $this->session->userdata('id') ."' order by id DESC limit 1"; $status = $this->db->query($mysql)->row_array(); if(!empty($status)) { $lang = $_COOKIE['language']; $workflow = json_decode($this->db->select('workflow')->from('wf_filled_form')->where('id = ' . $status['ff_id'])->get()->row_array()['workflow']); $action = strtolower($status['action']); if($action!='pending' && $action!='cancel') $status['name'] = $workflow->workflow[$status['level']]->$action->lang->$lang; else if($action=='pending') $status['name'] = $this->lang->line('pending'); else if($action=='cancel') $status['name'] = $this->lang->line('cancel'); } return $status; } function getFormStatusText($id) { $mysql = "SELECT wf_form_status.*, wf_filled_form.workflow from wf_form_status"; $mysql.= " JOIN wf_filled_form ON wf_filled_form.id = wf_form_status.ff_id"; $mysql.= " where ff_id='$id'"; $mysql.= " order by time DESC limit 1"; $result = $this->db->query($mysql)->row_array(); $status = strtolower($result['action']); $lang = $_COOKIE['language']; if($status=='pending') return $this->lang->line('pending'); if($status=='cancel') return $this->lang->line('cancel'); else if(!empty($result['workflow'])) return json_decode($result['workflow'])->workflow[$result['level']]->$status->status->$lang; else return ''; } }
| ver. 1.4 |
Github
|
.
| PHP 7.2.34 | Generation time: 0.39 |
proxy
|
phpinfo
|
Settings