pos-gis/app/Models/transferModel.php
2024-10-07 13:13:42 +07:00

137 lines
3.7 KiB
PHP

<?php
namespace App\Models;
use Datatables, DB;
use Exception;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Yajra\DataTables\DataTables as DT;
use Illuminate\Support\Facades\Http;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\User as Authenticatable;
class transferModel extends Model
{
protected $primaryKey = 'transaction_id';
protected $table = 'transfer_transaction';
public $timestamps = false;
public function initData($request,$route)
{
// INIT DB
$data['title'] = 'Laporan Transfer';
$data['actButton'] = [''];
$data['tableHead'] =
array(
["Transfer Time","all","transaction_time"],
["Jenis Transfer","all","service_name"],
["Bank Tujuan","all","bank_name"],
["No Rekening Tujuan","all","dest_acct_no"],
["Account No","all","account_number"],
["Card No","all","card_no"],
["From","all","source_name"],
["To","all","dest_name"],
["Amount","all","amount"],
["Status","all","transaction_status_desc"],
["Keterangan","all","keterangan"],
);
$data['db'] = $this->table;
$data['db_key'] = $this->primaryKey;
$data['route'] = $route;
$cGlobal = new Controller();
$startDate = date('Y-m-d',strtotime($request->startDate)).' 00:00:00';
$endDate = date('Y-m-d',strtotime($request->endDate)).' 24:00:00';
$filterMerchant = '';
if ($request->merchant != null) {
if ($request->merchant == 'all') {
$filterMerchant = '';
}else{
$filterMerchant = " and tt.mid = '".$request->merchant."' ";
}
}
$dtable = \DB::select("SELECT
tt.transaction_id,
tt.transaction_time,
tt.dest_acct_no,
tt.account_number,
tt.source_name,
tt.dest_name,
tt.amount,
service_name,
username,
tt.card_no,
transaction_status_desc,
r.response_uid ,
r.service_id ,
r.msg,
bank_name,
(case
when r.msg isnull then (
select
msg
from
responsecode
where
service_id = '0'
and response_uid = tt.rc_sw
and lang = 'in')
else r.msg
end ) as keterangan
from
transfer_transaction tt
left join service on
tt.service_id = service.service_id
left join users on
tt.user_uid = users.user_uid
left join reff_transaction_status on
tt.transaction_status_id = reff_transaction_status.transaction_status_id
left join responsecode r on
r.response_uid = tt.rc_sw
and r.service_id = tt.service_id
and r.lang = 'in'
left join reff_bank rb on
rb.bank_code = tt.bank_code
where service.service_group in ('antarbank', 'transfer')
and transaction_time >= ? and transaction_time <= ? ".$filterMerchant,[$startDate,$endDate]);
// LIST DATA TABLE
$data['data_table'] = $dtable;
// FORM FIELD FOR STORE
$data['set_field'] = [
];
foreach($data['tableHead'] as $v){
$arrHead[] = $v[2];
}
$data['head'] = implode(",",$arrHead);
return $data;
}
public function getDT($data,$init)
{
$dt = DT::of($data);
$dt->editColumn('transaction_time',function($data) {
return date('d-m-Y H:i:s',strtotime($data->transaction_time));
});
$dt->editColumn('transaction_id',function($data) {
return substr($data->transaction_id, 0, 18);
});
return $dt;
}
}