db_onedev = $this->load->database("onedev", true); } 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'=>''); $rows[$k]['selected_account'] = 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 selectpaymenttype(){ try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT * FROM m_paymenttype WHERE M_PaymentTypeIsActive = 'Y' "; //echo $query; $rows['paymenttypes'] = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function selectbank(){ try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT * FROM nat_bank WHERE Nat_BankIsActive = 'Y' ORDER BY Nat_BankCode DESC "; //echo $query; $rows['banks'] = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function selectaccount(){ try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT M_BankAccountID as M_BankAccountID, CONCAT(Nat_BankCode,' (',M_BankAccountNo,')') as M_BankAccountName FROM m_bank_account JOIN nat_bank ON M_BankAccountNat_BankID = Nat_BankID WHERE M_BankAccountIsActive = 'Y' ORDER BY Nat_BankCode DESC"; //echo $query; $rows['accounts'] = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } 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_bill_payment_pusat (F_BillPaymentPusatF_BillIssuePusatID,F_BillPaymentPusatDate,F_BillPaymentPusatCreated,F_BillPaymentPusatUserID) VALUES (?,CURDATE(),NOW(),?)"; $query = $this->db_onedev->query($sql, array( $orderid, $xuserid ) ); if (!$query) { $this->sys_error_db("f_bill_payment_pusat insert"); exit; } $headerid = $this->db_onedev->insert_id(); //echo $headerid; 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 = "CALL `sp_bill_payment_add_cash_pusat`(".$orderid.",".$amount.",".$amount.",".$headerid.",".$v['id'].",".$xuserid.")"; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if (!$query) { $this->sys_error_db("f_bill_payment_pusat_detail 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']; $selected_account = $v['selected_account']['id']; } $sql = "CALL `sp_bill_payment_add_noncash_pusat`(".$orderid.",".$amount.",".$amount.",".$headerid.",".$v['id'].",".$xuserid.",".$selected_card.",".$selected_edc.",".$selected_account.")"; //echo $sql; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if (!$query) { $this->sys_error_db("f_bill_payment_pusat_detail 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_BillPaymentPusatID as idx, F_BillPaymentPusatNumber as numberx FROM f_bill_payment_pusat WHERE F_BillPaymentPusatID = {$headerid}")->row(); $result = array( "total" => count($rows) , "records" => array('types'=>$rows,'data'=>$xdata) ); $this->sys_ok($result); exit; } function paymanual() { //# 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']; $amount = $prm['amount']; $paymenttype = $prm['paymenttype']; if($prm['paymenttype'] == 1 || $prm['paymenttype'] == 5){ $card = 0; $edc = 0; $account = 0; }elseif($prm['paymenttype'] == 4){ $card = 0; $edc = 0; $account = $prm['account']; }else{ $card = $prm['card']; $edc = $prm['edc']; $account = 0; } $voucher = $prm['voucher']; $bills = $prm['bills']; //$xnumber = $this->db_onedev->query("SELECT `fn_numbering`('PAY') as numberx")->row()->numberx; $sql = "INSERT INTO f_bill_payment_pusat (F_BillPaymentPusatF_BillIssuePusatID, F_BillPaymentPusatDate, F_BillPaymentPusatAmount, F_BillPaymentPusatM_PaymentTypeID, F_BillPaymentPusatEDCNat_BankID, F_BillPaymentPusatCardNat_BankID, F_BillPaymentPusatM_BankAccountID, F_BillPaymentPusatVoucherNumber, F_BillPaymentPusatCreated, F_BillPaymentPusatUserID) VALUES (?, CURDATE(), ?, ?, ?, ?, ?, ?, NOW(), ?)"; $query = $this->db_onedev->query($sql, array( $orderid, $amount, $paymenttype, $edc, $card, $account, $voucher, $xuserid ) ); $headerid = $this->db_onedev->insert_id(); if (!$query) { $this->sys_error_db("f_bill_payment_pusat insert"); exit; } else{ $sqlbill = "UPDATE f_bill_issue_pusat SET F_BillIssuePusatUnpaid = F_BillIssuePusatUnpaid - $amount, F_BillIssuePusatIsLunas = IF(F_BillIssuePusatUnpaid = 0,'Y','N') WHERE F_BillIssuePusatID = $orderid"; $querybill = $this->db_onedev->query($sqlbill); } //echo $headerid; foreach($bills as $k => $v){ if($v['tagihan_bayar'] > 0){ $F_BillIssuePusatDetailID = $v['F_BillIssuePusatDetailID']; $tagihan_bayar = $v['tagihan_bayar']; $F_BillIssuePusatDetailF_BillID = $v['F_BillIssuePusatDetailF_BillID']; $F_BillIssuePusatDetailM_BranchID = $v['F_BillIssuePusatDetailM_BranchID']; $sql = "INSERT INTO f_bill_payment_pusat_detail( F_BillPaymentPusatDetailF_BillPaymentPusatID, F_BillPaymentPusatDetailF_BillIssuePusatID, F_BillPaymentPusatDetailF_BillIssuePusatDetailID, F_BillPaymentPusatDetailAmount, F_BillPaymentPusatDetailUserID, F_BillPaymentPusatDetailCreated, F_BillPaymentPusatDetailLastUpdated) VALUES( $headerid, $orderid, $F_BillIssuePusatDetailID, $tagihan_bayar, $xuserid, now(), now())"; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); $billpaymentdetailid = $this->db_onedev->insert_id(); if (!$query) { $this->sys_error_db("f_bill_payment_pusat_detail cash insert"); exit; }else{ $sqlbilldetail = "UPDATE f_bill_issue_pusat_detail SET F_BillIssuePusatDetailUnpaid = F_BillIssuePusatDetailUnpaid - $tagihan_bayar WHERE F_BillIssuePusatDetailID = $F_BillIssuePusatDetailID"; $querybilldetail = $this->db_onedev->query($sqlbilldetail); $sqlpayment = "INSERT INTO f_payment_pusat (F_PaymentPusatF_BillID, F_PaymentPusatM_BranchID, F_PaymentPusatDate, F_PaymentPusatTotal, F_PaymentPusatCreated, F_PaymentPusatLastUpdated, F_PaymentPusatM_UserID) VALUES( $F_BillIssuePusatDetailF_BillID, $F_BillIssuePusatDetailM_BranchID, now(), $tagihan_bayar, now(), now(), $xuserid)"; $querypayment = $this->db_onedev->query($sqlpayment); $paymentid = $this->db_onedev->insert_id(); $sqlpaymentdetail = "INSERT INTO f_payment_pusatdetail (F_PaymentPusatDetailF_PaymentPusatID, F_PaymentPusatDetailM_PaymentTypeID, F_PaymentPusatDetailAmount, F_PaymentPusatDetailActual, F_PaymentPusatDetailChange, F_PaymentPusatDetailEDCNat_BankID, F_PaymentPusatDetailCardNat_BankID, F_PaymentPusatDetailM_BankAccountID, F_PaymentPusatDetailCreated, F_PaymentPusatDetailLastUpdated, F_PaymentPusatDetailUserID) VALUES( $paymentid, $paymenttype, $tagihan_bayar, $tagihan_bayar, 0, $edc, $card, $account, now(), now(), $xuserid)"; //echo $sqlpaymentdetail; $querypaymentdetail = $this->db_onedev->query($sqlpaymentdetail); $sqleditbillpaymentdetail = "UPDATE f_bill_payment_pusat_detail SET F_BillPaymentPusatDetailF_PaymentPusatID = $paymentid WHERE F_BillPaymentPusatDetailID = $billpaymentdetailid"; $queryeditbillpaymentdetail = $this->db_onedev->query($sqleditbillpaymentdetail); } } } $xdata = $this->db_onedev->query("SELECT F_BillPaymentPusatID as idx, F_BillPaymentPusatNumber as numberx FROM f_bill_payment_pusat WHERE F_BillPaymentPusatID = {$headerid}")->row(); $result = array( "total" => count($rows) , "records" => array('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_bill_payment_pusat SET F_BillPaymentPusatIsActive = 'N', F_BillPaymentPusatNote = '{$catatan}' WHERE F_BillPaymentPusatID = {$prmnota['note_id']}"; //echo $sql; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("f_bill_payment_pusat delete"); exit; } $sql = "UPDATE f_bill_payment_pusat_detail SET F_BillPaymentPusatDetailIsActive = 'N' WHERE F_BillPaymentPusatDetailF_BillPaymentPusatID = {$prmnota['note_id']}"; //echo $sql; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("f_bill_payment_pusat_detail delete"); exit; } $result = array( "total" => 1 , "records" => array('prm'=>$prm) ); $this->sys_ok($result); exit; } }