?
Current Path : /home1/savoy/public_html/savoyglobal.net/sibsmoved/system/application/models/ |
Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 |
Current File : /home1/savoy/public_html/savoyglobal.net/sibsmoved/system/application/models/accountingsmodel.php |
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class accountingsmodel extends Model { function accountingsmodel() { parent::Model(); } function addgl_acc_class() { $class_name = $this->input->post('class_name'); $class_type = $this->input->post('class_type'); $inactive = $this->input->post('inactive'); if ($inactive == 'true') { $inact = 1; } else { $inact = 0; } $tblValues = array('class_name' => $class_name, 'ctype' => $class_type, 'inactive' => $inact); $data = $this->db->insert('gl_class', $tblValues); return $data; } function deletechart_acc($fld, $table, $id) { $qry = $this->db->query("select count(*) as count from subacc_setting where customer=$id or company=$id or employee=$id or cover=$id"); $query = $qry->row()->count; $acc_cod = $this->customermodel->getSingleFieldValue('chart_master', 'account_code', 'id', $id); if (!is_numeric($acc_cod)) { return 0; } $qry1 = $this->db->query("select count(*) as count1 from gl_trans where account='$acc_cod'"); $query1 = $qry1->row()->count1; if ($query1 == 0 && $query == 0) { $res = $this->db->delete($table, array($fld => $id)); if ($res > 0) { return 1; } else { return 0; } } else { return 0; } } function deletegl_class($fld, $table, $id) { $res = $this->db->delete($table, array($fld => $id)); if ($res > 0) { return 1; } else { return 0; } } function updategl_acc_class() { $class_name = $this->input->post('class_name'); $class_type = $this->input->post('class_type'); $inactive = $this->input->post('inactive'); $id = $this->input->post('id'); if ($inactive == 'true') { $inact = 1; } else { $inact = 0; } //$tblValues=array('cid'=>$class_id,'class_name'=>$class_name,'ctype'=>$class_type,'inactive'=>$inact); // $data=$this->db->insert('gl_class', $tblValues); $res = $this->db->query("update gl_class set class_name='" . $class_name . "',ctype='" . $class_type . "',inactive='" . $inact . "' where cid='" . $id . "'"); return $res; } function Getgl_class($table, $pageno, $field, $value = "") { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select * from $table left join chart_account_group on chart_account_group.chart_group_id=char_type.chart_group where " . $table . '.' . $field . " like '" . $value . "%' limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function get_bank_accounts($table, $pageno, $field, $value = "") { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select * from $table where " . $table . '.' . $field . " like '" . $value . "%' limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function get_account_type_settings($table) { $data = array(); $res = $this->db->query("select * from $table group by account_type_for"); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function showgl_class($pageno, $field, $value = "") { $limit = (($pageno - 1) * 10); $data = array(); $data1 = array(); if ($field == 'main_account_code') { $sql = "select * from chart_master cm join char_type ct on ct.id=cm.chart_type where parent in (select id from chart_master where account_code like '" . $value . "%')"; $rescount = $this->db->query($sql); $res = $this->db->query("select cm.id,cm.account_code,cm.account_name,cm.chart_type,cm.parent from chart_master cm join char_type ct on ct.id=cm.chart_type where parent in (select id from chart_master where account_code like '" . $value . "%') order by ct.id,cm.parent,cm.account_code asc,cm.id desc limit " . $limit . "," . 10); } else if ($field == 'parent') { $sql = "select * from chart_master cm join char_type ct on ct.id=cm.chart_type where parent in (select id from chart_master where account_name like '" . $value . "%')"; $rescount = $this->db->query($sql); $res = $this->db->query("select cm.id,cm.account_code,cm.account_name,cm.chart_type,cm.parent from chart_master cm join char_type ct on ct.id=cm.chart_type where parent in (select id from chart_master where account_name like '" . $value . "%') order by ct.id,cm.parent,cm.account_code asc,cm.id desc limit " . $limit . "," . 10); } else { $rescount = $this->db->query("select * from chart_master cm join char_type ct on ct.id=cm.chart_type where " . $field . " like '" . $value . "%' and parent!=0"); $res = $this->db->query("select cm.id,cm.account_code,cm.account_name,cm.chart_type,cm.parent from chart_master cm join char_type ct on ct.id=cm.chart_type where " . $field . " like '" . $value . "%' and parent!=0 order by ct.id,cm.parent,cm.account_code asc,cm.id desc limit " . $limit . "," . 10); } $data['totcount'] = $rescount->num_rows(); foreach ($res->result_array() as $row) { $data1[] = $row; } $data['result'] = $data1; return $data; } function showsub_classmain($mainacc, $pageno, $field, $value = "") { $limit = (($pageno - 1) * 10); $data = array(); $data1 = array(); $rescount = $this->db->query("select * from chart_master cm join char_type ct on ct.id=cm.chart_type where " . $field . " like '" . $value . "%' and parent='$mainacc'"); $res = $this->db->query("select cm.id,cm.account_code,cm.account_name,cm.chart_type,cm.parent from chart_master cm join char_type ct on ct.id=cm.chart_type where " . $field . " like '" . $value . "%' and parent='$mainacc' order by ct.id,cm.parent,cm.id desc limit " . $limit . "," . 10); $data['totcount'] = $rescount->num_rows(); foreach ($res->result_array() as $row) { $data1[] = $row; } $data['result'] = $data1; return $data; } function Getsubacc_settings() { $data = array(); $res = $this->db->query("select * from subacc_setting"); return $res; } function countacc_settings() { $data = array(); $res = $this->db->query("select * from subacc_setting"); return $res->num_rows(); } function Get_edit_data($fld, $table, $id) { $res = $this->db->query("select * from $table where " . $fld . "='" . $id . "'"); $result = $res->row(); return $res; } /* * ************ Functions for GL Account Groups ****************** */ function addgl_acc_group() { $group_name = $this->input->post('group_name'); $class_type = $this->input->post('class_type'); $inactive = $this->input->post('inactive'); if ($inactive == 'true') { $inact = 1; } else { $inact = 0; } $tblValues = array('name' => $group_name, 'class_id' => $class_type, 'inactive' => $inact); $data = $this->db->insert('gl_groups', $tblValues); return $data; } function add_acc_settings() { $customer = $this->input->post('customer'); $company = $this->input->post('company'); $employee = $this->input->post('employee'); $profitloss = $this->input->post('profitloss'); $agent = $this->input->post('agent'); $salary = $this->input->post('salary'); $tblValues = array('customer' => $customer, 'company' => $company, 'employee' => $employee, 'profitloss' => $profitloss, 'agent' => $agent, 'salary' => $salary); $data = $this->db->insert('subacc_setting', $tblValues); return $data; } function updateacc_settings() { $customer = $this->input->post('customer'); $company = $this->input->post('company'); $employee = $this->input->post('employee'); $profitloss = $this->input->post('profitloss'); $id = $this->input->post('id'); $agent = $this->input->post('agent'); $salary = $this->input->post('salary'); $cover = $this->input->post('cover'); $settlement = $this->input->post('settlement'); $allowance = $this->input->post('allowance'); $deduction = $this->input->post('deduction'); $tblValues = array('customer' => $customer, 'cover' => $cover, 'company' => $company, 'employee' => $employee, 'profitloss' => $profitloss, 'agent' => $agent, 'salary' => $salary, 'settlement' => $settlement, 'allowance' => $allowance, 'deduction' => $deduction); $this->db->where('id', $id); $res = $this->db->update('subacc_setting', $tblValues); return $res; } function updategl_acc_group() { $group_name = $this->input->post('group_name'); $class_type = $this->input->post('class_type'); $inactive = $this->input->post('inactive'); $id = $this->input->post('id'); if ($inactive == 'true') { $inact = 1; } else { $inact = 0; } $Values = array('name' => $group_name, 'class_id' => $class_type, 'inactive' => $inact); $this->db->where('id', $id); $res = $this->db->update('gl_groups', $Values); return $res; } /* * **********************End of GL account group functions*************************** */ /* * **************************functions of General Ledger accounts********************************** */ function addgl_acc()/* sub account */ { $acc_name = $this->input->post('acc_name'); $acc_subexp = $this->input->post('acc_sub'); $explode = explode("~", $acc_subexp); $acc_sub = $explode[0]; $acc_group = $explode[1]; $start = $this->customermodel->getSingleFieldValue('chart_master', 'account_code', 'id', $acc_sub); $start_ex = str_split($start); $code = $this->accountingsmodel->acc_code_increment($acc_sub, $start_ex[0]); $max_code = $this->accountingsmodel->acc_code_maxi_limit($start); $i = 1; if ($code == 0) { $acc_code = $start + $i; } else { $acc_code = $code + $i; } do { $i++; $num_rows_code = $this->mastermodel->number_rows('chart_master', 'account_code', $acc_code); if ($num_rows_code != 0) { if ($code == 0) { $acc_code = $start + $i; } else { $acc_code = $code + $i; } } } while ($num_rows_code != 0); $tblValues = array('account_code' => $acc_code, 'account_name' => $acc_name, 'chart_type' => $acc_group, 'parent' => $acc_sub); $data = $this->db->insert('chart_master', $tblValues); return $data; } function updategl_acc() { $acc_name = $this->input->post('acc_name'); $acc_subexp = $this->input->post('acc_sub'); $explode = explode("~", $acc_subexp); $acc_sub = $explode[0]; $acc_group = $explode[1]; $inactive = $this->input->post('inactive'); $id = $this->input->post('id'); if ($inactive == 'true') { $inact = 1; } else { $inact = 0; } $Values = array('account_name' => $acc_name, 'chart_type' => $acc_group, 'parent' => $acc_sub, 'inactive' => $inact); $this->db->where('id', $id); $res = $this->db->update('chart_master', $Values); return $res; } /* * *************************functions for quick entry********************************* */ function addquick_entry() { $description = $this->input->post('description'); $entry_type = $this->input->post('entry_type'); $ba_desc = $this->input->post('ba_desc'); $default_ba = $this->input->post('default_ba'); $tblValues = array('description' => $description, 'entry_type' => $entry_type, 'base_desc' => $ba_desc, 'base_amount' => $default_ba); $data = $this->db->insert('quick_entry', $tblValues); return $data; } function updatequick_entry() { $description = $this->input->post('description'); $entry_type = $this->input->post('entry_type'); $ba_desc = $this->input->post('ba_desc'); $default_ba = $this->input->post('default_ba'); $id = $this->input->post('id'); $Values = array('description' => $description, 'entry_type' => $entry_type, 'base_desc' => $ba_desc, 'base_amount' => $default_ba); $this->db->where('id', $id); $res = $this->db->update('quick_entry', $Values); return $res; } /* * ********************functions for bank accounts**************************** */ function addbank_acc()/* bank account */ { $acc_code = $this->input->post('acc_code'); $acc_name = $this->input->post('acc_name'); $acc_type = $this->input->post('acc_type'); $acc_no = $this->input->post('acc_no'); //$def_cur_val=$this->input->post('def_cur_val'); $bank_curr = $this->input->post('bank_curr'); $bank_name = $this->input->post('bank_name'); $bank_add = $this->input->post('bank_add'); $last_rec_date = ""; $ending_bal = ""; $tblValues = array('account_code' => $acc_code, 'bank_account_name' => $acc_name, 'acc_type' => $acc_type, 'bank_account_number' => $acc_no, 'bank_name' => $bank_name, 'bank_address' => $bank_add, 'bank_curr_code' => $bank_curr, 'last_reconciled_date' => $last_rec_date, 'ending_reconcile_balance' => $ending_bal); $data = $this->db->insert('bank_accounts', $tblValues); return $data; } function updatebank_acc() { $acc_code = $this->input->post('acc_code'); $acc_name = $this->input->post('acc_name'); $acc_type = $this->input->post('acc_type'); $acc_no = $this->input->post('acc_no'); //$def_cur_val=$this->input->post('def_cur_val'); $bank_curr = $this->input->post('bank_curr'); $bank_name = $this->input->post('bank_name'); $bank_add = $this->input->post('bank_add'); $last_rec_date = ""; $ending_bal = ""; $id = $this->input->post('id'); $Values = array('account_code' => $acc_code, 'bank_account_name' => $acc_name, 'acc_type' => $acc_type, 'bank_account_number' => $acc_no, 'bank_name' => $bank_name, 'bank_address' => $bank_add, 'bank_curr_code' => $bank_curr, 'last_reconciled_date' => $last_rec_date, 'ending_reconcile_balance' => $ending_bal); $this->db->where('id', $id); $res = $this->db->update('bank_accounts', $Values); return $res; } function getSingleFieldValue($table, $field, $condition, $value, $condition2, $value2) { $data = $this->db->query("select " . $field . " from " . $table . " where " . $condition . "='" . $value . "' and " . $condition2 . "= '" . $value2 . "'"); $results = $data->row(); if ($results) { return $results->$field; } else { return ""; } } /* * **************************************functions for bank payment and deposit******************************************* */ function opt_group() { $data = array(); $Q = $this->db->query("select * from chart_master cm join char_type ct on cm.chart_type=ct.id where cm.account_code not in(select account_code from bank_accounts) and cm.parent!=0 "); foreach ($Q->result_array() as $row) { $data[] = $row; } $Q->free_result(); return $data; } function bank_payment($refid) { $count = $this->db->query("select * from unposted_pay_dep where unpost='0' and type=2 and reference='" . $refid . "'"); foreach ($count->result_array() as $row) { $ref_id = $row['reference']; $date = $row['date']; $tdate = date('Y-m-d'); $bank_id = $row['acc_id']; $bank_code = $row['bank_acc']; $amount = $row['amount']; $account = $row['account']; $memo = $row['memo']; $method = $row['method']; } $this->db->trans_begin(); /* * ******************************************Insert into Audit_trail***************************************************** */ $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id, 'user' => $_SESSION['userid'], 'date_trans' => $tdate, 'fiscal_year' => $fyear, 'gl_date' => $date ); $this->db->insert('audit_trail', $insValuesA); /* * ******************************************Insert into transaction tables*************************** */ $ref = $this->customermodel->getSingleFieldValue('refs', 'reference', 'id', $ref_id); $tblValues = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $account, 'memo' => $memo, 'amount' => -$amount, 'method' => $method); $str1 = $this->db->insert('gl_trans', $tblValues); $tblValues1 = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $bank_code, 'memo' => $memo, 'amount' => $amount, 'method' => $method); $str2 = $this->db->insert('gl_trans', $tblValues1); $tblValue = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $account, 'memo' => $memo, 'amount' => -$amount, 'alloc' => ''); $str = $this->db->insert('customer_trans', $tblValue); $bankValue = array('trans_no' => $ref_id, 'bank_act' => $bank_id, 'ref' => $ref, 'trans_date' => $date, 'amount' => $amount, 'reconciled' => ''); $str = $this->db->insert('bank_trans', $bankValue); $posted_val = array('unpost' => 1); $this->db->where('reference', $ref_id); $str = $this->db->update('unposted_pay_dep', $posted_val); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function unpostcust_payment() { $cust_id = $_POST['customer_id']; $ref = $this->accountingsmodel->get_reference_code(2); $memo = $_POST['memo']; $method = $_POST['method']; $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $amount = $_POST['amount']; $bank_account = $_POST['to_bank']; $bank_acc = explode('~', $bank_account); // var_dump($_POST); $cust_acc = $this->customermodel->getSingleFieldValue('customers', 'code', 'id', $cust_id); $this->db->trans_begin(); $insertvals = array('type' => '2', 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); $tblValues = array('reference' => $ref_id, 'acc_id' => $bank_acc[0], 'date' => $date, 'bank_acc' => $bank_acc[1], 'memo' => $memo, 'amount' => $amount, 'account' => $cust_acc, 'unpost' => 0, 'type' => 2, 'method' => $method); $str = $this->db->insert('unposted_pay_dep', $tblValues); if ($method == 'cheque') { $ch_date = $_POST['ch_date']; $ch_date = $this->mastermodel->convdatformat($ch_date); $bname = $_POST['bankname']; $ch_no = $_POST['ch_no']; $chdetails = array('reference' => $ref_id, 'ch_date' => $ch_date, 'bank_name' => $bname, 'cheque_no' => $ch_no); $str = $this->db->insert('receipt_cheque', $chdetails); } if ($method == "bank") { $bank_details = array('reference' => $ref_id, 'bank_info' => $_POST['bank_info']); $this->db->insert('payment_bank_info', $bank_details); } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function updatecust_payment() { $cust_id = $_POST['customer_id']; $memo = $_POST['memo']; $method = $_POST['method']; $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $amount = $_POST['amount']; $bank_account = $_POST['to_bank']; $bank_acc = explode('~', $bank_account); $cust_acc = $this->customermodel->getSingleFieldValue('customers', 'code', 'id', $cust_id); $this->db->trans_begin(); $ref_id = $_POST['refid']; $this->db->delete('receipt_cheque', array('reference' => $ref_id)); $this->db->delete('payment_bank_info', array('reference' => $ref_id)); if ($method == 'cheque') { $delete_ch = $this->db->delete('receipt_cheque', array('reference' => $ref_id)); $ch_date = $_POST['ch_date']; $ch_date = $this->mastermodel->convdatformat($ch_date); $bname = $_POST['bankname']; $ch_no = $_POST['ch_no']; $chdetails = array('reference' => $ref_id, 'ch_date' => $ch_date, 'bank_name' => $bname, 'cheque_no' => $ch_no); $str = $this->db->insert('receipt_cheque', $chdetails); } if ($method == "bank") { $bank_details = array('reference' => $ref_id, 'bank_info' => $_POST['bank_info']); $this->db->insert('payment_bank_info', $bank_details); } $tblValues = array('acc_id' => $bank_acc[0], 'date' => $date, 'bank_acc' => $bank_acc[1], 'memo' => $memo, 'amount' => $amount, 'account' => $cust_acc, 'unpost' => 0, 'type' => 2, 'method' => $method); $this->db->where('reference', $ref_id); $str = $this->db->update('unposted_pay_dep', $tblValues); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function data_exist($table, $data) { $data = str_replace('~', '/', $data); $query = $this->db->query("select * from $table where reference='$data'"); if ($query->num_rows() > 0) echo $query->num_rows(); else echo 0; } function code_exist($table, $field, $data) { $query = $this->db->query("select * from $table where $field='$data'"); echo $query->num_rows(); } function deletetrans($type, $refid) { $res = $this->db->delete('refs', array('type' => $type, 'id' => $refid)); $res = $this->db->delete('gl_trans', array('type' => $type, 'type_no' => $refid)); $res = $this->db->delete('bank_trans', array('type' => $type, 'trans_no' => $refid)); if ($type == 4) { $res = $this->db->delete('bank_to_bank', array('type' => $type, 'ref' => $refid)); } if ($res > 0) { return 1; } else { return 0; } } function single_trans($table, $refid) { $data = array(); $res = $this->db->query("select * from $table where type_no='" . $refid . "' and amount!=0 order by account"); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function single_unpost($table, $refid) { $data = array(); $res = $this->db->query("select * from $table where reference='" . $refid . "'"); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function single_transact($cusid, $date1 = "", $date2 = "") { $data = array(); $qry = "SELECT placing_slip_premiumdetails.premium ,placing_slip_premiumdetails.policy_fees , placing_slip.id as pid ,'0' as eid , IFNULL(sum(cust_allocate.amount),0) as amount , customers.id , placing_slip_refs.id as typeno , customer_trans.alloc as calloc , placing_slip.quotation_ref , reference , '' as policyno , customer_trans.tran_date as tran_date ,cover ,customer_trans.amount as tamount, refs.type , placing_slip.remarks as description FROM placing_slip_premiumdetails INNER JOIN placing_slip ON (placing_slip_premiumdetails.placing_slip_id = placing_slip.id) LEFT JOIN cust_allocate ON (placing_slip_premiumdetails.placing_slip_id = cust_allocate.pid and cust_allocate.type='issue') INNER JOIN placing_slip_refs ON (placing_slip_premiumdetails.placing_slip_id = placing_slip_refs.pslip_id and placing_slip_refs.type='issue') INNER JOIN customer_trans ON (customer_trans.type_no = placing_slip_refs.id) INNER JOIN refs ON refs.id=customer_trans.type_no inner join covers on covers.id=placing_slip.cover_id INNER JOIN customers ON (placing_slip.customer_id = customers.id) where customers.id=$cusid"; if (!empty($date1) && !empty($date2)) { $qry.=" and customer_trans.tran_date between '$date1' and '$date2' "; } $qry.=" GROUP BY placing_slip.id"; $qry.=" UNION SELECT endorsement.premiumchange as premium ,endorsement.policyfeeschange as policy_fees , '0' as pid , endorsement.id as eid , IFNULL(sum(cust_allocate.amount),0) as amount , customers.id , placing_slip_refs.id as typeno , customer_trans.alloc as calloc , endrefno as quotation_ref , reference , endorsement.endpolicyno as policyno , customer_trans.tran_date as tran_date ,cover ,customer_trans.amount as tamount, refs.type , endorsement.remarks as description FROM endorsement join policynote on policynote.id=endorsement.policyid join placing_slip on placing_slip.quotation_ref= policynote.quotation_ref LEFT JOIN cust_allocate ON (endorsement.id = cust_allocate.pid and cust_allocate.type='endorsement') INNER JOIN placing_slip_refs ON (endorsement.id = placing_slip_refs.pslip_id and placing_slip_refs.type='endorsement') INNER JOIN customer_trans ON (customer_trans.type_no = placing_slip_refs.id) INNER JOIN refs ON refs.id=customer_trans.type_no inner join covers on covers.id=placing_slip.cover_id INNER JOIN customers ON (placing_slip.customer_id = customers.id) where customers.id=$cusid "; if (!empty($date1) && !empty($date2)) { $qry.=" and customer_trans.tran_date between '$date1' and '$date2' "; } $qry.=" GROUP BY endorsement.id"; $res = $this->db->query($qry); return $res; } function single_allocate($tid) { $data = array(); $qry = "SELECT * FROM customer_trans where id=$tid"; $res = $this->db->query($qry); return $res; } function addtoallocate() { $totalamount = 0; $alloc_amt = $_POST['alloc_fld']; $alloc_type = $_POST['alloc_fld_type']; $tran_date = $_POST['trans_date']; $memo = $_POST['memo']; $pre_alloc = $_POST['pre_alloc']; $ptype = $_POST['premium_type']; $pid = $_POST['pslip_id']; $eid = $_POST['endoresement_id']; $preval = $_POST['preval']; $from = $_POST['tid']; $ref = $_POST['ref']; $trans_date = date('Y-m-d'); $total_amount = $_POST['remaining_total']; $allocated_total = 0; for ($p = 0; $p < sizeof($pid); $p++) { if ($alloc_amt[$p] != '' || $alloc_amt[$p] != 0) { $allocated_total +=$alloc_amt[$p]; } } if ($allocated_total > $total_amount) { return 0; } $this->db->trans_begin(); for ($p = 0; $p < sizeof($pid); $p++) { $type = (empty($eid[$p])) ? 'issue' : 'endorsement'; if ($alloc_amt[$p] != '' || $alloc_amt[$p] != 0) { if ($type == 'issue') { $xpid = $pid[$p]; } else $xpid = $eid[$p]; $data = array( 'from' => $from, 'pid' => $xpid, 'amount' => $alloc_amt[$p], 'type' => $type ); $this->db->insert('cust_allocate', $data); if ($type == 'issue') { $placing_pay = array( 'placing_slip_id' => $xpid, 'paydate' => $tran_date, 'amount' => $alloc_amt[$p], 'paymethod' => $memo ); $this->db->insert('placing_slip_payamount', $placing_pay); } else { $endorsement_pay = array( 'endorsement_id' => $xpid, 'paydate' => $tran_date, 'amount' => $alloc_amt[$p], 'paymethod' => $memo ); $this->db->insert('endorsement_payamount', $endorsement_pay); } $alloc = $pre_alloc[$p] + $alloc_amt[$p]; $pretype = $ptype[$p]; $insdata = array('alloc' => $alloc); $this->db->where('type_no', $pretype); $this->db->update('customer_trans', $insdata); $totalamount += $alloc_amt[$p]; } } $total = $totalamount + $preval; $udata = array('alloc' => $total); $this->db->where('id', $from); $this->db->update('customer_trans', $udata); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); } else { $this->db->trans_commit(); return true; } } /* * **********************Bank transfer functions**************************** */ function bank_transfer() { $accfrom1 = $_POST['from']; $accfrom = explode('~', $accfrom1); $accto1 = $_POST['to']; $accto = explode('~', $accto1); $ref = $this->accountingsmodel->get_reference_code(4); $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $tdat = date('Y-m-d'); $amount = $_POST['amount']; $memo = $_POST['memo']; $total_amt = -($amount); $this->db->trans_begin(); $type = 4; // to know which type of transaction Refer the trans_type table $insertvals = array('type' => $type, 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); $tblValues5 = array('from_b' => $accfrom[0], 'to_b' => $accto[0], 'amount' => $amount, 'trans_date' => $date, 'ref' => $ref_id, 'memo' => $memo, 'type' => 0); $query = $this->db->insert('bank_to_bank', $tblValues5); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $query; } } function updatebank_transfer() { $accfrom1 = $_POST['from']; $accfrom = explode('~', $accfrom1); $accto1 = $_POST['to']; $accto = explode('~', $accto1); $ref = $_POST['ref']; $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $ref_id = $_POST['refid']; $amount = $_POST['amount']; $memo = $_POST['memo']; $total_amt = -($amount); $this->db->trans_begin(); $tblValues5 = array('from_b' => $accfrom[0], 'to_b' => $accto[0], 'amount' => $amount, 'trans_date' => $date, 'memo' => $memo, 'type' => 0); $this->db->where('ref', $ref_id); $query = $this->db->update('bank_to_bank', $tblValues5); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $query; } } function post_banktobank_trans($id) { $count = $this->db->query("select * from bank_to_bank where type='0' and id='" . $id . "'"); foreach ($count->result_array() as $row) { $date = $row['trans_date']; $tdate = date('Y-m-d'); $amount = $row['amount']; $acc_from = $row['from_b']; $acc_to = $row['to_b']; $memo = $row['memo']; $total_amt = 0 - $amount; $ref_id = $row['ref']; } $fromacc_code = $this->customermodel->getSingleFieldValue('bank_accounts', 'account_code', 'id', $acc_from); $toacc_code = $this->customermodel->getSingleFieldValue('bank_accounts', 'account_code', 'id', $acc_to); $ref = $this->customermodel->getSingleFieldValue('refs', 'reference', 'id', $ref_id); $this->db->trans_begin(); /* * ******************************************Insert into Audit_trail***************************************************** */ $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id, 'user' => $_SESSION['userid'], 'date_trans' => $tdate, 'fiscal_year' => $fyear, 'gl_date' => $date ); $this->db->insert('audit_trail', $insValuesA); /* * ********************************************************************************** */ $tblValues = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $fromacc_code, 'memo' => $memo, 'amount' => $total_amt); $str1 = $this->db->insert('gl_trans', $tblValues); $tblValues2 = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $toacc_code, 'memo' => '', 'amount' => $amount); $str = $this->db->insert('gl_trans', $tblValues2); $tblValues3 = array('trans_no' => $ref_id, 'bank_act' => $acc_from, 'ref' => $ref, 'trans_date' => $date, 'amount' => $total_amt); $query = $this->db->insert('bank_trans', $tblValues3); $tblValues4 = array('trans_no' => $ref_id, 'bank_act' => $acc_to, 'ref' => $ref, 'trans_date' => $date, 'amount' => $amount); $query = $this->db->insert('bank_trans', $tblValues4); $tblValues5 = array('type' => 1); $this->db->where('id', $id); $query = $this->db->update('bank_to_bank', $tblValues5); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function count_val($table, $field, $type) { $res = $this->db->query("select * from " . $table . " where " . $field . " like '" . $type . "'"); return $res->num_rows(); } function countcust_tra_val($table, $field, $type) { $res = $this->db->query("select * from $table c INNER JOIN bank_trans b ON c.type_no=b.trans_no JOIN refs r ON r.id=b.trans_no where c." . $field . " like'" . $type . "%'"); return $res->num_rows(); } function bank_trans($pageno, $type, $post) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); //<<<<<<< .mine // // $res=$this->db->query("select * from bank_to_bank where type='$post' order by id limit " . $limit .",". 10); //======= $sql = "select distinct(bank_to_bank.id),bank_to_bank.ref,amount,trans_date,memo,reference,bank_to_bank.type, ba1.bank_account_name as from_b,ba2.bank_account_name as to_b from bank_to_bank INNER JOIN bank_accounts ba1 ON (bank_to_bank.from_b = ba1.id) INNER JOIN bank_accounts ba2 ON (bank_to_bank.to_b = ba2.id) join refs on refs.id= bank_to_bank.ref where bank_to_bank.type='$post' limit " . $limit . "," . 10; $res = $this->db->query($sql); //>>>>>>> .r1039 foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $sql = "select distinct(bank_to_bank.id),bank_to_bank.ref,amount,trans_date,memo,reference,bank_to_bank.type, ba1.bank_account_name as fromAccount,ba2.bank_account_name as ToAccount from bank_to_bank INNER JOIN bank_accounts ba1 ON (bank_to_bank.from_b = ba1.id) INNER JOIN bank_accounts ba2 ON (bank_to_bank.to_b = ba2.id) join refs on refs.id= bank_to_bank.ref where bank_to_bank.type='$post'"; $res = $this->db->query($sql); return $res->num_rows(); } } function journal_trans($pageno, $type) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(r.id) as id,r.type, r.reference,bt.tran_date from gl_trans bt JOIN refs r ON r.id=bt.type_no where r.type='3' order by r.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select distinct(r.id) from gl_trans bt JOIN refs r ON r.id=bt.type_no where r.type='3'"); return $res->num_rows(); } } function sumamount_journalpost($rid, $type) { $res = $this->db->query("select IFNULL(sum(amount),0) as totalamount from gl_trans t JOIN refs r ON r.id=t.type_no where r.type='$type' and r.id=$rid and t.amount>0 group by t.type_no "); $row = $res->row()->totalamount; return $row; } function journal_unpost($pageno, $type) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(t.reference) as id,r.type, r.reference,t.date as tran_date from unposted_journal t JOIN refs r ON r.id=t.reference where r.type='3' and t.unpost='0' order by r.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select distinct(t.reference) as id,r.type, r.reference,t.date as tran_date from unposted_journal t JOIN refs r ON r.id=t.reference where r.type='3' and t.unpost='0'"); return $res->num_rows(); } } function sumamount_journal($rid, $type) { $res = $this->db->query("select IFNULL(sum(amount),0) as totalamount from unposted_journal t JOIN refs r ON r.id=t.reference where r.type='$type' and r.id=$rid and t.amount>0 group by t.reference "); $row = $res->row()->totalamount; return $row; } function banktrans_unpost($pageno, $type, $trans) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(t.reference) as id,ch_date, cheque_no, r.type,t.bank_acc,t.acc_id,r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference left join receipt_cheque on receipt_cheque.reference = r.id where r.type='$trans' and t.unpost='0' and r.tr_type='other' order by r.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select distinct(t.reference) as id,r.type,t.bank_acc,t.acc_id,ch_date, cheque_no, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference left join receipt_cheque on receipt_cheque.reference = r.id where r.type='$trans' and t.unpost='0'"); return $res->num_rows(); } } function pdc_unpost($pageno, $type, $trans) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(t.reference) as id,r.type,t.bank_acc,t.acc_id,r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference where t.unpost='0' and r.tr_type='post_dated_cheque' order by r.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select distinct(t.reference) as id,r.type,t.bank_acc,t.acc_id, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference where t.unpost='0' and r.tr_type='post_dated_cheque'"); return $res->num_rows(); } } function sumamount_unpost($rid, $type) { $res = $this->db->query("select IFNULL(sum(amount),0) as totalamount from unposted_pay_dep t JOIN refs r ON r.id=t.reference where r.type='$type' and r.id=$rid group by t.reference "); $row = $res->row()->totalamount; return $row; } function delete_up_journal($table, $id) { $this->db->where('reference', $id); $back = $this->db->delete($table); if ($table == 'auto_journal') { $this->db->where('id', $id); $back = $this->db->delete('temp_refs'); } $this->db->where('id', $id); $back = $this->db->delete('refs'); return $back; } function autojournal_trans($pageno, $type) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(aj.reference) as id,r.type, r.reference as ref,aj.title,aj.date from auto_journal aj JOIN temp_refs r ON r.id=aj.reference where r.type='3' limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select distinct(aj.reference) as id,r.type, r.reference as ref,aj.title,aj.date from auto_journal aj JOIN temp_refs r ON r.id=aj.reference where r.type='3' "); return $res->num_rows(); } } function sumamount_autojournal($rid, $type) { $res = $this->db->query("select IFNULL(sum(amount),0) as totalamount from auto_journal t JOIN temp_refs r ON r.id=t.reference where r.type='$type' and r.id=$rid and t.amount>0 group by t.reference "); $row = $res->row()->totalamount; return $row; } function showpaymentvouchertrans($ref) { $data = array(); $res = $this->db->query("select bt.type_no,bt.tran_date,bt.amount as amount,cm.account_code,cm.account_name,r.reference FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` join chart_master cm on cm.account_code=bt.account WHERE r.reference='$ref' having amount >0 order by r.id desc "); $data['rvcount'] = $res->num_rows(); $data['result'] = $res; return $data; } function showunpostedpaymentvouchertrans($ref) { $data = array(); $res = $this->db->query("select t.reference as id,r.type,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account where t.unpost='0' and r.reference='$ref' having amount >0 order by r.id desc"); $data['rvcount'] = $res->num_rows(); $data['result'] = $res; return $data; } function bankpayment_trans($pageno, $type) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select r.reference as reference, trans_no, trans_date, ch_date,cheque_no from bank_trans bt JOIN refs r ON r.id=bt.trans_no LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id where r.type='1' order by r.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select * from bank_trans bt JOIN refs r ON r.id=bt.trans_no LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id where r.type='1' "); return $res->num_rows(); } } //1 amount>0 2 amount<0if(r.type=1,if(amount>0,amount,0) ,if(amount<0,amount,0)) having amount >0 function showpdctrans($ref) { $data = array(); $res = $this->db->query("select r.type ,bt.type_no,bt.tran_date,bt.amount as amount,cm.account_code,cm.account_name,r.reference FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` join chart_master cm on cm.account_code=bt.account WHERE r.reference='$ref' and r.tr_type='post_dated_cheque' order by r.id desc "); $data['rvcount'] = $res->num_rows(); $data['result'] = $res; return $data; } function showreceiptvouchertrans($ref) { $data = array(); $res = $this->db->query("select bt.type_no,bt.tran_date,bt.amount as amount,cm.account_code,cm.account_name,r.reference FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` join chart_master cm on cm.account_code=bt.account WHERE r.type = '2' and r.reference='$ref' having amount <0 order by r.id desc "); $data['rvcount'] = $res->num_rows(); $data['result'] = $res; return $data; } function showunpostedpdctrans($ref) { $data = array(); $res = $this->db->query("select t.reference as id,r.type,t.bank_acc,t.acc_id, cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account where t.unpost='0' and r.id='$ref' order by r.id desc"); $data['rvcount'] = $res->num_rows(); $data['result'] = $res; return $data; } function showunpostedreceiptvouchertrans($ref) { $data = array(); $res = $this->db->query("select t.reference as id,r.type,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account where t.unpost='0' and r.reference='$ref' having amount <0 order by r.id desc"); $data['rvcount'] = $res->num_rows(); $data['result'] = $res; return $data; } function bankdep_trans($pageno, $type) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select r.reference as reference, trans_no, trans_date, ch_date,cheque_no from bank_trans bt JOIN refs r ON r.id=bt.trans_no LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id where r.type='2' order by r.id desc limit " . $limit . "," . 10); // foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select r.reference as reference, trans_no, trans_date, ch_date,cheque_no from bank_trans bt JOIN refs r ON r.id=bt.trans_no LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id where r.type='2' "); return $res->num_rows(); } } function get_pdc_report($type, $cid, $cheque_from_date, $cheque_to_date, $tr_type, $value = "") { $data = array(); $data['customer'] = array(); $data['c_id'] = array($cid); $where = ""; if ($cid > 0) { $where.=" and customers.id='" . $cid . "'"; } if ($tr_type != "all") { $where.=" and unpost='" . $tr_type . "'"; } if ($value != "") { $where.=" and account='" . $value . "'"; } if ($cheque_from_date != 0) { $date1 = $this->mastermodel->convdatformat($cheque_from_date); if ($date1 != "") { $where.=" and rc.ch_date >='" . $date1 . "'"; } } if ($cheque_to_date != 0) { $date2 = $this->mastermodel->convdatformat($cheque_to_date); if ($date2 != "") { $where.=" and rc.ch_date <='" . $date2 . "'"; } } $res = $this->db->query(" select * , customers.id as c_id , r.reference as tr_no,r.id as id from unposted_pay_dep pd JOIN refs r ON r.id=pd.reference JOIN receipt_cheque rc ON rc.reference=pd.reference JOIN transaction_types tt ON tt.id=r.type JOIN customers on customers.code=pd.account where r.tr_type='post_dated_cheque' $where order by rc.ch_date asc"); $rt = $res->result_array(); $data['transdet'] = $rt; $data['refs_count'] = array(); foreach ($rt as $row) { if (isset($data['refs_count'][$row['id']])) { $data['refs_count'][$row['id']]+=1; } else { $data['refs_count'][$row['id']] = 1; } $data['c_id'][] = $row['c_id']; } $qry = "select customers.id as cid,customers.code as code,customers.type,customer_contact.address , customer_contact.postbox,country.countryname , city.cityname FROM customers INNER JOIN customer_contact ON (customer_contact.customer_id = customers.id) INNER JOIN country ON (country.id = customer_contact.country) INNER JOIN city ON (city.id = customer_contact.city) where customers.id in (" . implode(',', $data['c_id']) . ") "; $cdet = $this->db->query($qry); $rt = $cdet->result_array(); foreach ($rt as $row) { $data['customer'][$row['code']] = $row; } $res = $this->db->query($qry); $data['openbalance'] = $res->row(); // $res = $this->db->query(" select * , r.reference as tr_no // from unposted_pay_dep pd // JOIN refs r ON r.id=pd.reference // JOIN receipt_cheque rc ON rc.reference=pd.reference // JOIN transaction_types tt ON tt.id=r.type // JOIN customers on customers.code=pd.account // LEFT JOIN customer_personal_ind ON customer_personal_ind.customer_id=customers.id // where r.type='2' and r.tr_type='post_dated_cheque' "); // $data['transdet']=$res->result_array(); // var_dump($data['transdet']); return $data; } function post_dated_cheque($pageno, $type) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select *,bt.trans_no as trans_no,fy.closed as fyclosed ,r.reference as tr_no,r.id as id,r.type from bank_trans bt JOIN refs r ON r.id=bt.trans_no JOIN gl_trans gl ON gl.type_no=r.id join chart_master cm on cm.account_code=gl.account JOIN transaction_types tt ON tt.id=r.type JOIN audit_trail au ON au.trans_no=r.id JOIN fiscal_year fy ON fy.id=au.fiscal_year where r.tr_type='post_dated_cheque' group by bt.trans_no order by r.id desc limit " . $limit . "," . 10); $k = 1; foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select distinct(r.id) from bank_trans bt JOIN refs r ON r.id=bt.trans_no JOIN gl_trans gl ON gl.type_no=r.id JOIN transaction_types tt ON tt.id=r.type JOIN audit_trail au ON au.trans_no=r.id JOIN fiscal_year fy ON fy.id=au.fiscal_year where r.tr_type='post_dated_cheque' "); return $res->num_rows(); } } function custom_trans($table, $pageno, $field, $type) { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(c.id) as id,c.alloc,r.reference, c.tran_date,c.amount,c.account,c.memo,b.bank_act, b.trans_no, ch_date,cheque_no from $table c INNER JOIN bank_trans b ON c.type_no=b.trans_no JOIN refs r ON r.id=b.trans_no left join receipt_cheque rc ON rc.reference=r.id where c." . $field . " like'" . $type . "%' order by c.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function singlecustom_trans($id) { $data = array(); $res = $this->db->query("select c.tran_date,c.amount,c.account,c.memo,b.bank_act,b.ref from customer_trans c INNER JOIN bank_trans b ON c.type_no=b.trans_no where c.id=$id "); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function bank_bal($id) { $query = $this->db->query("select sum( amount ) as amount from bank_trans where bank_act='$id'"); if ($query->num_rows() > 0) { $row = $query->row(); $type = $row->amount; $type1 = '<font style="color:gray;"><label>Balance:</label>' . $type . '.00</font>'; } if ($type == "") { $type = 0; $type1 = '0.00'; } echo $type1; } /* * ***********************function for journal entry******************************** */ function add_journal($ref_id) { $count = $this->db->query("select * from unposted_journal where unpost='0' and reference='" . $ref_id . "'"); $str = 0; $insert_audit = 0; $this->db->trans_begin(); foreach ($count->result_array() as $row) { $date = $row['date']; $tdate = date('Y-m-d'); $hid = $row['account_code']; $bank_id = $row['account_id']; $amount = $row['amount']; $memo = $row['memo']; if ($insert_audit == 0) { $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id, 'user' => $_SESSION['userid'], 'date_trans' => $tdate, 'fiscal_year' => $fyear, 'gl_date' => $date ); $this->db->insert('audit_trail', $insValuesA); $insert_audit = 1; } $tblValues = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $hid, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('gl_trans', $tblValues); $ref = $this->customermodel->getSingleFieldValue('refs', 'reference', 'id', $ref_id); $code = $row['account_code']; if (strncasecmp("IDL", $code, 3) == 0 || strncasecmp("CRP", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('customer_trans', $tblValuescu); } if (strncasecmp("EMP", $code, 3) == 0 || strncasecmp("AGE", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('agent_trans', $tblValuescu); } if (strncasecmp("INS", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('company_trans', $tblValuescu); } if ($bank_id >= 1) { $tblValues3 = array('trans_no' => $ref_id, 'bank_act' => $bank_id, 'ref' => $ref, 'trans_date' => $date, 'amount' => $amount); $query = $this->db->insert('bank_trans', $tblValues3); } $posted_val = array('unpost' => 1); $this->db->where('reference', $ref_id); $str = $this->db->update('unposted_journal', $posted_val); if ($row['reverse'] == 'true') { $date1 = explode('-', $date); $newmonth = $date1[1] + 1; $year = $date1[0]; if ($newmonth > 12) { $newmonth = 1; $year = $year + 1; } $newdate = $year . '-' . $newmonth . '-1'; if ($insert_audit == 1) { $trans_type = 3; $tdat = date('Y-m-d'); $ref = $this->customermodel->getSingleFieldValue('refs', 'reference', 'id', $ref_id); $insertvals = array('type' => $trans_type, 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id1 = $this->db->insert_id(); $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id1, 'user' => $_SESSION['userid'], 'date_trans' => $tdat, 'fiscal_year' => $fyear, 'gl_date' => $newdate ); $this->db->insert('audit_trail', $insValuesA); $insert_audit = 2; } /* * ******************Insert into gl_trans and bank _trans****************** */ if ($amount >= 1) { $amount = -$amount; } else if ($amount <= -1) { $amts = str_replace("-", "", $amount); $amount = $amts; } else { $amount = 0; } $tblValues = array('type_no' => $ref_id1, 'tran_date' => $newdate, 'account' => $hid, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('gl_trans', $tblValues); $code = $hid; if (strncasecmp("IDL", $code, 3) == 0 || strncasecmp("CRP", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('customer_trans', $tblValuescu); } if (strncasecmp("EMP", $code, 3) == 0 || strncasecmp("AGE", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('agent_trans', $tblValuescu); } if (strncasecmp("INS", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('company_trans', $tblValuescu); } if ($bank_id >= 1) { $tblValues3 = array('trans_no' => $ref_id1, 'bank_act' => $bank_id, 'ref' => $ref, 'trans_date' => $newdate, 'amount' => $amount); $query = $this->db->insert('bank_trans', $tblValues3); } } } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); echo 0; } else { $this->db->trans_commit(); echo $str; } } function add_unposted_journal() { $reverse = $_POST['reverse']; $ref = $this->accountingsmodel->get_reference_code(3); $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $counter = $_POST['counter_check']; $trans_type = 3; // Type is journal entry.Refer table trans_type $this->db->trans_begin(); $update = $_POST['refid']; if ($update != 0) { $delete = $this->db->delete('unposted_journal', array('reference' => $update)); $ref_id = $update; } else { $insertvals = array('type' => $trans_type, 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); } /* * ******************Insert into temperory table unposted_journal****************** */ for ($i = 0; $i <= $counter; $i++) { if (isset($_POST['code_id_' . $i])) { $memo = $_POST['memo_' . $i]; $acccode = $_POST['code_id_' . $i]; $debit = $_POST['debit_' . $i]; $credit = $_POST['credit_' . $i]; if ($debit >= 1) { $amount = $debit + $credit; } else if ($credit >= 1) { $amount = -($debit + $credit); } else { $amount = 0; } $bank_id = $this->customermodel->getSingleFieldValue('bank_accounts', 'id', 'account_code', $acccode); $tblValues = array('reference' => $ref_id, 'date' => $date, 'reverse' => $reverse, 'account_code' => $acccode, 'account_id' => $bank_id, 'amount' => $amount, 'memo' => $memo, 'unpost' => 0); $str = $this->db->insert('unposted_journal', $tblValues); } } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function add_autojournal($temp_id, $qdate) { $count = $this->db->query("select * from auto_journal where reference='" . $temp_id . "'"); //$ref=$this->customermodel->getSingleFieldValue('temp_refs','reference','id',$temp_id); $ref = $this->accountingsmodel->get_reference_code(3); $str = 0; $insert_audit = 0; $date = $this->mastermodel->convdatformat($qdate); $tdat = date('Y-m-d'); $this->db->trans_begin(); foreach ($count->result_array() as $row) { $hid = $row['account_code']; $bank_id = $row['account_id']; $amount = $row['amount']; $memo = $row['memo']; if ($insert_audit == 0) { $trans_type = 3; // Type is journal entry.Refer table trans_type $insertvals = array('type' => $trans_type, 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id, 'user' => $_SESSION['userid'], 'date_trans' => $tdat, 'fiscal_year' => $fyear, 'gl_date' => $date ); $this->db->insert('audit_trail', $insValuesA); $insert_audit = 1; } $tblValues = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $hid, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('gl_trans', $tblValues); $ref = $this->customermodel->getSingleFieldValue('refs', 'reference', 'id', $ref_id); if ($bank_id >= 1) { $tblValues3 = array('trans_no' => $ref_id, 'bank_act' => $bank_id, 'ref' => $ref, 'trans_date' => $date, 'amount' => $amount); $query = $this->db->insert('bank_trans', $tblValues3); } $posted_val = array('unpost' => 1); $this->db->where('reference', $ref_id); $str = $this->db->update('unposted_journal', $posted_val); } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); echo $str; } } /* * *********************Get customer account id from cust_id************************** */ function get_acc_id($table, $tfield, $value) { $field = 'account_code'; $data = $this->db->query("select chart_master.account_code from chart_master inner join $table on $table.$tfield=chart_master.account_code where $table.id= " . $value); $result = $data->row(); if ($result) { return $result->$field; } else { return ""; } } function getbank_acc($type) { if ($type == 1) { $qry = "select employeeid as code,name as name,id as id,'$type' as type from staffpersonaldetails"; $data = $this->db->query($qry); } else if ($type == 2) { $qry = "select id as id, company_code as code,company_name as name,'$type' as type from insurance_company"; $data = $this->db->query($qry); } return $data; } function get_acc_sub($type) { if ($type == 1) { $qry = "select employeeid as code,name as name,id as id,'$type' as type from staffpersonaldetails"; $data = $this->db->query($qry); } else if ($type == 2) { $qry = "select id as id, company_code as code,company_name as name,'$type' as type from insurance_company"; $data = $this->db->query($qry); } else if ($type == 3) { $qry = "select c.id as id, c.code as code,IFNULL(cp.insured,cc.insured) as name,'$type' as type from customers c LEFT JOIN customer_corp_info cc ON c.id = cc.customer_id LEFT JOIN customer_personal_ind cp ON c.id = cp.customer_id "; $data = $this->db->query($qry); } return $data; } function getpayment_list($val, $date1 = "", $date2 = "") { $dat = explode("~", $val); if ($dat[0] == 1) { $acid = $this->customermodel->getSingleFieldValue('staffpersonaldetails', 'id', 'employeeid', $dat[1]); $qry = "select ps.quotation_ref , '' as eid , pspd.placing_slip_id as pid , ct.type_no as tno , ct.amount as tamount ,ct.alloc as calloc,pspd.premium,pspd.policy_fees ,pspd.brokerage,pspd.ispercentage ,pssh.percentage ,policynote.policyno,reference , ct.tran_date as tran_date ,cover, ps.remarks as description from placing_slip_stakeholders pssh join placing_slip_premiumdetails pspd on pspd.placing_slip_id=pssh.placing_slip_id INNER JOIN placing_slip ps on pspd.placing_slip_id=ps.id INNER JOIN placing_slip_refs psr ON psr.pslip_id= pspd.placing_slip_id and psr.type='issue' INNER JOIN agent_trans ct ON (ct.type_no=psr.id and ct.account= '$dat[1]') INNER JOIN refs on refs.id=ct.type_no inner join covers on covers.id=ps.cover_id left join policynote on ps.quotation_ref=policynote.quotation_ref where pssh.staffid=$acid"; if (!empty($date1) && !empty($date2)) { $qry.=" and ct.tran_date between '$date1' and '$date2' "; } $qry.=" group by ps.id"; $qry.=" UNION select e.endrefno as quotation_ref ,e.id as eid , '' as pid , ct.type_no as tno , ct.amount as tamount ,ct.alloc as calloc,e.premiumchange as premium,e.policyfeeschange as policy_fees ,e.brokerage,e.ispercentage ,pssh.percentage ,e.endpolicyno,reference , ct.tran_date as tran_date ,cover, e.remarks as description from endorsement e join policynote on policynote.id=e.policyid join placing_slip on placing_slip.quotation_ref= policynote.quotation_ref join placing_slip_stakeholders pssh on pssh.placing_slip_id=placing_slip.id join placing_slip_premiumdetails pspd on pspd.placing_slip_id=pssh.placing_slip_id INNER JOIN placing_slip_refs psr ON psr.pslip_id= e.id and psr.type='endorsement' INNER JOIN agent_trans ct ON (ct.type_no=psr.id and ct.account= '$dat[1]') INNER JOIN refs on refs.id=ct.type_no inner join covers on covers.id=placing_slip.cover_id where pssh.staffid=$acid "; if (!empty($date1) && !empty($date2)) { $qry.=" and ct.tran_date between '$date1' and '$date2' "; } $qry.=" group by e.id"; $qry .= " ORDER BY tran_date DESC"; $data = $this->db->query($qry); } else if ($dat[0] == 2) { $acid = $this->customermodel->getSingleFieldValue('insurance_company', 'id', 'company_code', $dat[1]); $qry = "select ps.quotation_ref ,'' as eid , pspd.placing_slip_id as pid , ct.type_no as tno , ct.amount as tamount ,ct.alloc as calloc, pspd.premium,pspd.policy_fees ,pspd.brokerage,pspd.ispercentage ,policynote.policyno,'' as endpolicyno,reference , ct.tran_date as tran_date ,cover, ps.remarks as description from placing_slip_premiumdetails pspd INNER JOIN placing_slip ps on pspd.placing_slip_id=ps.id INNER JOIN placing_slip_refs psr ON psr.pslip_id= pspd.placing_slip_id and psr.type='issue' INNER JOIN company_trans ct ON ct.type_no=psr.id INNER JOIN refs on refs.id=ct.type_no inner join covers on covers.id=ps.cover_id left join policynote on ps.quotation_ref=policynote.quotation_ref where pspd.insurance_company_id=$acid and amount like '-%'"; if (!empty($date1) && !empty($date2)) { $qry.=" and ct.tran_date between '$date1' and '$date2' "; } $qry.=" group by ps.id"; $qry.=" UNION select e.endrefno as quotation_ref ,e.id as eid , '' as pid , ct.type_no as tno , ct.amount as tamount ,ct.alloc as calloc,e.premiumchange as premium,e.policyfeeschange as policy_fees ,e.brokerage,e.ispercentage ,policynote.policyno ,e.endpolicyno,reference , ct.tran_date as tran_date ,cover, e.remarks as description from endorsement e join policynote on policynote.id=e.policyid join placing_slip on placing_slip.quotation_ref= policynote.quotation_ref join placing_slip_premiumdetails pspd on pspd.placing_slip_id=placing_slip.id INNER JOIN placing_slip_refs psr ON psr.pslip_id= e.id and psr.type='endorsement' INNER JOIN company_trans ct ON (ct.type_no=psr.id) INNER JOIN refs on refs.id=ct.type_no inner join covers on covers.id=placing_slip.cover_id where pspd.insurance_company_id=$acid and amount like '-%'"; if (!empty($date1) && !empty($date2)) { $qry.=" and ct.tran_date between '$date1' and '$date2' "; } $qry.=" group by e.id"; $qry .= " ORDER BY tran_date DESC"; $data = $this->db->query($qry); } else if ($dat[0] == 3) { $acid = $this->customermodel->getSingleFieldValue('insurance_company', 'id', 'company_code', $dat[1]); $qry = "select ps.quotation_ref ,'' as eid , pspd.placing_slip_id as pid , ct.type_no as tno , ct.amount as tamount ,ct.alloc as calloc, pspd.premium,pspd.policy_fees ,pspd.brokerage,pspd.ispercentage ,policynote.policyno,'' as endpolicyno,reference , ct.tran_date as tran_date ,cover, ps.remarks as description from placing_slip_premiumdetails pspd INNER JOIN placing_slip ps on pspd.placing_slip_id=ps.id INNER JOIN placing_slip_refs psr ON psr.pslip_id= pspd.placing_slip_id and psr.type='issue' INNER JOIN company_trans ct ON ct.type_no=psr.id INNER JOIN refs on refs.id=ct.type_no inner join covers on covers.id=ps.cover_id left join policynote on ps.quotation_ref=policynote.quotation_ref where pspd.insurance_company_id=$acid and ct.amount NOT like '-%' and pspd.payment_method = 'insurance_company'"; if (!empty($date1) && !empty($date2)) { $qry.=" and ct.tran_date between '$date1' and '$date2' "; } $qry.=" group by ps.id"; $qry.=" UNION select e.endrefno as quotation_ref ,e.id as eid , '' as pid , ct.type_no as tno , ct.amount as tamount ,ct.alloc as calloc,e.premiumchange as premium,e.policyfeeschange as policy_fees ,e.brokerage,e.ispercentage ,policynote.policyno ,e.endpolicyno,reference , ct.tran_date as tran_date ,cover, e.remarks as description from endorsement e join policynote on policynote.id=e.policyid join placing_slip on placing_slip.quotation_ref= policynote.quotation_ref join placing_slip_premiumdetails pspd on pspd.placing_slip_id=placing_slip.id INNER JOIN placing_slip_refs psr ON psr.pslip_id= e.id and psr.type='endorsement' INNER JOIN company_trans ct ON (ct.type_no=psr.id) INNER JOIN refs on refs.id=ct.type_no inner join covers on covers.id=placing_slip.cover_id where pspd.insurance_company_id=$acid and e.paymentoptions = 'insurance_company'"; if (!empty($date1) && !empty($date2)) { $qry.=" and ct.tran_date between '$date1' and '$date2' "; } $qry.=" group by e.id"; $qry .= " ORDER BY tran_date DESC"; $data = $this->db->query($qry); } return $data; } function postdatedcheque_unpostpayment() { $transact_type = $_POST['bank_trans_type']; $acccode1 = ""; $acccode = ""; $counter = $_POST['counter_check']; $date = date("Y-m-d"); $ref = ""; // $ref = $this->accountingsmodel->get_reference_code($_POST['pay_n_dep']); $this->db->trans_begin(); $trans_type = $_POST['pay_n_dep']; $str = 0; $update = $_POST['refid']; $method = 'cheque'; if ($update != 0) { $delete = $this->db->delete('unposted_pay_dep', array('reference' => $update)); $delete_ch = $this->db->delete('receipt_cheque', array('reference' => $update)); $ref_id = $update; } else { $insertvals = array('type' => $trans_type, 'reference' => $ref, 'tr_type' => 'post_dated_cheque'); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); } /* * ************************************************************************************** */ for ($i = 0; $i <= $counter; $i++) { if (isset($_POST['amount_' . $i])) { $hid = $_POST['hidedesc_' . $i]; $memo = "By Cheque"; $code = $_POST['code_' . $i]; $cre_amo = $_POST['amount_' . $i]; $amount = $cre_amo; if (ISSET($_POST['to_bank'])) { $pay_to = $_POST['to_bank']; } else { $pay_to = 0; } if ($trans_type == 1) { // For Bank Payment $sumamount = $_POST['sumamount']; //$pay_to=$_POST['payment_to']; } else if ($trans_type == 2) { // For Bank Deposit $sumamount = -($_POST['sumamount']); $pay_to = 0; } $tblValues = array( 'reference' => $ref_id, 'acc_id' => "", 'date' => $date, 'bank_acc' => "", 'memo' => $memo, 'amount' => $amount, 'account' => $code, 'unpost' => 0, 'type' => $trans_type, 'pay_to' => $pay_to, 'method' => $method); $str = $this->db->insert('unposted_pay_dep', $tblValues); } } if ($method == 'cheque') { $ch_date = $_POST['ch_date']; $ch_date = $this->mastermodel->convdatformat($ch_date); $bname = $_POST['bankname']; $ch_no = $_POST['ch_no']; $chdetails = array('reference' => $ref_id, 'ch_date' => $ch_date, 'bank_name' => $bname, 'cheque_no' => $ch_no); $str = $this->db->insert('receipt_cheque', $chdetails); } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function update_pdc($rid) { $trans_type = $_POST['pay_n_dep']; $ref = $this->accountingsmodel->get_reference_code($trans_type); $tblValues = array( 'reference' => $ref, 'type' => $_POST['pay_n_dep'], ); $this->db->where('id', $rid); $this->db->update('refs', $tblValues); $acccode1 = $_POST['bankacc']; $acccode = explode('~', $acccode1); if ($trans_type == 2) { $this->db->set('amount', '0-amount', FALSE); } $tblValues = array( 'acc_id' => $acccode[0], 'bank_acc' => $acccode[1], 'date' => $this->mastermodel->convdatformat($_POST['date']) ); $this->db->where('reference', $rid); $str = $this->db->update('unposted_pay_dep', $tblValues); } function bankaccount_unpostpayment() { $transact_type = $_POST['bank_trans_type']; $acccode1 = $_POST['bankacc']; $acccode = explode('~', $acccode1); $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $ref = $this->accountingsmodel->get_reference_code($_POST['pay_n_dep']); $this->db->trans_begin(); $type = explode('~', $acccode1); $trans_type = $_POST['pay_n_dep']; $str = 0; $counter = $_POST['counter_check']; $update = $_POST['refid']; if (isset($_POST['method'])) { $method = $_POST['method']; } else { $method = ''; } if ($update != 0) { $delete = $this->db->delete('unposted_pay_dep', array('reference' => $update)); $delete_ch = $this->db->delete('receipt_cheque', array('reference' => $update)); $delete_bn = $this->db->delete('payment_bank_info', array('reference' => $update)); $ref_id = $update; } else { $insertvals = array('type' => $trans_type, 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); } /* * ************************************************************************************** */ for ($i = 0; $i <= $counter; $i++) { if (isset($_POST['amount_' . $i])) { $hid = $_POST['hidedesc_' . $i]; $memo = $_POST['memo_' . $i]; $code = $_POST['code_' . $i]; if ($trans_type == 1) { // For Bank Payment $cre_amo = $_POST['amount_' . $i]; $amount = $cre_amo; $sumamount = $_POST['sumamount']; //$pay_to=$_POST['payment_to']; if (ISSET($_POST['to_bank'])) { $pay_to = $_POST['to_bank']; } else { $pay_to = 0; } } else if ($trans_type == 2) { // For Bank Deposit $cre_amo = $_POST['amount_' . $i]; $amount = 0 - $cre_amo; $sumamount = -($_POST['sumamount']); $pay_to = 0; } $tblValues = array('reference' => $ref_id, 'acc_id' => $acccode[0], 'date' => $date, 'bank_acc' => $acccode[1], 'memo' => $memo, 'amount' => $amount, 'account' => $code, 'unpost' => 0, 'type' => $trans_type, 'pay_to' => $pay_to, 'method' => $method); $str = $this->db->insert('unposted_pay_dep', $tblValues); } } if ($method == 'cheque') { $ch_date = $_POST['ch_date']; $ch_date = $this->mastermodel->convdatformat($ch_date); $bname = $_POST['bankname']; $ch_no = $_POST['ch_no']; $chdetails = array('reference' => $ref_id, 'ch_date' => $ch_date, 'bank_name' => $bname, 'cheque_no' => $ch_no); $str = $this->db->insert('receipt_cheque', $chdetails); } if ($method == 'bank') { $bank_details = array('reference' => $ref_id, 'bank_info' => $_POST['bank_info']); $this->db->insert('payment_bank_info', $bank_details); } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function bankaccount_payment($ref_id) { $count = $this->db->query("select * from unposted_pay_dep where unpost='0' and reference='" . $ref_id . "'"); $str = 0; $insert_audit = 0; $this->db->trans_begin(); $transact_type = 'other'; if ($transact_type == 'other') { $str = 0; $sumamount = 0; foreach ($count->result_array() as $row) { $date = $row['date']; $tdate = date('Y-m-d'); $acccode = $row['bank_acc']; $accid = $row['acc_id']; $amount = $row['amount']; $code = $row['account']; $memo = $row['memo']; $type = $row['type']; $method = $row['method']; $this->db->trans_begin(); /* * ******************************************Insert into Audit_trail***************************************************** */ if ($insert_audit == 0) { $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id, 'user' => $_SESSION['userid'], 'date_trans' => $tdate, 'fiscal_year' => $fyear, 'gl_date' => $date ); $this->db->insert('audit_trail', $insValuesA); $insert_audit = 1; } /* * ************************************************************************************** */ $tblValues = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount, 'method' => $method); $str = $this->db->insert('gl_trans', $tblValues); if (strncasecmp("IDL", $code, 3) == 0 || strncasecmp("CRP", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('customer_trans', $tblValuescu); } if (strncasecmp("EMP", $code, 3) == 0 || strncasecmp("AGE", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('agent_trans', $tblValuescu); } if (strncasecmp("INS", $code, 3) == 0) { $tblValuescu = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $code, 'memo' => $memo, 'amount' => $amount); $str = $this->db->insert('company_trans', $tblValuescu); } $sumamount+=$amount; } $insamount = 0 - $sumamount; $ref = $this->customermodel->getSingleFieldValue('refs', 'reference', 'id', $ref_id); $tblValues1 = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $acccode, 'memo' => $memo, 'amount' => $insamount, 'method' => $method); $str = $this->db->insert('gl_trans', $tblValues1); $tblValues3 = array('trans_no' => $ref_id, 'bank_act' => $accid, 'ref' => $ref, 'trans_date' => $date, 'amount' => $insamount, 'reconciled' => ''); $query = $this->db->insert('bank_trans', $tblValues3); $posted_val = array('unpost' => 1); $this->db->where('reference', $ref_id); $str = $this->db->update('unposted_pay_dep', $posted_val); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $query; } } else { $pay_amt = $_POST['pay_amt']; $memo1 = $_POST['memo1']; $type_no = $_POST['t_no']; $pid = $_POST['p_id']; $to_acc = $_POST['to_bank']; $prev_amt = $_POST['prev_amt']; $bank_details = explode('~', $to_acc); $acc_code = $bank_details[2]; $sum_amount = 0; if ($bank_details[0] == 1) { $table = 'agent_allocate'; $table1 = 'agent_trans'; } else if ($bank_details[0] == 2) { $table = 'company_allocate'; $table1 = 'company_trans'; } $insertvals = array('type' => '2', 'reference' => $_POST['ref']); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); /* * ******************************************Insert into Audit_trail***************************************************** */ $fyear = $this->fiscalyear(); $insValuesA = array( 'trans_no' => $ref_id, 'user' => $_SESSION['userid'], 'date_trans' => $tdat, 'fiscal_year' => $fyear, 'gl_date' => $date ); $this->db->insert('audit_trail', $insValuesA); /* * ************************************************************************************** */ for ($p = 0; $p < sizeof($type_no); $p++) { if ($pay_amt[$p] != '' || $pay_amt[$p] != 0) { $insertdata = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $acc_code, 'memo' => $memo1[$p], 'amount' => $pay_amt[$p], 'alloc' => $pay_amt[$p] ); $this->db->insert($table1, $insertdata); $fromac = $this->db->insert_id(); $data = array( 'from' => $fromac, 'pid' => $pid[$p], 'amount' => $pay_amt[$p] ); $this->db->insert($table, $data); $alloc = $prev_amt[$p] + $pay_amt[$p]; // // $this->db->query("update $table1 set alloc=$alloc where type_no='$type_no[$p]' and account='$acc_code'"); $sum_amount+=$pay_amt[$p]; } } $Tabledata = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $acc_code, 'memo' => '', 'amount' => $sum_amount ); $this->db->insert('gl_trans', $Tabledata); $Tabledata1 = array('type_no' => $ref_id, 'tran_date' => $date, 'account' => $acccode[1], 'memo' => '', 'amount' => -$sum_amount ); $this->db->insert('gl_trans', $Tabledata1); $bankdata = array('trans_no' => $ref_id, 'bank_act' => $acccode[0], 'ref' => $ref, 'trans_date' => $date, 'amount' => -$sum_amount, 'reconciled' => '' ); $data = $this->db->insert('bank_trans', $bankdata); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $data; } } } function fiscalyear() { $data = $this->db->query("select fyear from mycompany "); $result = $data->row(); if ($result) { return $result->fyear; } else { return ""; } } /* * *****************function to add auto journal******************* */ function add_auto_journal() { // $reverse=$_POST['reverse']; // $ref=$_POST['ref']; $title = $_POST['title']; $date = date('Y-m-d'); $counter = $_POST['counter_check']; $trans_type = 3; // Type is journal entry.Refer table trans_type $this->db->trans_begin(); $update = $_POST['refid']; if ($update != 0) { $delete = $this->db->delete('auto_journal', array('reference' => $update)); $ref_id = $update; } else { $insertvals = array('type' => $trans_type, 'reference' => $title); // inserting values to refs table $this->db->insert('temp_refs', $insertvals); $ref_id = $this->db->insert_id(); } /* * ******************Insert into temperory table unposted_journal****************** */ for ($i = 0; $i <= $counter; $i++) { if (isset($_POST['desc_' . $i])) { $hid = $_POST['hidedesc_' . $i]; $memo = $_POST['memo_' . $i]; $desc = $_POST['desc_' . $i]; $debit = $_POST['debit_' . $i]; $credit = $_POST['credit_' . $i]; if ($debit >= 1) { $amount = $debit + $credit; } else if ($credit >= 1) { $amount = -($debit + $credit); } else { $amount = 0; } $bank_id = $this->customermodel->getSingleFieldValue('bank_accounts', 'id', 'account_code', $hid); $tblValues = array('reference' => $ref_id, 'date' => $date, 'title' => $title, 'account_code' => $hid, 'account_id' => $bank_id, 'amount' => $amount, 'memo' => $memo); $str = $this->db->insert('auto_journal', $tblValues); } } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return $str; } } function get_transtype_count($type, $refid) { $res = $this->db->query("select count(*) as count from refs where refs.type= $type and refs.id <= $refid "); $cnt = ($res->row()->count); return $cnt; } function checkaccountisset($account, $table) { $query = $this->db->query('select * from ' . $table . ' t join fiscal_year fy ON t.fyear=fy.id where fy.closed=0'); $res = $query->row(); if (!isset($res->$account)) $baccount = 0; else $baccount = $res->$account; return $baccount; } function checkaccountsetting() { $query = $this->db->query('select * from subacc_setting'); $res = $query->num_rows(); return $res; } function get_subaccount_setting($field) { $query = $this->db->query("select $field from subacc_setting "); $res = $query->row()->$field; return $res; } function get_mainaccount_setting($field) { $query = $this->db->query("select $field from mainacc_setting "); $res = $query->row()->$field; return $res; } /* * ***********Report Functions****************** */ function get_chart_report() { $sql = "select IFNULL(sum(g.amount),0) as amount,cg.chart_group,cg.chart_type as ctype,ct.id as cid,c.account_name,c.account_code,ct.chart_types as chart_type from chart_master c INNER JOIN char_type ct ON ct.id=c.chart_type LEFT JOIN gl_trans g ON g.account=c.account_code join chart_group cg ON cg.chart_type=ct.id group by c.account_code,cg.chart_type order by ct.id"; $Q = $this->db->query($sql); if ($Q->num_rows() > 0) { foreach ($Q->result_array() as $row) { $data[] = $row; } } $Q->free_result(); return $data; } function get_journal_report($date1 = '', $date2 = '') { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); $sql = "select * from gl_trans g INNER JOIN refs r ON r.id=g.type_no where r.type=3 and g.tran_date between '$date1' and '$date2' order by g.type_no"; $Q = $this->db->query($sql); if ($Q->num_rows() > 0) { foreach ($Q->result_array() as $row) { $data[] = $row; } } $Q->free_result(); return $data; } function get_customer_balance($cus_id, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); if ($cus_id == 'all') $condition = "where"; else $condition = " where customers.id=$cus_id and "; $sql = "SELECT placing_slip_premiumdetails.premium , placing_slip.id as pid , IFNULL(sum(cust_allocate.amount),0) as amount , customers.id , placing_slip_refs.id as typeno , customer_trans.alloc as calloc , placing_slip.quotation_ref , refs.reference , customer_trans.tran_date , customer_trans.account FROM placing_slip_premiumdetails INNER JOIN placing_slip ON (placing_slip_premiumdetails.placing_slip_id = placing_slip.id) LEFT JOIN cust_allocate ON (placing_slip_premiumdetails.placing_slip_id = cust_allocate.pid) INNER JOIN placing_slip_refs ON (placing_slip_premiumdetails.placing_slip_id = placing_slip_refs.pslip_id) INNER JOIN refs ON (placing_slip_refs.id = refs.id) INNER JOIN customer_trans ON (customer_trans.type_no = placing_slip_refs.id) INNER JOIN customers ON (placing_slip.customer_id = customers.id) $condition customer_trans.tran_date between '$date1' and '$date2' GROUP BY placing_slip.id ORDER by customer_trans.account"; $Q = $this->db->query($sql); if ($Q->num_rows() > 0) { foreach ($Q->result_array() as $row) { $data[] = $row; } } $Q->free_result(); return $data; } function get_cust_allocate_bal($cus_code, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); if ($cus_code == 'all') $condition = "where"; else $condition = " where account='$cus_code' and "; $qry = "SELECT sum(amount) as all_amount,sum(alloc) as bal_amount, account FROM customer_trans $condition amount <0 and customer_trans.tran_date between '$date1' and '$date2' GROUP by customer_trans.account ORDER by customer_trans.account"; $res = $this->db->query($qry); if ($res->num_rows() > 0) { foreach ($res->result_array() as $row) { $data[] = $row; } } $res->free_result(); return $data; } function customer_list_rep() { $qry = "SELECT IFNULL(cp.insured,cc.insured) as name , c.id,c.code FROM customers c LEFT JOIN customer_personal_ind cp ON c.id=cp.customer_id LEFT JOIN customer_corp_info cc ON c.id=cc.customer_id "; $res = $this->db->query($qry); if ($res->num_rows() > 0) { foreach ($res->result_array() as $row) { $data[] = $row; } } $res->free_result(); return $data; } function get_customer_name($cus_code) { $data = "SELECT IFNULL(cp.insured,cc.insured) as name , c.id,c.code FROM customers c LEFT JOIN customer_personal_ind cp ON c.id=cp.customer_id LEFT JOIN customer_corp_info cc ON c.id=cc.customer_id where c.code='$cus_code' "; $res = $this->db->query($data); $result = $res->row(); if ($result) { return $result->name; } else { return ""; } } function bankname_list() { $qry = "SELECT * from bank_accounts "; $res = $this->db->query($qry); if ($res->num_rows() > 0) { foreach ($res->result_array() as $row) { $data[] = $row; } } $res->free_result(); return $data; } function get_bank_statement($bankid, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); $qry = "SELECT bt.trans_no, bt.trans_date,bt.amount,r.reference,tt.transaction FROM bank_trans bt LEFT JOIN refs r ON r.id=bt.trans_no LEFT JOIN transaction_types tt ON tt.id=r.type where bank_act=$bankid and trans_date between '$date1' and '$date2' ORDER BY bt.trans_no "; $res = $this->db->query($qry); if ($res->num_rows() > 0) { foreach ($res->result_array() as $row) { $data[] = $row; } } $res->free_result(); return $data; } function get_chart_trans_report($acc, $date1 = '', $date2 = '') { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); $sql = "SELECT gt.type_no, gt.tran_date,gt.amount,r.reference,tt.transaction_type FROM gl_trans gt LEFT JOIN refs r ON r.id=gt.type_no LEFT JOIN transaction_types tt ON tt.id=r.type where gt.account='$acc' and gt.tran_date between '$date1' and '$date2' ORDER BY gt.type_no "; $Q = $this->db->query($sql); if ($Q->num_rows() > 0) { foreach ($Q->result_array() as $row) { $data[] = $row; } } $Q->free_result(); return $data; } /* * *****************Report end****************** */ function acc_code_increment($where, $like) { $data = "SELECT IFNULL(max(account_code),0) as code FROM chart_master where parent=$where and account_code like '" . $like . "%'"; $res = $this->db->query($data); return $res->row()->code; } function acc_code_maxi_limit($value) { $data = "SELECT account_code FROM chart_master where account_code > '$value' and parent=0 order by account_code ASC limit 0,1"; $res = $this->db->query($data); if ($res->num_rows() > 0) { return $res->row()->account_code; } else { return 99999999999999999999; } } function Getchart_group($table, $pageno, $field, $value = "") { $limit = (($pageno - 1) * 10); $data = array(); if ($field == 'chart_type') { $res = $this->db->query("select * from $table t join char_type ct on ct.id=t.chart_type where ct.chart_types like '" . $value . "%' order by t.id limit " . $limit . "," . 10); } else { $res = $this->db->query("select * from $table where " . $field . " like '" . $value . "%' order by id limit " . $limit . "," . 10); } foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function showchart_group($pageno, $field, $value = "") { $limit = (($pageno - 1) * 10); $data = array(); $data1 = array(); $rescount = $this->db->query("select * from chart_master where " . $field . " like '" . $value . "%' and parent=0"); if ($field == 'chart_type') { $res = $this->db->query("select * from chart_master t join char_type ct on ct.id=t.chart_type where ct.chart_types like '" . $value . "%' and parent=0 order by t.id limit " . $limit . "," . 10); } else { $res = $this->db->query("select cg.account_code,cg.account_name,cg.id,cg.chart_type from chart_master cg join char_type ct on ct.id=cg.chart_type where " . $field . " like '" . $value . "%' and parent=0 order by ct.id,cg.account_code asc,cg.id desc limit " . $limit . "," . 10); } $data['totcount'] = $rescount->num_rows(); foreach ($res->result_array() as $row) { $data1[] = $row; } $data['result'] = $data1; return $data; } function addchart_group() { $acc_name = $this->input->post('acc_name'); $parent = $this->input->post('parent'); $acc_group = $this->input->post('acc_group'); $account_code = $this->input->post('account_code'); $tblValues = array('account_code' => $account_code, 'chart_type' => $acc_group, 'parent' => $parent, 'account_name' => $acc_name); $data = $this->db->insert('chart_master', $tblValues); return $data; } function addtransaction_code() { $code = $this->input->post('code'); $codefor = $this->input->post('codefor'); $type = $this->input->post('type'); $tblValues = array('code' => $code, 'type' => $type, 'trans' => $codefor); $data = $this->db->insert('transaction_code', $tblValues); return $data; } function addaccount_type() { $this->db->trans_begin(); $chart_code = $this->input->post('chart_code'); $group = $this->input->post('chart_account_group'); $tblValues = array('chart_types' => $chart_code, 'chart_group' => $group); $data = $this->db->insert('char_type', $tblValues); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return $data; } else { $this->db->trans_commit(); return $data; } } function countchart_group($table, $field, $value = "") { if ($field == 'chart_type') { $res = $this->db->query("select * from $table t join char_type ct on ct.id=t.chart_type where ct.chart_types like '" . $value . "%' "); } else { $res = $this->db->query("select * from " . $table . " where " . $field . " like '" . $value . "%'"); } return $res->num_rows(); } function updatechart_group() { $acc_name = $this->input->post('acc_name'); $parent = $this->input->post('parent'); $acc_group = $this->input->post('acc_group'); $account_code = $this->input->post('account_code'); $id = $this->input->post('id'); $tblValues = array('account_code' => $account_code, 'chart_type' => $acc_group, 'parent' => $parent, 'account_name' => $acc_name); $this->db->where('id', $id); $res = $this->db->update('chart_master', $tblValues); $tblValues = array('chart_type' => $acc_group); $this->db->where('parent', $id); $this->db->update('chart_master', $tblValues); return $res; } function updatetrans_code() { $id = $this->input->post('id'); $code = $this->input->post('code'); $codefor = $this->input->post('codefor'); $type = $this->input->post('type'); $this->db->where('id', $id); $tblValues = array('code' => $code, 'type' => $type, 'trans' => $codefor); $res = $this->db->update('transaction_code', $tblValues); return $res; } function updateaccount_type() { $id = $this->input->post('id'); $chart_types = $this->input->post('chart_types'); $group = $this->input->post('chart_account_group'); $this->db->where('id', $id); $tblValues = array('chart_types' => $chart_types, 'chart_group' => $group); $res = $this->db->update('char_type', $tblValues); return $res; } function deletechart_group($fld, $table, $id) { $qry = $this->db->query("select count(*) as count from chart_master where parent='$id'"); $query = $qry->row()->count; if ($query == 0) { $res = $this->db->delete($table, array($fld => $id)); if ($res > 0) { return 1; } else { return 0; } } else { return 0; } } function unpost_customerpayment($pageno, $type, $post) { if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select * from bank_to_bank where type='$post' limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $res = $this->db->query("select * from bank_to_bank "); return $res->num_rows(); } } function checktrans_codeset($val) { $query = $this->db->query("select * from transaction_code where trans=$val"); $res = $query->num_rows(); return $res; } function get_reference($transaction_code) { $length = strlen($transaction_code) + 1; $data = "SELECT MAX(CONVERT(SUBSTRING(reference," . $length . "),UNSIGNED INTEGER) ) as code FROM refs where reference like '" . $transaction_code . "%' "; $res = $this->db->query($data); if ($res->num_rows() > 0) { $code = $res->row()->code; $ref = $code + 1; } else { $ref = 1; } return $transaction_code . $ref; } function get_reference_code($val) { $transaction_code = $this->customermodel->getSingleFieldValue('transaction_code', 'code', 'trans', $val) . '/'; $year = date("Y"); $transaction_code.= $year . '/'; $reference = $this->get_reference($transaction_code); return $reference; } function add_reverse_posted_journal() { $str = 0; $reverse = $_POST['reverse']; $ref = $this->accountingsmodel->get_reference_code(3); $qdate = $_POST['date']; $date = $this->mastermodel->convdatformat($qdate); $counter = $_POST['counter_check']; $trans_type = 3; // Type is journal entry.Refer table trans_type $this->db->trans_begin(); if ($reverse == 'true') { $insertvals = array('type' => $trans_type, 'reference' => $ref); // inserting values to refs table $this->db->insert('refs', $insertvals); $ref_id = $this->db->insert_id(); /* * ******************Insert into temperory table unposted_journal****************** */ for ($i = 0; $i <= $counter; $i++) { if (isset($_POST['desc_' . $i])) { $hid = $_POST['hidedesc_' . $i]; $memo = $_POST['memo_' . $i]; $desc = $_POST['desc_' . $i]; $debit = $_POST['debit_' . $i]; $credit = $_POST['credit_' . $i]; if ($debit >= 1) { $amount = 0 - ($debit + $credit); } else if ($credit >= 1) { $amount = $debit + $credit; } else { $amount = 0; } $bank_id = $this->customermodel->getSingleFieldValue('bank_accounts', 'id', 'account_code', $hid); $tblValues = array('reference' => $ref_id, 'date' => $date, 'reverse' => 'false', 'account_code' => $hid, 'account_id' => $bank_id, 'amount' => $amount, 'memo' => $memo, 'unpost' => 0); $str = $this->db->insert('unposted_journal', $tblValues); } } } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return 1; } } function get_emp_paid_amount($val, $table) { $query = $this->db->query("select amount from $table where id='$val'"); $res = $query->row()->amount; return $res; } function get_emp_alloc_amount($val, $table) { $query = $this->db->query("select alloc from $table where id='$val'"); $res = $query->row()->alloc; return $res; } function addemployeeallocate() { $ptype = $_POST['t_no']; $pid = $_POST['p_id']; $eid = $_POST['e_id']; $alloc_amt = $_POST['pay_amt']; $pre_alloc = $_POST['prev_amt']; $account_code = $_POST['account_code']; $from = $_POST['fromid']; $allocate = $_POST['alloc_table']; $trans = $_POST['trans_table']; $bal_allocate = $_POST['bal_allocate']; $this->db->trans_begin(); for ($p = 0; $p < sizeof($pid); $p++) { $type = (empty($eid[$p])) ? 'issue' : 'endorsement'; if ($type == 'issue') { $xpid = $pid[$p]; } else $xpid = $eid[$p]; if ($alloc_amt[$p] != '' || $alloc_amt[$p] != 0) { $data = array( 'from' => $from, 'pid' => $xpid, 'amount' => $alloc_amt[$p], 'type' => $type ); $this->db->insert($allocate, $data); $bal_allocate+=$alloc_amt[$p]; $alloc = $pre_alloc[$p] + $alloc_amt[$p]; $pretype = $ptype[$p]; $insdata = array('alloc' => $alloc); $this->db->where('type_no', $pretype); $this->db->where('account', $account_code); $this->db->update($trans, $insdata); // $this->db->query("update $trans set alloc=$alloc where type_no=$pretype and account='$account_code'"); } } $insalloc = array('alloc' => $bal_allocate); $this->db->where('id', $from); $this->db->update($trans, $insalloc); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); } else { $this->db->trans_commit(); return true; } } function addcommissionallocate() { $ptype = $_POST['t_no']; $pid = $_POST['p_id']; $eid = $_POST['e_id']; $alloc_amt = $_POST['pay_amt']; $pre_alloc = $_POST['prev_amt']; $account_code = $_POST['account_code']; $from = $_POST['fromid']; $allocate = $_POST['alloc_table']; $trans = $_POST['trans_table']; $bal_allocate = $_POST['bal_allocate']; $this->db->trans_begin(); for ($p = 0; $p < sizeof($pid); $p++) { $type = (empty($eid[$p])) ? 'issue' : 'endorsement'; if ($type == 'issue') { $xpid = $pid[$p]; } else { $xpid = $eid[$p]; $endmode = $this->customermodel->getSingleFieldValue('endorsement', 'mode', 'id', $xpid); } if ($alloc_amt[$p] != '' || $alloc_amt[$p] != 0) { $data = array( 'from' => $from, 'pid' => $xpid, 'amount' => $alloc_amt[$p], 'type' => $type ); $this->db->insert($allocate, $data); $alloc = $pre_alloc[$p] + $alloc_amt[$p]; $pretype = $ptype[$p]; $insdata = array('alloc' => $alloc); $this->db->where('type_no', $pretype); $this->db->where('account', $account_code); $this->db->update($trans, $insdata); if ($endmode == 'Deduction') $alloc_amt[$p] = 0 - $alloc_amt[$p]; $bal_allocate+=$alloc_amt[$p]; // $this->db->query("update $trans set alloc=$alloc where type_no=$pretype and account='$account_code'"); } } $insalloc = array('alloc' => $bal_allocate); $this->db->where('id', $from); $this->db->update($trans, $insalloc); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); } else { $this->db->trans_commit(); return true; } } function search_autojournal($searchopt, $searchtext = "", $page = "", $per_page = "", $count) { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($count == 'true') { $sql = "select distinct(aj.reference) as id, r.reference as ref,aj.title,aj.date from auto_journal aj JOIN temp_refs r ON r.id=aj.reference where r.type='7' and $searchopt like '$searchtext%'"; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select distinct(aj.reference) as id, r.reference as ref,aj.title,aj.date from auto_journal aj JOIN temp_refs r ON r.id=aj.reference where r.type='7' and $searchopt like '$searchtext%' limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_unposted_journal($searchopt, $searchtext = "", $page = "", $per_page = "", $count) { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($count == 'true') { $sql = "select distinct(t.reference) as id, r.reference,t.date as tran_date from unposted_journal t JOIN refs r ON r.id=t.reference where r.type='7' and t.unpost='0' and $searchopt like '$searchtext%'"; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select distinct(t.reference) as id, r.reference,t.date as tran_date from unposted_journal t JOIN refs r ON r.id=t.reference where r.type='7' and t.unpost='0' and $searchopt like '$searchtext%' limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_posted_journal($searchopt, $searchtext = "", $page = "", $per_page = "", $count) { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($count == 'true') { $sql = "select distinct(r.id) from gl_trans bt JOIN refs r ON r.id=bt.type_no where r.type='7' and $searchopt like '$searchtext%'"; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select distinct(r.id) as id, r.reference,bt.tran_date from gl_trans bt JOIN refs r ON r.id=bt.type_no where r.type='7' and $searchopt like '$searchtext%' limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_bank_transfer($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "", $post = "") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($count == 'true') { $sql = "select distinct(bank_to_bank.id),bank_to_bank.ref,amount,trans_date,memo,reference,bank_to_bank.type, ba1.bank_account_name as from_b,ba2.bank_account_name as to_b from bank_to_bank INNER JOIN bank_accounts ba1 ON (bank_to_bank.from_b = ba1.id) INNER JOIN bank_accounts ba2 ON (bank_to_bank.to_b = ba2.id) join refs on refs.id= bank_to_bank.ref where bank_to_bank.type='$post' and $searchopt like '$searchtext%'"; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select distinct(bank_to_bank.id),bank_to_bank.ref,amount,trans_date,memo,reference,bank_to_bank.type, ba1.bank_account_name as from_b,ba2.bank_account_name as to_b from bank_to_bank INNER JOIN bank_accounts ba1 ON (bank_to_bank.from_b = ba1.id) INNER JOIN bank_accounts ba2 ON (bank_to_bank.to_b = ba2.id) join refs on refs.id= bank_to_bank.ref where bank_to_bank.type='$post' and $searchopt like '$searchtext%' limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_posted_bank_deposit($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($searchopt == 'tran_date') { $searchtext = $this->mastermodel->convdatformat($searchtext); } else if ($searchopt == 'reference') { $searchopt = 'r.reference'; } else if ($searchopt == 'amount') { $searchtext = 0 - $searchtext; } if ($count == 'true') { $sql = "select r.reference, bt.type_no as trans_no,bt.tran_date as trans_date,bt.amount as amount,cm.account_code,cm.account_name, ch_date,cheque_no FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` join chart_master cm on cm.account_code=bt.account LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id WHERE r.type = '2' and $searchopt like '$searchtext%' group by r.reference having amount <0 "; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select r.reference, bt.type_no as trans_no,bt.tran_date as trans_date,bt.amount as amount,cm.account_code,cm.account_name, ch_date,cheque_no FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` join chart_master cm on cm.account_code=bt.account LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id WHERE r.type = '2' and $searchopt like '$searchtext%' group by r.reference having amount <0 order by r.id desc limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_unposted_pdc($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "", $tr_type = "other") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($searchopt == 'date') { $searchtext = $this->mastermodel->convdatformat($searchtext); } else if ($searchopt == 'amount') { $searchtext = 0 - $searchtext; } if ($count == 'true') { $sql = "select t.reference as id,r.type,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account where t.unpost='0' and r.tr_type='$tr_type' and $searchopt like '$searchtext%' "; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select t.reference as id,r.type,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account where t.unpost='0' and r.tr_type='$tr_type' and $searchopt like '$searchtext%' order by r.id desc limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_posted_pdc($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "", $tr_type = "other") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($searchopt == 'date') { $searchtext = $this->mastermodel->convdatformat($searchtext); } else if ($searchopt == 'amount') { $searchtext = 0 - $searchtext; } if ($count == 'true') { $sql = "select * ,fy.closed as fyclosed ,r.id as id,r.type from bank_trans bt JOIN refs r ON r.id=bt.trans_no JOIN transaction_types tt ON tt.id=r.type JOIN audit_trail au ON au.trans_no=r.id JOIN fiscal_year fy ON fy.id=au.fiscal_year where r.tr_type='post_dated_cheque' and $searchopt like '$searchtext%' "; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select * ,fy.closed as fyclosed ,r.id as id,r.type from bank_trans bt JOIN refs r ON r.id=bt.trans_no JOIN transaction_types tt ON tt.id=r.type JOIN audit_trail au ON au.trans_no=r.id JOIN fiscal_year fy ON fy.id=au.fiscal_year where r.tr_type='post_dated_cheque' and $searchopt like '$searchtext%' order by r.id desc limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_unposted_bank_deposit($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "", $tr_type = "other") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($searchopt == 'date') { $searchtext = $this->mastermodel->convdatformat($searchtext); } else if ($searchopt == 'amount') { $searchtext = 0 - $searchtext; } if ($count == 'true') { $sql = "select t.reference as id,ch_date,cheque_no, r.type,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id where r.type='2' and t.unpost='0' and r.tr_type='$tr_type' and $searchopt like '$searchtext%' group by r.reference having amount <0 "; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select t.reference as id,ch_date,cheque_no, r.type,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id where r.type='2' and t.unpost='0' and r.tr_type='$tr_type' and $searchopt like '$searchtext%' group by r.reference having amount <0 order by r.id desc limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_posted_bank_payment($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($searchopt == 'tran_date') { $searchtext = $this->mastermodel->convdatformat($searchtext); } if ($count == 'true') { $sql = "select r.reference,ch_date,cheque_no, bt.type_no as trans_no,bt.tran_date as trans_date,bt.amount as amount,cm.account_code,cm.account_name FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id join chart_master cm on cm.account_code=bt.account WHERE r.type = '1' and $searchopt like '$searchtext%' group by r.reference having amount >0 "; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select r.reference,ch_date,cheque_no, bt.type_no as trans_no,bt.tran_date as trans_date,bt.amount as amount,cm.account_code,cm.account_name FROM `gl_trans` bt JOIN refs r ON r.id = bt.`type_no` LEFT JOIN receipt_cheque ON receipt_cheque.reference = r.id join chart_master cm on cm.account_code=bt.account WHERE r.type = '1' and $searchopt like '$searchtext%' group by r.reference having amount >0 order by r.id desc limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_unposted_bank_payment($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "", $tr_type = "other") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($searchopt == 'date') { $searchtext = $this->mastermodel->convdatformat($searchtext); } if ($count == 'true') { $sql = "select t.reference as id,r.type, ch_date,cheque_no, t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account left join receipt_cheque on receipt_cheque.reference=r.id where r.type='1' and r.tr_type='$tr_type' and t.unpost='0' and $searchopt like '$searchtext%' group by r.reference having amount >0 "; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select t.reference as id,r.type, ch_date,cheque_no ,t.bank_acc,t.acc_id,cm.account_name,cm.account_code,t.amount as amount, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference join chart_master cm on cm.account_code=t.account join receipt_cheque on receipt_cheque.reference=r.id where r.type='1' and r.tr_type='$tr_type' and t.unpost='0' and $searchopt like '$searchtext%' group by r.reference having amount >0 order by r.id desc limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_unposted_customer_payment($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($count == 'true') { $sql = "select distinct(t.reference) as id,t.bank_acc,t.acc_id,ch_date, cheque_no, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference left join receipt_cheque on receipt_cheque.reference = r.id where r.type='2' and t.unpost='0' and $searchopt like '$searchtext%'"; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select distinct(t.reference) as id,t.bank_acc,t.acc_id,ch_date, cheque_no, r.reference,t.date as tran_date from unposted_pay_dep t JOIN refs r ON r.id=t.reference left join receipt_cheque on receipt_cheque.reference = r.id where r.type='2' and t.unpost='0' and $searchopt like '$searchtext%' limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function search_posted_customer_payment($searchopt, $searchtext = "", $page = "", $per_page = "", $count = "") { $data = array(); if ($page) $start = ($page - 1) * $per_page; else $start = 0; if ($count == 'true') { $sql = "select * from customer_trans c INNER JOIN bank_trans b ON c.type_no=b.trans_no left join receipt_cheque on receipt_cheque.reference = b.trans_no where c.amount like'-%' and $searchopt like '$searchtext%'"; $data['results'] = $this->db->query($sql); return $data['results']->num_rows(); } else { $sql = "select distinct(c.id) as id,c.tran_date,c.amount,c.account,c.memo, ch_date,cheque_no, c.alloc, b.ref as reference, b.trans_no from customer_trans c INNER JOIN bank_trans b ON c.type_no=b.trans_no left join receipt_cheque on receipt_cheque.reference = b.trans_no where c.amount like'-%' and $searchopt like '$searchtext%' limit $start,$per_page"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } } function custom_allocat($table, $pageno, $field, $type, $all = false) { $limit = (($pageno - 1) * 10); $data = array(); $allocated = ''; if (!$all) { $allocated = "and c.alloc<>-c.amount"; } $allocated .= " and " . $field . " like'%" . $type . "%'"; $res = $this->db->query("select distinct(c.id) as id,c.alloc,c.tran_date,c.amount,c.account,account_name,c.memo,b.bank_act,refs.reference from $table c INNER JOIN bank_trans b ON c.type_no=b.trans_no INNER JOIN refs ON c.type_no=refs.id INNER JOIN chart_master ON chart_master.account_code=c.account where c.amount like '-%' $allocated order by c.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function countcust_alloc_val($table, $field, $type, $all = false) { $allocated = ''; if (!$all) { $allocated = "and c.alloc<>-c.amount"; } $allocated .= " and " . $field . " like'%" . $type . "%'"; $res = $this->db->query("select * from $table c INNER JOIN bank_trans b ON c.type_no=b.trans_no INNER JOIN chart_master ON chart_master.account_code=c.account where c.alloc<>-c.amount $allocated"); return $res->num_rows(); } function emplo_allocat($table, $pageno, $field, $type) { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select a.id,a.alloc,a.tran_date,a.amount,a.account,a.memo,account_name,refs.reference from $table a INNER JOIN chart_master ON chart_master.account_code=a.account INNER JOIN refs ON a.type_no=refs.id where a.alloc<>a.amount and a.amount>0 and " . $field . " like'" . $type . "%' order by a.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function countemp_alloc_val($table, $field, $type) { $res = $this->db->query("select * from $table a INNER JOIN chart_master ON chart_master.account_code=a.account where a.alloc<>a.amount and a.amount>0 and " . $field . " like'" . $type . "%'"); return $res->num_rows(); } function commission_allocat($table, $pageno, $field, $type) { $limit = (($pageno - 1) * 10); $data = array(); $res = $this->db->query("select distinct(c.id) as id,c.alloc,c.tran_date,c.amount,c.account,account_name,c.memo,b.bank_act,refs.reference from $table c INNER JOIN bank_trans b ON c.type_no=b.trans_no INNER JOIN refs ON c.type_no=refs.id INNER JOIN chart_master ON chart_master.account_code=c.account where c.alloc<>-c.amount and c.amount like '-%' and " . $field . " like'" . $type . "%' order by c.id desc limit " . $limit . "," . 10); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } function countcommission_alloc_val($table, $field, $type) { $res = $this->db->query("select distinct(c.id) as id,c.alloc,c.tran_date,c.amount,c.account,account_name,c.memo,b.bank_act,refs.reference from $table c INNER JOIN bank_trans b ON c.type_no=b.trans_no INNER JOIN refs ON c.type_no=refs.id INNER JOIN chart_master ON chart_master.account_code=c.account where c.alloc<>-c.amount and c.amount like '-%' and " . $field . " like'" . $type . "%'"); return $res->num_rows(); } function get_receipt_voucher($id) { $data = array(); $sql = " SELECT cv.cover , cc.address , cc.postbox , c.type , ca.amount as alloc_amt , c.id as cid , cty.cityname , ctry.countryname , ctry.currencyname , ctry.currencycode , pspd.fromdate , pspd.todate , ic.company_name , gt.method , ct.type_no FROM customer_trans ct JOIN cust_allocate ca ON ct.id=ca.from JOIN gl_trans gt ON gt.type_no=ct.type_no INNER JOIN placing_slip ps ON ps.id=ca.pid JOIN placing_slip_premiumdetails pspd ON pspd.placing_slip_id=ps.id JOIN insurance_company ic ON ic.id=pspd.insurance_company_id LEFT JOIN covers cv ON cv.id=ps.cover_id JOIN customers c ON c.id=ps.customer_id JOIN customer_contact cc ON cc.customer_id=c.id JOIN city cty ON cty.id=cc.city JOIN country ctry ON ctry.id=cc.country where ct.id='$id' and ct.account=gt.account"; $Q = $this->db->query($sql); if ($Q->num_rows() > 0) { foreach ($Q->result_array() as $row) { $data[] = $row; } } $Q->free_result(); return $data; } function generate_rv($rid) { $res = $this->db->query("SELECT * FROM gl_trans gt JOIN refs r ON r.id=gt.type_no WHERE amount<0 and gt.type_no=$rid"); return $res->result_array(); } function generate_pv($rid) { $res = $this->db->query("SELECT * FROM gl_trans gt JOIN refs r ON r.id=gt.type_no WHERE amount>0 and gt.type_no=$rid"); return $res->result_array(); } function show_trans_pslip($refid) { $res = $this->db->query("SELECT * FROM placing_slip_refs p JOIN gl_trans gt ON p.id=gt.type_no JOIN refs r ON p.id=r.id WHERE r.id='$refid' group by gt.id"); return $res->result_array(); } function get_ref_pslip($pid, $type) { $res = $this->db->query("SELECT r.id FROM placing_slip_refs p JOIN refs r ON p.id=r.id WHERE r.type='$type' and p.pslip_id='$pid' "); return $res->row()->id; } function search_trans($pageno, $type, $ref, $rtype, $from = '', $to = '') { if ($rtype != 'all') { $where = "r.type=$rtype "; } else { $where = "gt.type_no != '' "; } if ($from != '') $from = $this->mastermodel->convdatformat($from); if ($to != '') $to = $this->mastermodel->convdatformat($to); if ($type == 'data') { $limit = (($pageno - 1) * 10); $data = array(); $sql = " select fy.closed, sum(gt.amount) as amount,gt.memo,tt.transaction, gt.type_no as id,r.type, r.reference as ref,gt.tran_date from gl_trans gt JOIN refs r ON r.id=gt.type_no JOIN transaction_types tt ON tt.id=r.type JOIN audit_trail au ON au.trans_no=gt.type_no JOIN fiscal_year fy ON fy.id=au.fiscal_year where $where "; if ($ref != '' && $ref != ' ') $sql .= "and r.reference like '$ref%' "; if ($from != '') $sql.=" and gt.tran_date >= '$from '"; if ($to != '') $sql.=" and gt.tran_date <= '$to'"; $sql.="and gt.amount>0 group by gt.type_no order by gt.type_no desc limit " . $limit . "," . 10; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $data[] = $row; } return $data; } else if ($type == 'count') { $sql = "select fy.closed, sum(gt.amount) as amount,gt.memo,tt.transaction , gt.type_no as id,r.type, r.reference as ref,gt.tran_date from gl_trans gt JOIN refs r ON r.id=gt.type_no JOIN transaction_types tt ON tt.id=r.type JOIN audit_trail au ON au.trans_no=gt.type_no JOIN fiscal_year fy ON fy.id=au.fiscal_year where $where "; if ($ref != '' && $ref != ' ') $sql .= "and r.reference like '$ref%' "; if ($from != '') $sql.=" and gt.tran_date >= '$from'"; if ($to != '') $sql.=" and gt.tran_date <= '$to'"; $sql.="and gt.amount>0 group by gt.type_no"; $res = $this->db->query($sql); return $res->num_rows(); } } function get_main_trail_balance($date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); $qry = "SELECT `chart_master`.`account_name` as main_head, `cm2`.`account_name` as sub_head, SUM(If(`gl_trans`.tran_date> '$date1' AND `gl_trans`.tran_date < '$date2',IF(`gl_trans`.`amount` < 0 , `gl_trans`.`amount` , 0),0)) AS credit, SUM(if(`gl_trans`.tran_date> '$date1' AND `gl_trans`.tran_date < '$date2',IF(`gl_trans`.`amount` > 0 , `gl_trans`.`amount` , 0),0)) AS debit, sum(if(`gl_trans`.tran_date< '$date1',if(`gl_trans`.amount<0,`gl_trans`.amount,0),0)) as opencredit, sum(if(`gl_trans`.tran_date< '$date1',if(`gl_trans`.amount>0,`gl_trans`.amount,0),0)) as opendebit, IF(chart_master.parent=0,chart_master.account_name,cm2.account_name) as account_name , IF(chart_master.parent=0,chart_master.account_code,cm2.account_code) as account, IF(chart_master.parent=0,chart_master.id,cm2.id) as cgid FROM `gl_trans` INNER JOIN `chart_master` ON (`gl_trans`.`account` = `chart_master`.`account_code`) LEFT JOIN `chart_master` AS `cm2` ON (`chart_master`.`parent` = `cm2`.`id`) GROUP BY cgid order by cgid"; $res = $this->db->query($qry); if ($res->num_rows() > 0) { foreach ($res->result_array() as $row) { $data[$row['cgid']][] = $row; } } $res->free_result(); return $data; } function get_trail_balance($date1, $date2, $mainacc = "", $rangefrom = "", $rangeto = "") { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); $cust = ""; if (!empty($mainacc) && !empty($rangefrom) && !empty($rangeto)) { $cust = "where cm.parent='$mainacc' and cm.account_code between '$rangefrom' and '$rangeto'"; } if (!empty($mainacc) && empty($rangefrom) && empty($rangeto)) { $cust = "where cm.parent='$mainacc'"; } if (!empty($rangefrom) && !empty($rangeto)) { $cust = "where cm.account_code between '$rangefrom' and '$rangeto'"; } $qry = "SELECT sum(if(gt.tran_date>='$date1' and gt.tran_date <='$date2',if(gt.amount<0,amount,0),0))as credit, sum(if(gt.tran_date>='$date1' and gt.tran_date <='$date2',if(gt.amount>0,amount,0),0))as debit, sum(if(gt.tran_date< '$date1',if(gt.amount<0,gt.amount,0),0)) as opencredit, sum(if(gt.tran_date< '$date1',if(gt.amount>0,gt.amount,0),0)) as opendebit, cm.account_code as account,cm.account_name FROM chart_master cm left join gl_trans gt ON gt.account=cm.account_code $cust group by cm.account_code"; $res = $this->db->query($qry); if ($res->num_rows() > 0) { foreach ($res->result_array() as $row) { $data[] = $row; } } $res->free_result(); return $data; } function get_sub_gl($from, $to, $mainacc, $rangefrom, $rangeto) { $data = array(); $date1 = $this->mastermodel->convdatformat($from); $date2 = $this->mastermodel->convdatformat($to); $cust = ""; if (!empty($mainacc) && !empty($rangefrom) && !empty($rangeto)) { $cust = "where cm.parent='$mainacc' and cm.account_code between '$rangefrom' and '$rangeto'"; } if (!empty($mainacc) && empty($rangefrom) && empty($rangeto)) { $cust = "where cm.parent='$mainacc'"; } if (!empty($rangefrom) && !empty($rangeto)) { $cust = "where cm.account_code between '$rangefrom' and '$rangeto'"; } $qry1 = "SELECT if(gt.tran_date>='$date1' and gt.tran_date <='$date2',if(gt.amount<0,gt.amount,0),if(glt.tran_date>='$date1' and glt.tran_date <='$date2',if(glt.amount<0,glt.amount,0),0))as credit, if(gt.tran_date>='$date1' and gt.tran_date <='$date2',if(gt.amount>0,gt.amount,0),if(glt.tran_date>='$date1' and glt.tran_date <='$date2',if(glt.amount>0,glt.amount,0),0))as debit, ifnull(gt.tran_date,glt.tran_date) as tran_date, ifnull(gt.memo,glt.memo) as memo, ifnull(r1.reference,r2.reference) as reference, cm.account_name ,cm.account_code as account,cm.id as cgid FROM chart_master cm left join chart_master cp on cp.parent=cm.id left join gl_trans gt ON gt.account=cp.account_code left join gl_trans glt ON glt.account=cm.account_code left join refs r1 on r1.id= gt.type_no left join refs r2 on r2.id= glt.type_no join char_type ct on ct.id=cm.chart_type $cust having reference!='' order by ct.id,cm.account_code,tran_date,LEFT(r1.reference,2),LEFT(r2.reference,2),RIGHT(r1.reference ,2),RIGHT(r2.reference,2),reference asc"; $res = $this->db->query($qry1); $data['transdet'] = $res->result_array(); return $data; } /* get balance sheet */ function get_balance_sheet($fromdate, $todate) { $fromdate = $this->mastermodel->convertdateformat($fromdate); $todate = $this->mastermodel->convertdateformat($todate); $data = array(); $this->db->select('*,SUM(amount) as account_amount,refs.type as type, chart_types as chart_type,chart_master.chart_type as chart_id', false); $this->db->from('refs'); $this->db->join('gl_trans', 'gl_trans.type_no=refs.id'); $this->db->join('chart_master', 'chart_master.account_code=gl_trans.account'); $this->db->join('char_type', 'chart_master.chart_type=char_type.id'); if ($fromdate != 0) $this->db->where('tran_date >=', $fromdate); if ($todate != 0) $this->db->where('tran_date <=', $todate); $this->db->group_by('account'); $this->db->order_by('account'); $Q = $this->db->get(); if ($Q->num_rows() > 0) { foreach ($Q->result_array() as $row) { $data[$row['account']] = $row; } } $Q->free_result(); return $data; } function get_main_gl($rangefrom, $rangeto, $fromdate, $todate) { $data = array(); $date1 = $this->mastermodel->convdatformat($fromdate); $date2 = $this->mastermodel->convdatformat($todate); $qry1 = "SELECT if(gt.tran_date>='$date1' and gt.tran_date <='$date2',if(gt.amount<0,sum(gt.amount),0),if(glt.tran_date>='$date1' and glt.tran_date <='$date2',if(glt.amount<0,sum(glt.amount),0),0))as credit, if(gt.tran_date>='$date1' and gt.tran_date <='$date2',if(gt.amount>0,sum(gt.amount),0),if(glt.tran_date>='$date1' and glt.tran_date <='$date2',if(glt.amount>0,sum(glt.amount),0),0))as debit, ifnull(gt.tran_date,glt.tran_date) as tran_date, ifnull(gt.memo,glt.memo) as memo, ifnull(r1.reference,r2.reference) as reference, cm.account_name ,cm.account_code as account,cm.id as cgid FROM chart_master cm left join chart_master cp on cp.parent=cm.id left join gl_trans gt ON gt.account=cp.account_code left join gl_trans glt ON glt.account=cm.account_code left join refs r1 on r1.id= gt.type_no left join refs r2 on r2.id= glt.type_no join char_type ct on ct.id=cm.chart_type where cm.parent=0 and cm.account_code between '$rangefrom' and '$rangeto' group by reference order by ct.id,cm.account_code,tran_date,LEFT(r1.reference,2),LEFT(r2.reference,2),RIGHT(r1.reference ,2),RIGHT(r2.reference,2),reference asc"; $res = $this->db->query($qry1); $data['transdet'] = $res->result_array(); return $data; } function get_ageing_report($date, $accval, $type, $cid) { $data = array(); $acccode = $accval; $acctype = $type; $date = $this->mastermodel->convdatformat($date); $mindate = $this->mintransdate($acccode, $acctype); if ($acctype == 3) { $table = 'customer_trans'; $qry = "select customers.code,customers.type,customer_contact.address , customer_contact.postbox,country.countryname , city.cityname FROM customers INNER JOIN customer_contact ON (customer_contact.customer_id = customers.id) INNER JOIN country ON (country.id = customer_contact.country) INNER JOIN city ON (city.id = customer_contact.city) where customers.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); // $table= $qry = "SELECT customers.code , gl_trans.account , gl_trans.tran_date , gl_trans.amount , placing_slip.cover_id , placing_slip.quotation_ref, IFNULL(placing_slip.id,0) as placingid , covers.cover , insurance_company.company_name , gl_trans.memo , gl_trans.account , refs.reference, psr.type,psr.pslip_id as qid,plcn.policyno FROM customers INNER JOIN gl_trans ON (customers.code = gl_trans.account) INNER JOIN refs ON (refs.id = gl_trans.type_no) left join placing_slip_refs psr on psr.id=refs.id LEFT JOIN placing_slip ON (psr.pslip_id = placing_slip.id) LEFT JOIN covers ON (placing_slip.cover_id = covers.id) left join policynote plcn on plcn.quotation_ref=placing_slip.quotation_ref LEFT JOIN placing_slip_premiumdetails ON (placing_slip_premiumdetails.placing_slip_id = placing_slip.id) LEFT JOIN insurance_company ON (insurance_company.id = placing_slip_premiumdetails.insurance_company_id) where gl_trans.tran_date between '$mindate' and '$date' and customers.id='$cid' order by gl_trans.tran_date "; } else if ($acctype == 1) { $table = 'agent_trans'; $qry = "Select spd.employeeid as code,spd.name , spa.address , spa.pobox as postbox , country.countryname , city.cityname from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid LEFT JOIN country ON (country.id = spa.country) LEFT JOIN city ON (city.id = spa.city) where spd.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $qry = "Select spd.employeeid as code , at.tran_date , at.amount , ps.cover_id , ps.quotation_ref, IFNULL(ps.id,0) as placingid , c.cover , ic.company_name , at.memo , at.account , r.reference, psr.type,psr.pslip_id as qid,plcn.policyno from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid INNER JOIN gl_trans at ON (spd.employeeid = at.account) INNER JOIN refs r ON (r.id = at.type_no) left join placing_slip_refs psr on psr.id=r.id LEFT JOIN placing_slip ps ON (psr.pslip_id = ps.id) LEFT JOIN covers c ON (ps.cover_id = c.id) left join policynote plcn on plcn.quotation_ref=ps.quotation_ref LEFT JOIN placing_slip_premiumdetails pspd ON (pspd.placing_slip_id = ps.id) LEFT JOIN insurance_company ic ON (ic.id = pspd.insurance_company_id) where at.tran_date between '$mindate' and '$date' and spd.id='$cid' order by at.tran_date "; } else if ($acctype == 2) { $table = 'company_trans'; $qry = "select ic.company_code as code , ic.company_name as name , ic.address , ic.po_box as postbox , country.countryname , city.cityname from insurance_company ic LEFT JOIN country ON (country.id = ic.country_id) LEFT JOIN city ON (city.id = ic.city_id) where ic.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $qry = "Select ic.company_code as code , ct.account , ct.tran_date , ct.amount , ps.cover_id , ps.quotation_ref, IFNULL(ps.id,0) as placingid , c.cover , ct.memo , ct.account , r.reference, psr.type,psr.pslip_id as qid,plcn.policyno from insurance_company ic INNER JOIN gl_trans ct ON (ic.company_code = ct.account) INNER JOIN refs r ON (r.id = ct.type_no) left join placing_slip_refs psr on psr.id=r.id LEFT JOIN placing_slip ps ON (psr.pslip_id = ps.id) LEFT JOIN covers c ON (ps.cover_id = c.id) left join policynote plcn on plcn.quotation_ref=ps.quotation_ref LEFT JOIN placing_slip_premiumdetails pspd ON (pspd.placing_slip_id = ps.id) LEFT JOIN country ON (country.id = ic.country_id) LEFT JOIN city ON (city.id = ic.city_id) where ct.tran_date between '$mindate' and '$date' and ic.id='$cid' order by ct.tran_date "; } $res = $this->db->query($qry); $data['transdet'] = $res->result_array(); $empid = $cid; $query = $this->db->query("SELECT code,ct.account,c.type,c.id, @cstaff := (select staffid from staffcustomer where customerid = c.id and date <= ct.tran_date order by date desc limit 1) as cStaff, if(@cstaff='$empid', NULL,0) as isStaff, sum(if(@cstaff='$empid', if(ct.tran_date <= '$date' , ct.amount,0),0)) as amount1, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) >= '0' AND DATEDIFF('$date',ct.tran_date) <='1' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount2, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '1' AND DATEDIFF('$date',ct.tran_date) <='30', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount3, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '30' AND DATEDIFF('$date',ct.tran_date) <='90', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount4, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '90' AND DATEDIFF('$date',ct.tran_date) <='180', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount5, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '180' AND DATEDIFF('$date',ct.tran_date) <='270', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount6, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '270', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount7, ct.tran_date FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct join customers c on ct.account=c.code left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from customer_trans where tran_date <= '$date' group by type_no,account) as g on ct.type_no=g.type_no and ct.account=g.account ,(select @cstaff:=-1 ) t group by cStaff having isStaff IS NULL "); //$query=$this->db->query("select if(SUM(cr.amount)<0,concat(format(abs(sum(cr.amount)),2),' Cr'),concat(format(abs(sum(cr.amount)),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as cr left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as ct on cr.type_no=ct.type_no and cr.account=ct.account where cr.tran_date <='$date' and cr.account='$acccode'"); $bal = $query->row(); if ($bal->amount1 < 0) $sfx1 = ' Cr'; else $sfx1 = ' Dr'; if ($bal->amount2 < 0) $sfx2 = ' Cr'; else $sfx2 = ' Dr'; if ($bal->amount3 < 0) $sfx3 = ' Cr'; else $sfx3 = ' Dr'; if ($bal->amount4 < 0) $sfx4 = ' Cr'; else $sfx4 = ' Dr'; if ($bal->amount5 < 0) $sfx5 = ' Cr'; else $sfx5 = ' Dr'; if ($bal->amount6 < 0) $sfx6 = ' Cr'; else $sfx6 = ' Dr'; if ($bal->amount7 < 0) $sfx7 = ' Cr'; else $sfx7 = ' Dr'; $data['balance'] = number_format($bal->amount1, 2) . $sfx1; //$query=$this->db->query("select if(SUM(if(DATEDIFF('$date',ct.tran_date) >= '0' AND DATEDIFF('$date',ct.tran_date) <='1' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))<0,concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) >= '0' AND DATEDIFF('$date',ct.tran_date) <='1' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Cr'),concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) >= '0' AND DATEDIFF('$date',ct.tran_date) <='1' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as cr on cr.type_no=ct.type_no and cr.account=ct.account where ct.account='$acccode'"); //$bal=$query->row(); $data['current'] = number_format($bal->amount2, 2) . $sfx2; // $query=$this->db->query("select if(SUM(if(DATEDIFF('$date',ct.tran_date) > '1' AND DATEDIFF('$date',ct.tran_date) <='30' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))<0,concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '1' AND DATEDIFF('$date',ct.tran_date) <='30' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Cr'),concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '1' AND DATEDIFF('$date',ct.tran_date) <='30' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as cr on cr.type_no=ct.type_no and cr.account=ct.account where ct.account='$acccode'"); // // $bal=$query->row(); $data['lthirty'] = number_format($bal->amount3, 2) . $sfx3; // $query=$this->db->query("select if(SUM(if(DATEDIFF('$date',ct.tran_date) > '30' AND DATEDIFF('$date',ct.tran_date) <='90' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))<0,concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '30' AND DATEDIFF('$date',ct.tran_date) <='90' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Cr'),concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '30' AND DATEDIFF('$date',ct.tran_date) <='90' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as cr on cr.type_no=ct.type_no and cr.account=ct.account where ct.account='$acccode'"); // $bal=$query->row(); $data['lninty'] = number_format($bal->amount4, 2) . $sfx4; // $query=$this->db->query("select if(SUM(if(DATEDIFF('$date',ct.tran_date) > '90' AND DATEDIFF('$date',ct.tran_date) <='180' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))<0,concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '90' AND DATEDIFF('$date',ct.tran_date) <='180' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Cr'),concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '90' AND DATEDIFF('$date',ct.tran_date) <='180' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as cr on cr.type_no=ct.type_no and cr.account=ct.account where ct.account='$acccode'"); // $bal=$query->row(); $data['loneeighty'] = number_format($bal->amount5, 2) . $sfx5; // $query=$this->db->query("select if(SUM(if(DATEDIFF('$date',ct.tran_date) > '180' AND DATEDIFF('$date',ct.tran_date) <='270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))<0,concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '180' AND DATEDIFF('$date',ct.tran_date) <='270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Cr'),concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '180' AND DATEDIFF('$date',ct.tran_date) <='270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as cr on cr.type_no=ct.type_no and cr.account=ct.account where ct.account='$acccode'"); // $bal=$query->row(); $data['ltseventy'] = number_format($bal->amount6, 2) . $sfx6; // $query=$this->db->query("select if(SUM(if(DATEDIFF('$date',ct.tran_date) > '270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))<0,concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Cr'),concat(format(abs(sum(if(DATEDIFF('$date',ct.tran_date) > '270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0))),2),' Dr')) as amount from (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from $table where tran_date <= '$date' group by type_no,account) as cr on cr.type_no=ct.type_no and cr.account=ct.account where ct.account='$acccode'"); // $bal=$query->row(); $data['ltsixty'] = number_format($bal->amount7, 2) . $sfx7; return $data; } function get_ageingsummary_report($date, $accval, $empid = "") { $data = array(); $date = $this->mastermodel->convdatformat($date); $mixedqry = "sum(if(ct.tran_date <= '$date' ,ct.amount,0)) as amount1, sum(if(DATEDIFF('$date',ct.tran_date) >= '0' AND DATEDIFF('$date',ct.tran_date) <='1' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0)) as amount2, sum(if(DATEDIFF('$date',ct.tran_date) > '1' AND DATEDIFF('$date',ct.tran_date) <='30' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0)) as amount3, sum(if(DATEDIFF('$date',ct.tran_date) > '30' AND DATEDIFF('$date',ct.tran_date) <='90' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0)) as amount4, sum(if(DATEDIFF('$date',ct.tran_date) > '90' AND DATEDIFF('$date',ct.tran_date) <='180' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0)) as amount5, sum(if(DATEDIFF('$date',ct.tran_date) > '180' AND DATEDIFF('$date',ct.tran_date) <='270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0)) as amount6, sum(if(DATEDIFF('$date',ct.tran_date) > '270' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0)) as amount7"; if ($accval == 1) { $qry = "Select spd.employeeid as code,spd.name , spa.address , spa.pobox as postbox , country.countryname , city.cityname from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid LEFT JOIN country ON (country.id = spa.country) LEFT JOIN city ON (city.id = spa.city) where spd.id='$empid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $qry = "SELECT code,ct.account,c.type,c.id, @cstaff := (select staffid from staffcustomer where customerid = c.id and date <= ct.tran_date order by date desc limit 1) as cStaff, if(@cstaff='$empid', NULL,0) as isStaff, sum(if(@cstaff='$empid', if(ct.tran_date <= '$date' , ct.amount,0),0)) as amount1, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) >= '0' AND DATEDIFF('$date',ct.tran_date) <='1' , if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount2, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '1' AND DATEDIFF('$date',ct.tran_date) <='30', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount3, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '30' AND DATEDIFF('$date',ct.tran_date) <='90', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount4, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '90' AND DATEDIFF('$date',ct.tran_date) <='180', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount5, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '180' AND DATEDIFF('$date',ct.tran_date) <='270', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount6, sum(if(@cstaff='$empid', if(DATEDIFF('$date',ct.tran_date) > '270', if(ct.amount<0,ct.amount+alloc,ct.amount-alloc),0),0)) as amount7, ct.tran_date FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct join customers c on ct.account=c.code left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from customer_trans where tran_date <= '$date' group by type_no,account) as g on ct.type_no=g.type_no and ct.account=g.account ,(select @cstaff:=-1 ) t group by code,cStaff having isStaff IS NULL and (amount1!=0 OR amount2!=0 OR amount3!=0 OR amount4!=0 OR amount5!=0 OR amount6!=0 OR amount7!=0) order by code desc"; } else if ($accval == 2) { $data['accdet'] = ""; $qry = "Select ic.company_code as code ,ic.company_name as name, ct.account, $mixedqry FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct inner join insurance_company ic ON (ic.company_code = ct.account) inner join refs on refs.id=ct.type_no left JOIN (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from company_trans where tran_date <= '$date' group by type_no,account) as g ON ct.type_no=g.type_no and ct.account=g.account group by code having amount1!=0 "; } else if ($accval == 3) { $data['accdet'] = ""; $qry = "Select customers.code, ct.account,customers.type,customers.id, $mixedqry FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct inner join customers ON (customers.code = ct.account) inner join refs on refs.id=ct.type_no left JOIN (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from customer_trans where tran_date <= '$date' group by type_no,account) as g on ct.type_no=g.type_no and ct.account=g.account group by code having amount1!=0"; } $res = $this->db->query($qry); $data['transdet'] = $res->result_array(); return $data; } function get_ageingsummary_report_new($date, $accval, $empid = "") { $data = array(); $date = $this->mastermodel->convdatformat($date); $mixedqry = "sum(if(ct.tran_date <= '$date' ,ct.amount,0)) as amount1"; if ($accval == 1) { $qry = "select spd.employeeid as code,spd.name , spa.address , spa.pobox as postbox , country.countryname , city.cityname from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid LEFT JOIN country ON (country.id = spa.country) LEFT JOIN city ON (city.id = spa.city) where spd.id='$empid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $qry = "SELECT code,ct.account,c.type,c.id, @cstaff := (select staffid from staffcustomer where customerid = c.id and date <= ct.tran_date order by date desc limit 1) as cStaff, if(@cstaff='$empid', NULL,0) as isStaff, sum(if(@cstaff='$empid', if(ct.tran_date <= '$date' , ct.amount,0),0)) as amount1, ct.tran_date FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct join customers c on ct.account=c.code left join (select sum(amount) as amount,type_no,tran_date,account,memo,alloc,pid,id from customer_trans where tran_date <= '$date' group by type_no,account) as g on ct.type_no=g.type_no and ct.account=g.account ,(select @cstaff:=-1 ) t group by code,cStaff having isStaff IS NULL and (amount1 > 0.5 ) order by code desc"; } else if ($accval == 2) { $data['accdet'] = ""; $qry = "SELECT ic.company_code as code ,ic.company_name as name, ct.account, $mixedqry FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct inner join insurance_company ic ON (ic.company_code = ct.account) group by code having amount1 > 0.5 "; } else if ($accval == 3) { $data['accdet'] = ""; $qry = "SELECT customers.code, ct.account,customers.type,customers.id, $mixedqry FROM (select sum(amount) as amount,type_no,tran_date,account,memo,method,id from gl_trans where tran_date <= '$date' group by type_no,account) as ct inner join customers ON (customers.code = ct.account) group by code having amount1 > 0.5"; } $res = $this->db->query($qry); $data['transdet'] = $res->result_array(); return $data; } function opening_trail_balance($code, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $qry = "SELECT IFNULL(SUM(if(gt.amount<0,gt.amount,0)),0) as opencredit, IFNULL(SUM(if(gt.amount>0,gt.amount,0)),0) as opendebit FROM gl_trans gt where gt.account='$code' and gt.tran_date < '$date1' "; $res = $this->db->query($qry); $data = $res->row(); return $data; } function opening_maintrail_balance($code, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $qry = "select sum(if(gt.tran_date< '$date1',if(gt.amount<0,gt.amount,0),if(glt.tran_date< '$date1',if(glt.amount<0,glt.amount,0),0))) as opencredit, sum(if(gt.tran_date< '$date1',if(gt.amount>0,gt.amount,0),if(glt.tran_date< '$date1',if(glt.amount>0,glt.amount,0),0))) as opendebit FROM chart_master cm left join chart_master cp on cp.parent=cm.id left join gl_trans gt ON gt.account=cp.account_code left join gl_trans glt ON glt.account=cm.account_code where cm.account_code='$code'"; $res = $this->db->query($qry); $data = $res->row(); return $data; } function get_statement_account($value, $type, $cid, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); if ($type == 3) { $qry = "select customers.code,customers.type,customer_contact.address , customer_contact.postbox,country.countryname , city.cityname FROM customers INNER JOIN customer_contact ON (customer_contact.customer_id = customers.id) INNER JOIN country ON (country.id = customer_contact.country) INNER JOIN city ON (city.id = customer_contact.city) where customers.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $where = ""; if ($date1 != 0) { $where = " and gl_trans.tran_date < '$date1' "; } $qry = " SELECT SUM(IF(gl_trans.amount<0,gl_trans.amount,0)) as credit, SUM(IF(gl_trans.amount>0,gl_trans.amount,0)) as debit,cm.account_name FROM customers INNER JOIN gl_trans ON (customers.code = gl_trans.account) INNER join chart_master cm ON gl_trans.account=cm.account_code where customers.id='$cid' $where group by gl_trans.account"; $res = $this->db->query($qry); $data['openbalance'] = $res->row(); $qry = "SELECT customers.code , customers.type , customer_contact.address , customer_contact.postbox , gl_trans.account , gl_trans.tran_date , gl_trans.id as lsid , gl_trans.amount , placing_slip.cover_id , placing_slip.quotation_ref , IFNULL(placing_slip.id,0) as placingid , placing_slip.currencytype , covers.cover , insurance_company.company_name , country.countryname , city.cityname , gl_trans.memo , gl_trans.type_no as refs_no , refs.reference, psr.type,psr.pslip_id as qid, plcn.policyno, placing_slip.remarks as remarks FROM customers INNER JOIN gl_trans ON (customers.code = gl_trans.account) INNER JOIN refs ON (refs.id = gl_trans.type_no) left join placing_slip_refs psr on psr.id=refs.id LEFT JOIN placing_slip ON (psr.pslip_id = placing_slip.id) LEFT JOIN customer_contact ON (customer_contact.customer_id = customers.id) LEFT JOIN covers ON (placing_slip.cover_id = covers.id) LEFT JOIN placing_slip_premiumdetails ON (placing_slip_premiumdetails.placing_slip_id = placing_slip.id) left join policynote plcn on plcn.quotation_ref=placing_slip.quotation_ref LEFT JOIN insurance_company ON (insurance_company.id = placing_slip_premiumdetails.insurance_company_id) left JOIN country ON (country.id = customer_contact.country) left JOIN city ON (city.id = customer_contact.city) where gl_trans.tran_date between '$date1' and '$date2' and customers.id='$cid' order by gl_trans.tran_date,lsid"; } else if ($type == 1) { $where = ""; if ($date1 != 0) { $where = " and at.tran_date < '$date1' "; } $qry = " SELECT SUM(IF(at.amount<0,at.amount,0)) as credit, SUM(IF(at.amount>0,at.amount,0)) as debit,cm.account_name FROM staffpersonaldetails spd INNER JOIN gl_trans at ON (spd.employeeid = at.account) INNER join chart_master cm ON at.account=cm.account_code where spd.id='$cid' $where group by at.account"; $res = $this->db->query($qry); $data['openbalance'] = $res->row(); $qry = "Select spd.employeeid as code,spd.name , spa.address , spa.pobox as postbox , country.countryname , city.cityname from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid LEFT JOIN country ON (country.id = spa.country) LEFT JOIN city ON (city.id = spa.city) where spd.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $qry = "Select spd.employeeid as code , spd.name , spa.address , spa.pobox as postbox , at.account , at.tran_date , at.amount , at.id as lsid , ps.cover_id , ps.quotation_ref, IFNULL(ps.id,0) as placingid, ps.currencytype , c.cover , ic.company_name , country.countryname , city.cityname , at.type_no as refs_no , at.memo , at.account , r.reference, psr.type,psr.pslip_id as qid , plcn.policyno from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid INNER JOIN gl_trans at ON (spd.employeeid = at.account) INNER JOIN refs r ON (r.id = at.type_no) left join placing_slip_refs psr on psr.id=r.id LEFT JOIN placing_slip ps ON (psr.pslip_id = ps.id) LEFT JOIN covers c ON (ps.cover_id = c.id) LEFT JOIN placing_slip_premiumdetails pspd ON (pspd.placing_slip_id = ps.id) left join policynote plcn on plcn.quotation_ref=ps.quotation_ref LEFT JOIN insurance_company ic ON (ic.id = pspd.insurance_company_id) LEFT JOIN country ON (country.id = spa.country) LEFT JOIN city ON (city.id = spa.city) where at.tran_date between '$date1' and '$date2' and spd.id='$cid' order by at.tran_date,lsid "; } else if ($type == 2) { $qry = "select ic.company_code as code , ic.company_name as name , ic.address , ic.po_box as postbox , country.countryname , city.cityname from insurance_company ic LEFT JOIN country ON (country.id = ic.country_id) LEFT JOIN city ON (city.id = ic.city_id) where ic.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $qry = " SELECT SUM(IF(ct.amount<0,ct.amount,0)) as credit, SUM(IF(ct.amount>0,ct.amount,0)) as debit FROM insurance_company ic INNER JOIN gl_trans ct on (ic.company_code = ct.account) where ct.tran_date < '$date1' and ic.id='$cid' group by ct.account"; $res = $this->db->query($qry); $data['openbalance'] = $res->row(); $qry = "Select ic.company_code as code, ic.company_name as name, ic.address, ic.po_box as postbox, ct.account, ct.tran_date, ct.amount, ct.id as lsid, ps.cover_id, ps.quotation_ref, IFNULL(ps.id, 0) as placingid, ps.currencytype, c.cover, country.countryname, city.cityname, ct.memo, ct.account, ct.type_no as refs_no, r.reference, psr.type, psr.pslip_id as qid, plcn.policyno, ifnull(cpi.insured, cco.insured) as insuredcustomer, csr.code as customercode, pspd.premium, es.brokerage, es.ispercentage, es.paymentoptions as es_payment_method, pspd.payment_method as ps_payment_method from insurance_company ic INNER JOIN gl_trans ct ON (ic.company_code = ct.account) INNER JOIN refs r ON (r.id = ct.type_no) left join placing_slip_refs psr ON psr.id = r.id LEFT JOIN placing_slip psp ON (psr.pslip_id = psp.id and psr.type = 'issue') left join endorsement es ON (es.id = psr.pslip_id and psr.type = 'endorsement') left join cancellation cs ON (cs.id = psr.pslip_id and psr.type = 'cancellation') left join policynote pln ON (es.policyid = pln.id or cs.policyid = pln.id) left join placing_slip ps ON (psp.id = ps.id or pln.quotation_ref = ps.quotation_ref) LEFT JOIN customer_personal_ind cpi ON (ps.customer_id = cpi.customer_id) LEFT JOIN customer_corp_info cco ON (ps.customer_id = cco.customer_id) LEFT JOIN customers csr ON csr.id = ps.customer_id LEFT JOIN covers c ON (ps.cover_id = c.id) LEFT JOIN placing_slip_premiumdetails pspd ON (pspd.placing_slip_id = ps.id) left join policynote plcn ON plcn.quotation_ref = ps.quotation_ref LEFT JOIN country ON (country.id = ic.country_id) LEFT JOIN city ON (city.id = ic.city_id) where ct.tran_date between '$date1' and '$date2' and ic.id='$cid' group by r.id order by ct.tran_date , lsid"; // echo $qry;die(); } $res = $this->db->query($qry); $data['transdet'] = $res->result_array(); $sql = "select *, unposted_pay_dep.method as method,refs.id as refs_id, IFNULL(rc.ch_date,'') as ch_date,IFNULL(rc.bank_name,'') as bank_name,IFNULL(rc.cheque_no,'') as ch_no, IFNULL(pb.bank_info,0) as bank_info, IF(unposted_pay_dep.type=1,'PV',IF(unposted_pay_dep.type=2,'RV','none')) as trans_type from refs join unposted_pay_dep on unposted_pay_dep.reference=refs.id left join receipt_cheque rc on rc.reference=refs.id left join payment_bank_info pb on pb.reference=refs.id group by refs.id order by refs.id "; $result = $this->db->query($sql); foreach ($result->result_array() as $row) { $data['payments'][$row['refs_id']] = $row; } return $data; } function opening_bal_statementacc($date1, $code, $table) { $data = array(); $qry = "SELECT SUM(IF(ct.amount<0,ct.amount,0)) as credit, SUM(IF(ct.amount>0,ct.amount,0)) as debit,cm.account_name FROM $table ct join chart_master cm ON ct.account=cm.account_code where ct.account='$code' and tran_date <'$date1' group by ct.account "; $res = $this->db->query($qry); return $res; } function opening_bal_bankstatementacc($date1, $code, $table) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $qry = "SELECT SUM(IF(ct.amount<0,ct.amount,0)) as credit, SUM(IF(ct.amount>0,ct.amount,0)) as debit,ba.bank_account_name as account_name FROM $table ct JOIN bank_accounts ba ON ba.id=ct.bank_act where ba.account_code='$code' and trans_date <'$date1' group by ba.account_code "; $res = $this->db->query($qry); return $res; } function monthdays($someMonth, $someYear) { return date("t", strtotime($someYear . "-" . $someMonth . "-01")); } function get_pslip_transno($id, $type) { $data = array(); $qry = "SELECT reference as ref FROM placing_slip_refs psr join refs r ON r.id=psr.id where psr.pslip_id='$id' and r.type='$type'"; $res = $this->db->query($qry); $data = $res->row()->ref; return $data; } function fiscaldate_check($date) { $data = array(); $date = $this->mastermodel->convdatformat($date); $qry = "SELECT count(*) as count FROM mycompany mc JOIn fiscal_year fy ON fy.id=mc.fyear where '$date' between fy.begin and fy.end and fy.closed=0"; $res = $this->db->query($qry); $data = $res->row()->count; return $data; } function mintransdate($acccode, $val) { if ($val == 3) { $qery = "Select min(tran_date) as tran_date from customer_trans where (abs(amount)!=alloc) and account='$acccode' "; } else if ($val == 2) { $qery = "Select min(tran_date) as tran_date from company_trans where (abs(amount)!=alloc) and account='$acccode'"; } else if ($val == 1) { $qery = "Select min(tran_date) as tran_date from agent_trans where (abs(amount)!=alloc) and account='$acccode'"; } $query = $this->db->query($qery); $querydate = $query->row(); $mindate = $querydate->tran_date; return $mindate; } function checkcustomer_trans($refid) { $qry = "SELECT count(*) as count FROM customer_trans where type_no='$refid'"; $res = $this->db->query($qry); $data = $res->row()->count; return $data; } function checkemployee_trans($refid) { $qry = "SELECT count(*) as count FROM agent_trans where type_no='$refid'"; $res = $this->db->query($qry); $data = $res->row()->count; return $data; } function findaccountbyno($code) { $res = $this->db->query("SELECT chart_master.account_code,chart_master.account_name FROM `chart_master` where chart_master.account_code='$code'"); $result = $res->row(); if ($res->num_rows() > 0) { $accountno = $result->account_code; //$accountname_id=$result->id; $account_name = $result->account_name; $resultset = $accountno . '~' . $account_name; } else { $resultset = ""; } return $resultset; //var_dump($resultset);die(); } function get_allocation_report($value, $type, $cid, $date1, $date2) { $data = array(); $date1 = $this->mastermodel->convdatformat($date1); $date2 = $this->mastermodel->convdatformat($date2); if ($type == 3) { // $table= $qry = "select customers.code,customers.type,customer_contact.address , customer_contact.postbox,country.countryname , city.cityname FROM customers INNER JOIN customer_contact ON (customer_contact.customer_id = customers.id) INNER JOIN country ON (country.id = customer_contact.country) INNER JOIN city ON (city.id = customer_contact.city) where customers.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $res = $this->single_transact($cid, $date1, $date2); } else if ($type == 1) { $qry = "select spd.employeeid as code,spd.name , spa.address , spa.pobox as postbox , country.countryname , city.cityname from staffpersonaldetails spd LEFT JOIN staffpermaddress spa ON spd.id=spa.staffid LEFT JOIN country ON (country.id = spa.country) LEFT JOIN city ON (city.id = spa.city) where spd.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $value = $type . '~' . $value; $res = $this->getpayment_list($value, $date1, $date2); } else if ($type == 2) { $qry = "select ic.company_code as code , ic.company_name as name , ic.address , ic.po_box as postbox , country.countryname , city.cityname from insurance_company ic LEFT JOIN country ON (country.id = ic.country_id) LEFT JOIN city ON (city.id = ic.city_id) where ic.id='$cid' "; $cdet = $this->db->query($qry); $data['accdet'] = $cdet->row(); $value = $type . '~' . $value; $res = $this->getpayment_list($value, $date1, $date2); } $data['transdet'] = $res->result_array(); return $data; } function search_customer_receipt($pagenum) { $data = array(); $this->db->select("IFNULL(customer_corp_info.insured,customer_personal_ind.insured) as customer_name", FALSE); $this->db->from('customer_receipt'); $this->db->join('customer_personal_ind', 'customer_personal_ind.customer_id=customer_receipt.customer_id', 'LEFT'); $this->db->join('customer_corp_info', 'customer_corp_info.customer_id=customer_receipt.customer_id', 'LEFT'); $this->db->join('insurance_company', 'insurance_company.id=customer_receipt.insurance_company_id', 'LEFT'); $postdata = $_SESSION['searchdata']; // if (!empty($postdata)) { // $searchtext = $postdata['searchtext']; // $searchfield = $postdata['searchopt']; // if ($searchfield == 'customer_name') { // $this->db->having("customer_name like '%" . $searchtext . "%'", NULL, FALSE); // } else { // $this->db->like($searchfield, $searchtext); // // } // } $count = $this->db->count_all_results(); $arr = $this->paginate($pagenum, $count); $data['startpage'] = $arr[0]; $data['endpage'] = $arr[1]; $start = $arr[2]; $perpage = $arr[3]; $data['count'] = $count; if (!empty($postdata)) { $searchtext = $postdata['searchtext']; $searchfield = $postdata['searchopt']; if ($searchfield == 'customer_name') { $this->db->having("customer_name like '%" . $searchtext . "%'", NULL, FALSE); } else { $this->db->like($searchfield, $searchtext); } } $this->db->select("*,IFNULL(customer_corp_info.insured,customer_personal_ind.insured) as customer_name", FALSE); $this->db->from('customer_receipt'); $this->db->join('customer_personal_ind', 'customer_personal_ind.customer_id=customer_receipt.customer_id', 'LEFT'); $this->db->join('customer_corp_info', 'customer_corp_info.customer_id=customer_receipt.customer_id', 'LEFT'); $this->db->join('insurance_company', 'insurance_company.id=customer_receipt.insurance_company_id', 'LEFT'); $this->db->limit($perpage, $start); $this->db->order_by('customer_receipt_id', 'desc'); $data['results'] = $this->db->get(); return $data; } function insert_customer_receipt() { $sql = "SHOW TABLE STATUS LIKE 'customer_receipt'"; $result = $this->db->query($sql); $increment = $result->row()->Auto_increment; $transaction_code = 'REC' . STR_PAD($increment,4,0,STR_PAD_LEFT); $tblValues = array( 'transaction_code' => $transaction_code, 'customer_id' => $_POST['customer_id'], 'insurance_company_id' => $_POST['insurance_company_id'], 'customer_receipt_amount' => $_POST['customer_receipt_amount'], 'customer_receipt_date' => $this->mastermodel->convertdateformat($_POST['customer_receipt_date']), 'customer_payment_method' => $_POST['customer_payment_method'], 'customer_receipt_remarks' => $_POST['customer_receipt_remarks'], 'insurance_company_payment_date' => $this->mastermodel->convertdateformat($_POST['insurance_company_payment_date']), 'insurance_company_payment_method' => $_POST['insurance_company_payment_method'], 'insurance_company_receipt_amount' => $_POST['insurance_company_receipt_amount'], 'insurance_company_payment_completed' => isset($_POST['insurance_company_payment_completed']) ? 1 : 0, 'insurance_company_payment_remarks' => $_POST['insurance_company_payment_remarks'] ); $data = $this->db->insert('customer_receipt', $tblValues); return $data; } function update_customer_receipt() { $tblValues = array( 'customer_receipt_amount' => $_POST['customer_receipt_amount'], 'customer_receipt_date' => $this->mastermodel->convertdateformat($_POST['customer_receipt_date']), 'customer_payment_method' => $_POST['customer_payment_method'], 'customer_receipt_remarks' => $_POST['customer_receipt_remarks'], 'insurance_company_payment_date' => $this->mastermodel->convertdateformat($_POST['insurance_company_payment_date']), 'insurance_company_payment_method' => $_POST['insurance_company_payment_method'], 'insurance_company_receipt_amount' => $_POST['insurance_company_receipt_amount'], 'insurance_company_payment_completed' => isset($_POST['insurance_company_payment_completed']) ? 1 : 0, 'insurance_company_payment_remarks' => $_POST['insurance_company_payment_remarks'] ); $data = $this->db->where('customer_receipt_id', $_POST['customer_receipt_id']); $data = $this->db->update('customer_receipt', $tblValues); return $data; } function get_receipt_details($receipt_id) { $this->db->select("*,IFNULL(customer_corp_info.insured,customer_personal_ind.insured) as customer_name,customer_receipt.customer_id", FALSE); $this->db->from('customer_receipt'); $this->db->join('customer_personal_ind', 'customer_personal_ind.customer_id=customer_receipt.customer_id', 'LEFT'); $this->db->join('customer_corp_info', 'customer_corp_info.customer_id=customer_receipt.customer_id', 'LEFT'); $this->db->join('insurance_company', 'insurance_company.id=customer_receipt.insurance_company_id', 'LEFT'); $this->db->where('customer_receipt_id',$receipt_id); $Q = $this->db->get(); $row = $Q->row(); return $row; } function get_receipt_allocation_details($receipt_id) { $data = array(); $qry = "SELECT customers.type as customer_type , customers.id as customer_id , insurance_company.company_name , cover , placing_slip.quotation_ref as qref , policynote.policyno , placing_slip_premiumdetails.premium as premium , placing_slip_premiumdetails.policy_fees as policy_fees , cr_allocation_amount as allocated_amount , 0 as mode FROM customer_receipt_allocation JOIN placing_slip ON placing_slip.id=cr_allocation_pid and cr_allocation_type='issue' JOIN policynote on placing_slip.quotation_ref=policynote.quotation_ref JOIN placing_slip_premiumdetails ON placing_slip_premiumdetails.placing_slip_id=placing_slip.id JOIN insurance_company ON insurance_company.id=placing_slip_premiumdetails.insurance_company_id JOIN covers on covers.id=placing_slip.cover_id JOIN customers ON customers.id=placing_slip.customer_id where customer_receipt_id='$receipt_id'"; $qry.=" UNION SELECT customers.type as customer_type , customers.id as customer_id , insurance_company.company_name , cover , endorsement.endrefno as qref , policynote.policyno , endorsement.premiumchange as premium , endorsement.policyfeeschange as policy_fees , cr_allocation_amount as allocated_amount , endorsement.mode as mode FROM customer_receipt_allocation JOIN endorsement ON endorsement.id=cr_allocation_pid and cr_allocation_type='endorsement' INNER JOIN policynote on policynote.id=endorsement.policyid INNER JOIN placing_slip on placing_slip.quotation_ref= policynote.quotation_ref JOIN placing_slip_premiumdetails ON placing_slip_premiumdetails.placing_slip_id=placing_slip.id JOIN insurance_company ON insurance_company.id=placing_slip_premiumdetails.insurance_company_id JOIN covers on covers.id=placing_slip.cover_id JOIN customers ON customers.id=placing_slip.customer_id where customer_receipt_id='$receipt_id'"; $res = $this->db->query($qry); $data = $res->result_array(); return $data; } function delete_customer_receipt($id) { return $this->db->delete('customer_receipt', array('customer_receipt_id' => $id)); } function delete_customer_receipt_allocations() { return $this->db->delete('customer_receipt_allocation', array('customer_receipt_id' => $_POST['customer_receipt_id'])); } function get_policy_details($customer_id, $insurance_company_id) { $data = array(); $qry = "SELECT placing_slip_premiumdetails.premium , placing_slip_premiumdetails.policy_fees , placing_slip.id as pid ,'0' as eid , customers.id , placing_slip.quotation_ref , policyno , cover , placing_slip_premiumdetails.brokerage , placing_slip_premiumdetails.ispercentage , 0 as mode , IFNULL(sum(cr_allocation_amount),0) as allocated_amount , placing_slip.remarks as description FROM placing_slip_premiumdetails INNER JOIN placing_slip ON (placing_slip_premiumdetails.placing_slip_id = placing_slip.id) LEFT JOIN policynote on policynote.quotation_ref=placing_slip.quotation_ref INNER JOIN covers on covers.id=placing_slip.cover_id INNER JOIN customers ON (placing_slip.customer_id = customers.id) LEFT JOIN customer_receipt_allocation ON (placing_slip.id = cr_allocation_pid AND cr_allocation_type = 'issue') where customers.id='$customer_id' AND placing_slip_premiumdetails.payment_method = 'insurance_company' AND placing_slip_premiumdetails.insurance_company_id='$insurance_company_id'"; $qry.=" GROUP BY placing_slip.id"; $qry.=" UNION SELECT endorsement.premiumchange as premium , endorsement.policyfeeschange as policy_fees , '0' as pid , endorsement.id as eid , customers.id , endrefno as quotation_ref , endorsement.endpolicyno as policyno , cover , endorsement.brokerage , endorsement.ispercentage , endorsement.mode as mode , IFNULL(sum(cr_allocation_amount),0) as allocated_amount , endorsement.remarks as description FROM endorsement INNER JOIN policynote on policynote.id=endorsement.policyid INNER JOIN placing_slip on placing_slip.quotation_ref= policynote.quotation_ref INNER JOIN placing_slip_premiumdetails ON (placing_slip_premiumdetails.placing_slip_id = placing_slip.id) INNER JOIN covers on covers.id=placing_slip.cover_id INNER JOIN customers ON (placing_slip.customer_id = customers.id) LEFT JOIN customer_receipt_allocation ON (endorsement.id = cr_allocation_pid AND cr_allocation_type = 'endorsement') where customers.id='$customer_id' AND endorsement.paymentoptions = 'insurance_company' AND placing_slip_premiumdetails.insurance_company_id='$insurance_company_id'"; $qry.=" GROUP BY endorsement.id"; $res = $this->db->query($qry); return $res; } function get_receipt_allocated_amount($receipt_id) { $this->db->select("SUM(cr_allocation_amount) as allocated_amount", FALSE); $this->db->from('customer_receipt_allocation'); $this->db->where('customer_receipt_id',$receipt_id); $Q = $this->db->get(); $row = $Q->row(); return $row; } function add_customer_receipt_allocation() { $this->db->trans_begin(); for ($i = 1; $i <= $_POST['total_records']; $i++) { if ($_POST['pay_' . $i] != 0 || !empty($_POST['pay_' . $i])) { $pid = 0; if (isset($_POST['placingslip_id_' . $i])) { $pid = $_POST['placingslip_id_' . $i]; $type = 'issue'; } else if (isset($_POST['endorsement_id_' . $i])) { $pid = $_POST['endorsement_id_' . $i]; $type = 'endorsement'; } if ($pid > 0 && is_numeric($_POST['pay_' . $i])) { $this->db->delete('customer_receipt_allocation', array('customer_receipt_id' => $_POST['customer_receipt_id'], 'cr_allocation_pid' => $pid)); $tblValues = array( 'customer_receipt_id' => $_POST['customer_receipt_id'], 'cr_allocation_amount' => $_POST['pay_' . $i], 'cr_allocation_pid' => $pid, 'cr_allocation_type' => $type, ); $this->db->insert('customer_receipt_allocation', $tblValues); } } } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return 1; } } function get_broker_customer_alocation($receipt_id) { $data = array(); $qry = "SELECT customers.type as customer_type , customers.id as customer_id , insurance_company.company_name , cover , placing_slip.quotation_ref as qref , policynote.policyno , placing_slip_premiumdetails.premium as premium , placing_slip_premiumdetails.policy_fees as policy_fees , cust_allocate.amount as allocated_amount , refs.reference , 0 as mode , customer_trans.amount as received_amount , customer_trans.tran_date as transaction_date , customer_trans.id as customer_trans_id FROM customer_trans JOIN cust_allocate ON customer_trans.id=cust_allocate.from JOIN refs ON refs.id=customer_trans.type_no JOIN placing_slip ON placing_slip.id=cust_allocate.pid and cust_allocate.type='issue' JOIN policynote on placing_slip.quotation_ref=policynote.quotation_ref JOIN placing_slip_premiumdetails ON placing_slip_premiumdetails.placing_slip_id=placing_slip.id JOIN insurance_company ON insurance_company.id=placing_slip_premiumdetails.insurance_company_id JOIN covers on covers.id=placing_slip.cover_id JOIN customers ON customers.id=placing_slip.customer_id where customer_trans.id='$receipt_id'"; $qry.=" UNION SELECT customers.type as customer_type , customers.id as customer_id , insurance_company.company_name , cover , endorsement.endrefno as qref , policynote.policyno , endorsement.premiumchange as premium , endorsement.policyfeeschange as policy_fees , cust_allocate.amount as allocated_amount , refs.reference , endorsement.mode as mode , customer_trans.amount as received_amount , customer_trans.tran_date as transaction_date , customer_trans.id as customer_trans_id FROM customer_trans JOIN cust_allocate ON customer_trans.id=cust_allocate.from JOIN refs ON refs.id=customer_trans.type_no JOIN endorsement ON endorsement.id=cust_allocate.pid and cust_allocate.type='endorsement' INNER JOIN policynote on policynote.id=endorsement.policyid INNER JOIN placing_slip on placing_slip.quotation_ref= policynote.quotation_ref JOIN placing_slip_premiumdetails ON placing_slip_premiumdetails.placing_slip_id=placing_slip.id JOIN insurance_company ON insurance_company.id=placing_slip_premiumdetails.insurance_company_id JOIN covers on covers.id=placing_slip.cover_id JOIN customers ON customers.id=placing_slip.customer_id where customer_trans.id='$receipt_id'"; $res = $this->db->query($qry); $data = $res->result_array(); return $data; } function delete_customer_allocation() { $this->db->trans_begin(); $tbl = array( 'alloc' => 0 ); $this->db->where('id', $_POST['customer_receipt_id']); $this->db->update('customer_trans', $tbl); $this->db->where('from', $_POST['customer_receipt_id']); $this->db->delete('cust_allocate'); if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return 0; } else { $this->db->trans_commit(); return 1; } } private function paginate($currentpagenum,$count) { $nooflist= '4'; $perpage= '10'; $maxpage= ceil($count/$perpage); //no of pages to display $maxpagetodisplay=$maxpage; $startpage=1; //calculate the max no list to display if(($currentpagenum + ($nooflist/2))<$maxpage) { $maxpagetodisplay=ceil($currentpagenum + ($nooflist/2)); } else { $maxpagetodisplay=$maxpage; } //calculate the starting list no if($currentpagenum>=$nooflist) { $startpage=ceil($currentpagenum-($nooflist/2)); } if($currentpagenum) $start = ($currentpagenum-1)*$perpage; else $start=0; $arr[0]=$startpage; $arr[1]=$maxpagetodisplay; $arr[2]=$start; $arr[3]=$perpage; return $arr; } } ?>