0
$result3=$this->hrdb->select(array('concat(eb.first_name," ",eb.middle_name, " ",eb.last_name,"") as emp_name','eb.id','pp.emp_id','pp.gross_monthly','pp.amount as net_amount','pp.payslip_id','eor.dep_id'))
                    ->where('pp.emp_id' not_in                    (select(array('pp.gross_monthly','pp.emp_id','pp.amount as net_amount','pp.payslip_id'))),Null,FALSE)
                    ->from('payroll_payments as pp')
                    ->join('employee_basic as eb','pp.emp_id=eb.id','left')
                    ->join('employee_org as eor','pp.emp_id=eor.emp_id','left')
                    ->order_by($_field, $params['_sort_direction'])
                    ->where(array('pp.npyear'=>$params['nep_year'],'pp.npmonth'=>$params['nep_month2']))
                    ->get()
                    ->result();

is the query i have written but problem arises telling

Parse error: syntax error, unexpected T_STRING in /var/www/html/vianet_db/htdocs/addons/shared_addons/modules/hrm/models/payslip_m.php on line 558

nshmura
  • 5,940
  • 3
  • 27
  • 46
Aaditya
  • 1
  • 2

2 Answers2

0

use concat(eb.first_name." ".eb.middle_name." ".eb.last_name."") as emp_name and check. Remove ' quote from query and simply add field names. Instead of 'eb.id','pp.emp_id' , use eb.id,pp.emp_id. Do it for all fields in select section and array id not needed.

0

You need to add second optional parameter as FALSE in SELECT (first select also) for not to escape the characters automatically.

$subqueryResult = //your subquery result in array

$result3=$this->hrdb->select(array('concat(eb.first_name," ",eb.middle_name, " ",eb.last_name,"") as emp_name','eb.id','pp.emp_id','pp.gross_monthly','pp.amount as net_amount','pp.payslip_id','eor.dep_id'), FALSE)
                    ->from('payroll_payments as pp')
                    ->join('employee_basic as eb','pp.emp_id=eb.id','left')
                    ->join('employee_org as eor','pp.emp_id=eor.emp_id','left')
                    ->where_not_in('pp.emp_id', $subqueryResult)
                    ->where(array('pp.npyear'=>$params['nep_year'],'pp.npmonth'=>$params['nep_month2']))
                    ->order_by($_field, $params['_sort_direction'])
                    ->get()
                    ->result();
kishor10d
  • 543
  • 6
  • 24