db_onedev = $this->load->database("onedev", true); } function getlanguages() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query = "SELECT Nat_LangID as id, Nat_LangCode as code, Nat_LangName as name FROM nat_lang WHERE Nat_LangIsActive = 'Y'"; $rows = $this->db_onedev->query($query)->result_array(); $this->sys_ok($rows); exit; } function lookup_type() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query = "SELECT M_PaymentTypeID as id, M_PaymentTypeCode as code, 'N' as chex, M_PaymentTypeName as chexlabel, 'Jumlah' as leftlabel, '' as selected_card, '' as selected_edc, '' as selected_account, CASE WHEN M_PaymentTypeCode = 'CASH' THEN 'Kembali' WHEN M_PaymentTypeCode = 'DEBIT' THEN 'Nomor Kartu' WHEN M_PaymentTypeCode = 'CREDIT' THEN 'Nomor Kartu' WHEN M_PaymentTypeCode = 'TRANSFER' THEN 'No. Rekening' ELSE 'Nomor Voucher' END as rightlabel, 0 as leftvalue, 0 as rightvalue FROM m_paymenttype WHERE M_PaymentTypeIsActive = 'Y'"; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ $rows[$k]['selected_card'] = array('id'=>0,'name'=>''); $rows[$k]['selected_edc'] = array('id'=>0,'name'=>''); if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function lookup_banks() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query = "SELECT Nat_BankID as id, Nat_BankCode as name FROM nat_bank WHERE Nat_BankIsActive = 'Y' ORDER BY Nat_BankCode DESC"; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function lookup_accounts() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query = "SELECT M_BankAccountID as id, CONCAT(Nat_BankCode,' (',M_BankAccountNo,')') as name FROM m_bank_account JOIN nat_bank ON M_BankAccountNat_BankID = Nat_BankID WHERE M_BankAccountIsActive = 'Y' ORDER BY Nat_BankCode DESC"; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function searchcard(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL if($prm['search'] != ''){ $sql = " SELECT count(*) as total FROM nat_bank WHERE Nat_BankName like ? AND Nat_BankIsActive = 'Y' ORDER BY Nat_BankName DESC "; } else{ $sql = " SELECT count(*) as total FROM nat_bank WHERE Nat_BankIsActive = 'Y' ORDER BY Nat_BankName DESC "; } $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_city count",$this->db_onedev); exit; } if($prm['search'] != ''){ $sql = " SELECT Nat_BankID as id, Nat_BankName as name FROM nat_bank WHERE Nat_BankName like ? AND Nat_BankIsActive = 'Y' ORDER BY Nat_BankName DESC "; } else{ $sql = " SELECT Nat_BankID as id, Nat_BankName as name FROM nat_bank WHERE Nat_BankIsActive = 'Y' ORDER BY Nat_BankName DESC "; } $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_city rows",$this->db_onedev); exit; } } function pay() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $xuserid = $this->sys_user['M_UserID']; $prm = $this->sys_input; $orderid = $prm['orderid']; $payments = $prm['payments']; //$xnumber = $this->db_onedev->query("SELECT `fn_numbering`('PAY') as numberx")->row()->numberx; $sql = "INSERT INTO f_payment(F_PaymentT_OrderHeaderID,F_PaymentDate,F_PaymentCreated,F_PaymentM_UserID) VALUES (?,CURDATE(),NOW(),?)"; $query = $this->db_onedev->query($sql, array( $orderid, $xuserid ) ); if (!$query) { $this->sys_error_db("f_payment insert"); exit; } $headerid = $this->db_onedev->insert_id(); foreach($payments as $k => $v){ if($v['chex']){ $actual = 0; $change = 0; $amount = $v['leftvalue']; if($v['code'] == 'CASH'){ $actual = $v['leftvalue']; $change = $v['rightvalue']; if($actual > 0){ $amount = intval($v['leftvalue']) - intval($v['rightvalue']); } else{ $amount = $actual; } $sql = "INSERT INTO f_paymentdetail( F_PaymentDetailF_PaymentID, F_PaymentDetailM_PaymentTypeID, F_PaymentDetailAmount, F_PaymentDetailActual, F_PaymentDetailChange, F_PaymentDetailCreated, F_PaymentDetailLastUpdated, F_PaymentDetailUserID) VALUES ( ?, ?, ?, ?, ?, now(), now(), ? )"; //echo $sql; $query = $this->db_onedev->query($sql, array( $headerid, $v['id'], $amount, $actual, $change, $xuserid ) ); if (!$query) { $this->sys_error_db("f_paymentdetail cash insert"); exit; } } else{ //if(intval($v['leftvalue']) > 0){ $actual = 0; $change = 0; $amount = $v['leftvalue']; $selected_card = 0; $selected_edc = 0; $selected_account = 0; if($v['code'] == 'DEBIT' || $v['code'] == 'CREDIT' || $v['code'] == 'TRANSFER'){ $selected_card = $v['selected_card']['id']; $selected_edc = $v['selected_edc']['id']; if($v['code'] == 'TRANSFER') $selected_edc = $v['selected_account']['id']; } $sql = "INSERT INTO f_paymentdetail( F_PaymentDetailF_PaymentID, F_PaymentDetailM_PaymentTypeID, F_PaymentDetailAmount, F_PaymentDetailActual, F_PaymentDetailChange, F_PaymentDetailCardNat_BankID, F_PaymentDetailEDCNat_BankID, F_PaymentDetailM_BankAccountID, F_PaymentDetailCreated, F_PaymentDetailLastUpdated, F_PaymentDetailUserID) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, now(), now(), ? )"; //echo $sql; $query = $this->db_onedev->query($sql, array( $headerid, $v['id'], $amount, $actual, $change, $selected_card, 0, $selected_edc, $xuserid ) ); //echo $this->db_onedev->last_query(); if (!$query) { $this->sys_error_db("f_paymentdetail non cash insert"); exit; } //} } } } $query = "SELECT M_PaymentTypeID as id, M_PaymentTypeCode as code, IF(M_PaymentTypeCode = 'CASH','Y','N') as chex, M_PaymentTypeName as chexlabel, 'Jumlah' as leftlabel, CASE WHEN M_PaymentTypeCode = 'CASH' THEN 'Kembali' WHEN M_PaymentTypeCode = 'DEBIT' THEN 'Nomor Kartu' WHEN M_PaymentTypeCode = 'CREDIT' THEN 'Nomor Kartu' WHEN M_PaymentTypeCode = 'TRANSFER' THEN 'Nomor Rekening' ELSE 'Nomor Voucher' END as rightlabel, 0 as leftvalue, 0 as rightvalue FROM m_paymenttype WHERE M_PaymentTypeIsActive = 'Y'"; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } $xdata = $this->db_onedev->query("SELECT F_PaymentID as idx, F_PaymentNumber as numberx FROM f_payment WHERE F_PaymentID = {$headerid}")->row(); $result = array( "total" => count($rows) , "records" => array('payments'=>$payments,'types'=>$rows,'data'=>$xdata) ); $this->sys_ok($result); exit; } function delete_note() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $xuserid = $this->sys_user['M_UserID']; $prm = $this->sys_input; $prmnota = $prm['nota']; $catatan = $prm['catatan']; $sql = "UPDATE f_payment SET F_PaymentIsActive = 'N', F_PaymentNote = '{$catatan}' WHERE F_PaymentID = {$prmnota['note_id']}"; //echo $sql; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("f_payment delete"); exit; } $sql = "UPDATE f_paymentdetail SET F_PaymentDetailIsActive = 'N' WHERE F_PaymentDetailF_PaymentID = {$prmnota['note_id']}"; //echo $sql; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("f_paymentdetail delete"); exit; } $result = array( "total" => 1 , "records" => array('prm'=>$prm) ); $this->sys_ok($result); exit; } function getLocations() { $prm = $this->sys_input; $station_location = []; $locations = []; $sql = "SELECT T_OrderDetailT_OrderHeaderID as order_id, T_SampleStationID as station_id, T_SampleStationName as station_name, fn_get_location(T_SampleStationID,T_OrderDetailT_OrderHeaderID) as location_id, '' locations FROM ( SELECT distinct T_OrderDetailT_OrderHeaderID,T_SampleStationID, T_SampleStationName FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_SampleTypeID = T_TestT_SampleTypeID JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y' ) x"; $query = $this->db_onedev->query($sql,array($prm['order_id'])); //echo $this->db_onedev->last_query(); if ($query) { $datas = $query->result_array(); foreach ($datas as $key => $value) { $sql = "SELECT M_LocationID as location_id, M_LocationName as location_name FROM m_location WHERE M_LocationT_SampleStationID = ? AND M_LocationIsActive = 'Y' "; $query = $this->db_onedev->query($sql,array($value['station_id'])); if ($query) { $datas[$key]['locations'] = $query->result_array(); } else { $datas[$key]['locations'] = []; } } $this->sys_ok(["datas"=> $datas]); } else{ echo $this->db_onedev->last_query(); $this->sys_error_db("gagal ambil data", $this->db_onedev); exit; } } function save_control() { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user['M_UserID']; if($prm['data'] && count($prm['data']) > 0){ foreach ($prm['data'] as $key => $value) { $sql="INSERT INTO t_order_location ( T_OrderLocationT_OrderHeaderID, T_OrderLocationM_LocationID, T_OrderLocationT_SampleStationID, T_OrderLocationCreated, T_OrderLocationLastUpdated, T_OrderLocationUserID ) VALUES (?,?,?,NOW(),NOW(),?) ON DUPLICATE KEY UPDATE T_OrderLocationT_OrderHeaderID = ?, T_OrderLocationM_LocationID = ?, T_OrderLocationT_SampleStationID = ?, T_OrderLocationLastUpdated = NOW(), T_OrderLocationUserID = ?"; $query = $this->db_onedev->query($sql,array($value['order_id'],$value['location_id'],$value['station_id'],$userid,$value['order_id'],$value['location_id'],$value['station_id'],$userid)); } $this->sys_ok(["datas"=> '']); } else{ $this->sys_error_db("data not valid", $this->db_onedev); exit; } //echo $sql; } }