Update query to include partial norujukan sag match
This commit is contained in:
@@ -483,6 +483,10 @@ class TebusController extends Controller
|
||||
$wakil = Wakil::on($cawangan['mysql'])
|
||||
->orderBy('nowakil','desc')
|
||||
->first();
|
||||
|
||||
if(!$wakil){
|
||||
return response(0);
|
||||
}
|
||||
|
||||
if($wakil['nowakil'])
|
||||
return response($wakil['nowakil']);
|
||||
|
||||
@@ -719,78 +719,5 @@ class TransactionOnlineController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function getListTransactionOnlineTrail(Request $request)
|
||||
{
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
$isGroupByNorujukan = $request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1';
|
||||
|
||||
$transactionsOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->orderBy('tarikh', 'desc')
|
||||
->orderBy('masa', 'desc')
|
||||
->get()
|
||||
->filter(fn($x) => $x['status'] === 'PAID')
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->where('teller', 'Online')
|
||||
->when($request->norujukan, function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->orderBy('created_at', 'desc')
|
||||
->get()
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->when($request->norujukan, function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->orderBy('tarikh_bayaran', 'desc')
|
||||
->get()
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->where('kodcaw', 'KB2')->first()->mysql;
|
||||
|
||||
$cawanganTransactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->get()
|
||||
->pluck('kodcaw')
|
||||
->unique()
|
||||
->all();
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->whereIn('kodcaw', $cawanganTransactionOnline)->get()->pluck('mysql');
|
||||
|
||||
$glDetail = $connectionCawangan->map(fn($x) => GlDetail::on($x)->where('teller', 'ONLINE')->whereDate('tarikh', $date)->get())
|
||||
->flatten()
|
||||
->when($isGroupByNorujukan, function ($glDetail) {
|
||||
return $glDetail->groupBy('descpt')
|
||||
->keyBy(function ($group, $key) {
|
||||
$array = explode(' ', $key);
|
||||
return end($array);
|
||||
});
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($glDetail) use ($request) {
|
||||
return $glDetail->filter(fn($x) => strpos($x->descpt, $request->norujukan) !== false);
|
||||
})
|
||||
->sortKeysDesc()
|
||||
->toArray();
|
||||
|
||||
return response()->json([
|
||||
'transactionsOnline' => $transactionsOnline,
|
||||
'transaction' => $transaction,
|
||||
'transaksiKeuntungan' => $transaksiKeuntungan,
|
||||
'glDetail' => $glDetail,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Cawangan;
|
||||
use App\GlDetail;
|
||||
use App\Transaction;
|
||||
use App\TransactionOnline;
|
||||
use App\TransaksiKeuntungan;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TransactionOnlineTrailController extends Controller
|
||||
{
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
|
||||
$transactionsOnline = $this->getTransactionOnlineQuery($date, $request);
|
||||
$transaction = $this->getTransactionQuery($date, $request);
|
||||
$transaksiKeuntungan = $this->getTransaksiKeuntunganQuery($date, $request);
|
||||
$glDetail = $this->getGlDetailQuery($date, $request);
|
||||
|
||||
return response()->json([
|
||||
'transactionsOnline' => $transactionsOnline,
|
||||
'transaction' => $transaction,
|
||||
'transaksiKeuntungan' => $transaksiKeuntungan,
|
||||
'glDetail' => $glDetail,
|
||||
]);
|
||||
}
|
||||
|
||||
private function getTransactionOnlineQuery($date, $request)
|
||||
{
|
||||
$transactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get();
|
||||
|
||||
if ($transactionOnline->isEmpty()) {
|
||||
$transactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', 'LIKE', '%' . $request->norujukan . '%');
|
||||
})
|
||||
->get();
|
||||
}
|
||||
|
||||
$transactionOnline = $transactionOnline
|
||||
->sortByDesc('tarikh')
|
||||
->sortByDesc('masa')
|
||||
->filter(fn($x) => $x['status'] === 'PAID')
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
return $transactionOnline;
|
||||
}
|
||||
|
||||
private function getTransactionQuery($date, $request)
|
||||
{
|
||||
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->get();
|
||||
|
||||
if ($transaction->isEmpty()) {
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', 'LIKE', '%' . $request->norujukan . '%');
|
||||
})
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->get();
|
||||
}
|
||||
|
||||
return $transaction->sortByDesc('created_at')->toArray();
|
||||
}
|
||||
|
||||
private function getTransaksiKeuntunganQuery($date, $request)
|
||||
{
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->get();
|
||||
|
||||
if ($transaksiKeuntungan->isEmpty()) {
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', 'LIKE', '%' . $request->norujukan . '%');
|
||||
})
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->get();
|
||||
}
|
||||
|
||||
return $transaksiKeuntungan->toArray();
|
||||
}
|
||||
|
||||
public function getGlDetailQuery($date, $request)
|
||||
{
|
||||
|
||||
$isGroupByNorujukan = $request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1';
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->where('kodcaw', 'KB2')->first()->mysql;
|
||||
|
||||
$cawanganTransactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->get()
|
||||
->pluck('kodcaw')
|
||||
->unique()
|
||||
->all();
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->whereIn('kodcaw', $cawanganTransactionOnline)->get()->pluck('mysql');
|
||||
|
||||
$glDetail = $connectionCawangan->map(fn($x) => GlDetail::on($x)->where('teller', 'ONLINE')->whereDate('tarikh', $date)->get())
|
||||
->flatten()
|
||||
->when($isGroupByNorujukan, function ($glDetail) {
|
||||
return $glDetail->groupBy('descpt')
|
||||
->keyBy(function ($group, $key) {
|
||||
$array = explode(' ', $key);
|
||||
return end($array);
|
||||
});
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($glDetail) use ($request) {
|
||||
return $glDetail->filter(fn($x) => strpos($x->descpt, $request->norujukan) !== false);
|
||||
})
|
||||
->sortKeysDesc()
|
||||
->toArray();
|
||||
|
||||
return $glDetail;
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -17,6 +17,8 @@
|
||||
// return \Illuminate\Support\Str::random(32);
|
||||
// });
|
||||
|
||||
use App\Http\Controllers\TransactionOnlineTrailController;
|
||||
use App\Transaction;
|
||||
|
||||
$router->group(['namespace' => '\Rap2hpoutre\LaravelLogViewer'], function() use ($router) {
|
||||
$router->get('logs', 'LogViewerController@index');
|
||||
@@ -261,7 +263,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
$router->put('transaction/online/unsuccesfull/update',['uses'=>'TransactionOnlineController@updateUnsuccessfulTransaction']);
|
||||
$router->put('transaction/online/tagportal',['uses'=>'TransactionOnlineController@updateTagPortal']);
|
||||
$router->get('transaction/online/query',['uses'=>'TransactionOnlineController@getListTransactionOnlineQuery']);
|
||||
$router->get('transaction/online/trail',['uses'=>'TransactionOnlineController@getListTransactionOnlineTrail']);
|
||||
$router->get('transaction/online/trail',['uses'=>'TransactionOnlineTrailController@index']);
|
||||
$router->get('transaction/online/log',['uses'=>'TransactionOnlineLogController@index']);
|
||||
$router->post('transaction/online/log',['uses'=>'TransactionOnlineLogController@create']);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user