pos-gis/app/Models/purchaseModel.php
2024-10-08 13:24:47 +07:00

141 lines
3.8 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 purchaseModel extends Model
{
protected $primaryKey = 'transaction_id';
protected $table = 'payment_pln_transaction';
public $timestamps = false;
public function initData($request,$route)
{
// INIT DB
$data['title'] = 'Laporan Purchase';
$data['actButton'] = ['edit'];
$data['tableHead'] =
array(
["Purchase Time","all","transaction_time"],
["Company ID","all","mid"],
["Amount","all","amount"],
["Fee","all","fee"],
["Account No","all","account_number"],
["IdPel","all","phone_no"],
["Product Group Name","all","product_group_name"],
["No Resi","all","no_resi"],
["Terminal ID","all","tid"],
["Status","all","transaction_status_desc"],
["Keterangan","all","msg"],
);
$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 pt.mid = '".$request->merchant."' ";
}
}
$dtable = \DB::select("SELECT
pt.*,
username,
service_name,
merchant_nm,
transaction_status_desc,
pg.product_group_name,
(case
when r.msg isnull then (
select
msg
from
responsecode
where
service_id = '0'
and response_uid =
(case
when pt.rc_biller isnull then pt.rc_sw
else
(case
when pt.rc_biller = '0' then '00'
else pt.rc_biller
end)
end)
and lang = 'in')
else r.msg
end ) as msg
from
purchase_transaction pt
left join users on
pt.user_uid = users.user_uid
left join merchant on
merchant.mid = pt.mid
left join service on
pt.service_id = service.service_id
left join reff_transaction_status on
pt.transaction_status_id = reff_transaction_status.transaction_status_id
left join product_group pg on
pg.product_group_id = pt.product_group_id
left join responsecode r on
r.service_id = pt.service_id
and r.response_uid =
case
when pt.rc_biller isnull then pt.rc_sw
else pt.rc_biller
end
and r.lang = 'in'
where 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;
}
}