Add online transaction log module
This commit is contained in:
@@ -2,25 +2,24 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\TransactionOnline;
|
||||
use App\Advansur;
|
||||
use App\Transaction;
|
||||
use App\TransaksiKeuntungan;
|
||||
use App\Gadai;
|
||||
use App\Cawangan;
|
||||
use App\GlDetail;
|
||||
use App\Audit;
|
||||
use Illuminate\Http\Request;
|
||||
use Carbon\Carbon;
|
||||
use App\Services\OnePercentServices;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Http\Request as HttpRequest;
|
||||
use App\Support\v2\GadaiV2 as Version2Gadai;
|
||||
use App\Support\v2\Calculation;
|
||||
|
||||
use App\Cawangan;
|
||||
use App\Gadai;
|
||||
use App\GlDetail;
|
||||
use App\Http\Controllers\TebusController as TebusController;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use App\Services\Loggers\OnlineTransactionLoggerService;
|
||||
use App\Services\OnePercentServices;
|
||||
use App\Support\v2\Calculation;
|
||||
use App\Support\v2\GadaiV2 as Version2Gadai;
|
||||
use App\Transaction;
|
||||
use App\TransactionOnline;
|
||||
use App\TransactionOnlineStatus;
|
||||
use App\TransaksiKeuntungan;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class TransactionOnlineController extends Controller
|
||||
{
|
||||
@@ -30,20 +29,18 @@ class TransactionOnlineController extends Controller
|
||||
|
||||
return response()->json($transactionOnline);
|
||||
}
|
||||
|
||||
|
||||
public function getListTransactionOnlineQuery(Request $request)
|
||||
{
|
||||
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
$transactionOnline = TransactionOnline::on('mysql7')
|
||||
->whereDate('tarikh', $date)
|
||||
->get();
|
||||
|
||||
|
||||
->whereDate('tarikh', $date)
|
||||
->get();
|
||||
|
||||
return response()->json($transactionOnline);
|
||||
}
|
||||
|
||||
|
||||
public function getLatestNosiri()
|
||||
{
|
||||
$current = Carbon::now();
|
||||
@@ -75,7 +72,7 @@ class TransactionOnlineController extends Controller
|
||||
'masa' => $current->toTimeString(),
|
||||
'customer_name' => $request->customer_name,
|
||||
'tempohbayar' => $sag['tempoh'],
|
||||
'jenisbayaran' => $request->jenisbayaran ? $request->jenisbayaran : 'A'
|
||||
'jenisbayaran' => $request->jenisbayaran ? $request->jenisbayaran : 'A',
|
||||
]);
|
||||
|
||||
return response()->json($transaction, 201);
|
||||
@@ -85,7 +82,7 @@ class TransactionOnlineController extends Controller
|
||||
{
|
||||
$transaction = TransactionOnline::on('mysql7')->where('billplz_id', '=', $request->billplz_id)->update(array(
|
||||
'status' => $request->status,
|
||||
'paid_at' => $request->paid_at
|
||||
'paid_at' => $request->paid_at,
|
||||
));
|
||||
|
||||
return response()->json($transaction, 200);
|
||||
@@ -103,27 +100,40 @@ class TransactionOnlineController extends Controller
|
||||
$gadai_data = Gadai::on($cawangan['mysql'])->where([['norujukan', $transaction['norujukan']], ['nokp', $transaction['nokp']]])->first();
|
||||
if ($transaction->jenisbayaran == 'A') {
|
||||
if ($gadai_data['hargajualan'] > 0) {
|
||||
$response = $this->updateGadaiMarhunOnline($transaction['kodcaw'], $transaction['norujukan'], $transaction['total_payment'], $transaction['paid_at'], $transaction['tempohbayar']);
|
||||
$response = $this->updateGadaiMarhunOnline($transaction['kodcaw'], $transaction['norujukan'], $transaction['total_payment'], $transaction['paid_at'], $transaction['tempohbayar'], $transaction['billplz_id']);
|
||||
} else {
|
||||
$this->createAdvansur($transaction['kodcaw'], $transaction['norujukan'], $transaction['total_payment'], $transaction['paid_at']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
GlDetail::on($cawangan['mysql'])->create([
|
||||
$glDetailData = [
|
||||
'kodcaw' => $transaction['kodcaw'],
|
||||
'tarikh' => Carbon::parse($transaction['paid_at'])->format('Y-m-d'),
|
||||
'dtacct' => '1000/010',
|
||||
'ktacct' => '1000/020',
|
||||
'descpt' => 'SERAHAN BAYAR ONLINE - ' . $transaction['norujukan'],
|
||||
'serahan' => $transaction['total_payment'],
|
||||
'teller' => 'ONLINE'
|
||||
]);
|
||||
'teller' => 'ONLINE',
|
||||
];
|
||||
|
||||
TransactionOnline::on('mysql7')->where([['norujukan', $transaction['norujukan']], ['billplz_id', $transaction['billplz_id']]])->update([
|
||||
try {
|
||||
$glDetail = GlDetail::on($cawangan['mysql'])->create($glDetailData);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($transaction->billplz_id, TransactionOnlineStatus::CRONJOB_REGISTER_GLDETAIL, $glDetail, $glDetailData);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($transaction->billplz_id, TransactionOnlineStatus::CRONJOB_REGISTER_GLDETAIL, $glDetail, $e->getMessage());
|
||||
}
|
||||
|
||||
$transactionOnlineData = [
|
||||
'update_status' => 1,
|
||||
'update_serahan' => 1
|
||||
]);
|
||||
'update_serahan' => 1,
|
||||
];
|
||||
|
||||
try {
|
||||
$transactionOnline = TransactionOnline::on('mysql7')->where([['norujukan', $transaction['norujukan']], ['billplz_id', $transaction['billplz_id']]])->update($transactionOnlineData);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($transaction['billplz_id'], TransactionOnlineStatus::CRONJOB_UPDATE_TRANSAKSI_ONLINE, $transactionOnlineData, $transactionOnline);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($transaction['billplz_id'], TransactionOnlineStatus::CRONJOB_UPDATE_TRANSAKSI_ONLINE, $transactionOnlineData, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json('success');
|
||||
@@ -246,8 +256,6 @@ class TransactionOnlineController extends Controller
|
||||
// }
|
||||
// $bilang_bln = $tempoh - $gadai['tempohbayar'];
|
||||
|
||||
|
||||
|
||||
// $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
|
||||
// 'norujukan' => $norujukan,
|
||||
// 'bayaran_keuntungan' => $upahsemasa,
|
||||
@@ -265,7 +273,6 @@ class TransactionOnlineController extends Controller
|
||||
// ]);
|
||||
//
|
||||
|
||||
|
||||
// DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$baki_pinjaman,$current,$norujukan,$gadai,$baki_hargajualan,$lelong_tawarruq,$margin_semasa){
|
||||
|
||||
// $margin_updated = ($baki_pinjaman / $gadai['nilaimarhun']) * 100;
|
||||
@@ -309,7 +316,7 @@ class TransactionOnlineController extends Controller
|
||||
// return response()->json("success",200);
|
||||
// }
|
||||
|
||||
public function updateGadaiMarhunOnline($kodcaw, $norujukan, $bayaran, $paid_at, $tempohbayar)
|
||||
public function updateGadaiMarhunOnline($kodcaw, $norujukan, $bayaran, $paid_at, $tempohbayar, $bill_id)
|
||||
{
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
@@ -343,9 +350,9 @@ class TransactionOnlineController extends Controller
|
||||
|
||||
try {
|
||||
|
||||
DB::connection('mysql7')->transaction(function () use ($norujukan, $gadai, $kodcaw, $current, $baki_hargajualan, $cawangan, $old_data, $lelong_tawarruq, $margin_semasa, $bayaran, $tempohbayar) {
|
||||
DB::connection('mysql7')->transaction(function () use ($norujukan, $gadai, $kodcaw, $current, $baki_hargajualan, $cawangan, $old_data, $lelong_tawarruq, $margin_semasa, $bayaran, $tempohbayar, $bill_id) {
|
||||
|
||||
$transaction = Transaction::on('mysql7')->create([
|
||||
$data = [
|
||||
'trans_type' => 'A',
|
||||
'norujukan' => $norujukan,
|
||||
'nokp' => $gadai['nokp'],
|
||||
@@ -354,7 +361,14 @@ class TransactionOnlineController extends Controller
|
||||
'duit_masuk' => $bayaran,
|
||||
'created_at' => $current,
|
||||
'bakiharga' => $baki_hargajualan,
|
||||
]);
|
||||
];
|
||||
|
||||
try {
|
||||
$transaction = Transaction::on('mysql7')->create($data);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_TRANSACTION, $data, $transaction);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_TRANSACTION, $data, $e->getMessage());
|
||||
}
|
||||
|
||||
if ($gadai['tempoh'] >= 12.0) {
|
||||
$tempoh = 12;
|
||||
@@ -368,7 +382,8 @@ class TransactionOnlineController extends Controller
|
||||
$baki_bayaran = $bayaran - $upahsemasa;
|
||||
$upahsemasa = $this->kiraupahTawarruq($kodcaw, $norujukan, $tempohbayar);
|
||||
$upahrebet = $this->kiraUpahRebet($kodcaw, $norujukan, $tempohbayar);
|
||||
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
|
||||
|
||||
$dataTransactionUpah = [
|
||||
'norujukan' => $norujukan,
|
||||
'bayaran_keuntungan' => $upahsemasa,
|
||||
'bayaran_pembiayaan' => $baki_bayaran,
|
||||
@@ -382,7 +397,15 @@ class TransactionOnlineController extends Controller
|
||||
'tempoh' => 0,
|
||||
'beza_tempoh' => 0,
|
||||
'margin_semasa' => 0,
|
||||
]);
|
||||
];
|
||||
|
||||
try {
|
||||
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create($dataTransactionUpah);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_TRANSAKSI_KEUNTUNGAN, $dataTransactionUpah, $transaction_upah);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_TRANSAKSI_KEUNTUNGAN, $dataTransactionUpah, $e->getMessage());
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
$onepercent = new OnePercentServices();
|
||||
@@ -404,7 +427,7 @@ class TransactionOnlineController extends Controller
|
||||
$keun = $onepercent->getRoundedMethod($onepercentasal * $bilang_bln);
|
||||
$keuntungan_rebate = $onepercent->getRoundedMethod($keuntungan['onepercent'] * $bilang_bln);
|
||||
|
||||
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
|
||||
$dataTransactionUpah = [
|
||||
'norujukan' => $norujukan,
|
||||
'bayaran_keuntungan' => $upahsemasa,
|
||||
'bayaran_pembiayaan' => $baki_bayaran,
|
||||
@@ -418,15 +441,22 @@ class TransactionOnlineController extends Controller
|
||||
'tempoh' => $gadai['tempoh'],
|
||||
'beza_tempoh' => $bilang_bln,
|
||||
'margin_semasa' => $margin_semasa,
|
||||
]);
|
||||
];
|
||||
|
||||
try {
|
||||
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create($dataTransactionUpah);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_TRANSAKSI_KEUNTUNGAN, $dataTransactionUpah, $transaction_upah);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_TRANSAKSI_KEUNTUNGAN, $dataTransactionUpah, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
$baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran;
|
||||
DB::connection($cawangan['mysql'])->transaction(function () use ($cawangan, $baki_pinjaman, $current, $norujukan, $gadai, $baki_hargajualan, $lelong_tawarruq, $margin_semasa) {
|
||||
DB::connection($cawangan['mysql'])->transaction(function () use ($cawangan, $baki_pinjaman, $current, $norujukan, $gadai, $baki_hargajualan, $lelong_tawarruq, $margin_semasa, $bill_id) {
|
||||
|
||||
$margin_updated = ($baki_pinjaman / $gadai['nilaimarhun']) * 100;
|
||||
|
||||
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan', '=', $norujukan)->update(array(
|
||||
$updateGadaiData = [
|
||||
'bakipjm' => $baki_pinjaman,
|
||||
'jbg' => 0,
|
||||
't_update' => $current->toDateString(),
|
||||
@@ -434,27 +464,41 @@ class TransactionOnlineController extends Controller
|
||||
'tempohbayar' => $gadai['tempoh'],
|
||||
'lelong_tawarruq' => $lelong_tawarruq,
|
||||
'margin_semasa' => $margin_updated,
|
||||
));
|
||||
];
|
||||
|
||||
try {
|
||||
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan', '=', $norujukan)->update($updateGadaiData);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_GADAI, $updateGadaiData, $update_gadai);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_UPDATE_GADAI, $updateGadaiData, $e->getMessage());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan', '=', $norujukan)->first();
|
||||
|
||||
$audit = new Audit();
|
||||
$audit->users = 'Online';
|
||||
$audit->actions = 'Bayaran Ansuran';
|
||||
$audit->norujukan = $norujukan;
|
||||
$audit->new_data = $new_data;
|
||||
$audit->old_data = $old_data;
|
||||
$audit->kodcaw = $kodcaw;
|
||||
$audit->created_at = $current;
|
||||
$audit->updated_at = $current;
|
||||
$audit->save();
|
||||
$auditData = [
|
||||
'users' => 'Online',
|
||||
'actions' => 'Bayaran Ansuran',
|
||||
'norujukan' => $norujukan,
|
||||
'new_data' => $new_data,
|
||||
'old_data' => $old_data,
|
||||
'kodcaw' => $kodcaw,
|
||||
'created_at' => $current,
|
||||
'updated_at' => $current,
|
||||
];
|
||||
|
||||
try {
|
||||
$audit = Audit::create($auditData);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_REGISTER_AUDIT, $auditData, $audit);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($bill_id, TransactionOnlineStatus::CRONJOB_REGISTER_AUDIT, $auditData, $e->getMessage());
|
||||
}
|
||||
|
||||
if (!$transaction || !$transaction_upah) {
|
||||
throw new \Exception('One of the database operations failed.');
|
||||
}
|
||||
|
||||
|
||||
DB::commit();
|
||||
});
|
||||
} catch (\Exception $e) {
|
||||
@@ -491,7 +535,7 @@ class TransactionOnlineController extends Controller
|
||||
'nowakil' => 0,
|
||||
'hubungan' => 0,
|
||||
'status' => 0,
|
||||
'historygadaian' => $norujukan
|
||||
'historygadaian' => $norujukan,
|
||||
]);
|
||||
|
||||
return response()->json($create_advansur, 201);
|
||||
@@ -541,7 +585,7 @@ class TransactionOnlineController extends Controller
|
||||
{
|
||||
$transaction = TransactionOnline::on('mysql7')->where('billplz_id', '=', $request->billplz_id)->update(array(
|
||||
'status' => $request->status,
|
||||
'paid_at' => $request->paid_at
|
||||
'paid_at' => $request->paid_at,
|
||||
));
|
||||
|
||||
return response()->json($transaction, 200);
|
||||
@@ -554,7 +598,6 @@ class TransactionOnlineController extends Controller
|
||||
$gadai_all = [];
|
||||
$akanlelongarray = [];
|
||||
|
||||
|
||||
foreach ($cawangan_all as $index => $cawangan) {
|
||||
$gadai = Gadai::on($cawangan['mysql'])
|
||||
->where([['sttebus', '=', ''], ['taglel', 0], ['nokp', '=', $request->ic]])
|
||||
@@ -571,7 +614,7 @@ class TransactionOnlineController extends Controller
|
||||
}
|
||||
|
||||
$array_utg = new \Illuminate\Http\Request([
|
||||
'jeniskeuntungan' => $jenis
|
||||
'jeniskeuntungan' => $jenis,
|
||||
]);
|
||||
|
||||
$result = (new TebusController)->upahTawarruq($gad['kodcaw'], $gad['norujukan'], $array_utg);
|
||||
@@ -606,7 +649,7 @@ class TransactionOnlineController extends Controller
|
||||
}
|
||||
|
||||
$array_utg = new \Illuminate\Http\Request([
|
||||
'jeniskeuntungan' => $jenis
|
||||
'jeniskeuntungan' => $jenis,
|
||||
]);
|
||||
|
||||
$result = (new TebusController)->kiraupahTawarruq($lelong['kodcaw'], $lelong['norujukan'], $array_utg);
|
||||
@@ -619,7 +662,7 @@ class TransactionOnlineController extends Controller
|
||||
return response()->json(
|
||||
array(
|
||||
'gadai' => $gadai_all,
|
||||
'lelong' => $akanlelongarray
|
||||
'lelong' => $akanlelongarray,
|
||||
),
|
||||
200
|
||||
);
|
||||
@@ -628,7 +671,7 @@ class TransactionOnlineController extends Controller
|
||||
public function updateTagPortal(Request $request)
|
||||
{
|
||||
$transaction = TransactionOnline::on('mysql7')->where('billplz_id', '=', $request->billplz_id)->update(array(
|
||||
'tagportal' => 1
|
||||
'tagportal' => 1,
|
||||
));
|
||||
|
||||
return response()->json($transaction, 200);
|
||||
@@ -639,7 +682,7 @@ class TransactionOnlineController extends Controller
|
||||
try {
|
||||
|
||||
$gadai = (new GadaiController())->showOneGadaibyRujukanAndCawangan($kodcaw, $norujukan)
|
||||
->getData()[0];
|
||||
->getData()[0];
|
||||
|
||||
$jenis_keuntungan = $gadai->tagbaru === 1 ? 'onepercent' : 'asal';
|
||||
|
||||
@@ -650,8 +693,8 @@ class TransactionOnlineController extends Controller
|
||||
$upah_rebet_tawarruq = (new TebusController())->upahRebetTawarruq($kodcaw, $norujukan, $request_upah_rebet_tawarruq);
|
||||
|
||||
if ($jenis_keuntungan === 'onepercent') {
|
||||
$ujrah_sebenar = (float)$upah_tawarruq['ujrah'];
|
||||
$ujrah_rebet = $ujrah_sebenar - (float)$upah_rebet_tawarruq['ujrah'];
|
||||
$ujrah_sebenar = (float) $upah_tawarruq['ujrah'];
|
||||
$ujrah_rebet = $ujrah_sebenar - (float) $upah_rebet_tawarruq['ujrah'];
|
||||
|
||||
return [
|
||||
'ujrah_sebenar' => $ujrah_sebenar,
|
||||
@@ -660,29 +703,29 @@ class TransactionOnlineController extends Controller
|
||||
}
|
||||
|
||||
return [
|
||||
'ujrah_sebenar' => (float)$upah_tawarruq,
|
||||
'ujrah_rebet' => (float)$upah_rebet_tawarruq,
|
||||
'ujrah_sebenar' => (float) $upah_tawarruq,
|
||||
'ujrah_rebet' => (float) $upah_rebet_tawarruq,
|
||||
];
|
||||
} catch (\Throwable $th) {
|
||||
Log::error($th);
|
||||
return $th;
|
||||
}
|
||||
}
|
||||
|
||||
function getListTransactionOnlineTrail(Request $request)
|
||||
|
||||
public function getListTransactionOnlineTrail(Request $request)
|
||||
{
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
$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) {
|
||||
->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')
|
||||
->filter(fn($x) => $x['status'] === 'PAID')
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
@@ -690,7 +733,7 @@ class TransactionOnlineController extends Controller
|
||||
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->where('teller', 'Online')
|
||||
->when($request->norujukan, function ($query) use($request) {
|
||||
->when($request->norujukan, function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->orderBy('created_at', 'desc')
|
||||
@@ -701,7 +744,7 @@ class TransactionOnlineController extends Controller
|
||||
->toArray();
|
||||
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->when($request->norujukan, function ($query) use($request) {
|
||||
->when($request->norujukan, function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->orderBy('tarikh_bayaran', 'desc')
|
||||
@@ -720,17 +763,17 @@ class TransactionOnlineController extends Controller
|
||||
->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())
|
||||
|
||||
$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);
|
||||
});
|
||||
->keyBy(function ($group, $key) {
|
||||
$array = explode(' ', $key);
|
||||
return end($array);
|
||||
});
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($glDetail) use($request) {
|
||||
->when($request->filled('norujukan'), function ($glDetail) use ($request) {
|
||||
return $glDetail->filter(fn($x) => strpos($x->descpt, $request->norujukan) !== false);
|
||||
})
|
||||
->sortKeysDesc()
|
||||
@@ -740,7 +783,7 @@ class TransactionOnlineController extends Controller
|
||||
'transactionsOnline' => $transactionsOnline,
|
||||
'transaction' => $transaction,
|
||||
'transaksiKeuntungan' => $transaksiKeuntungan,
|
||||
'glDetail' => $glDetail
|
||||
'glDetail' => $glDetail,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Services\Loggers\OnlineTransactionLoggerService;
|
||||
use App\TransactionOnlineLog;
|
||||
use App\TransactionOnlineStatus;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TransactionOnlineLogController extends Controller
|
||||
{
|
||||
public function create(Request $request)
|
||||
{
|
||||
$log = OnlineTransactionLoggerService::logs($request);
|
||||
|
||||
return response()->json($log, 201);
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$transactionOnlineLogs = TransactionOnlineLog::query()
|
||||
->when($request->filled('date'), function ($query) use ($request) {
|
||||
return $query->whereDate('created_at', $request->date);
|
||||
})
|
||||
->get()
|
||||
->map(function ($x) {
|
||||
$x->status_label = TransactionOnlineStatus::statusLabel($x->status);
|
||||
return $x;
|
||||
});
|
||||
|
||||
return response()->json($transactionOnlineLogs, 200);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Loggers;
|
||||
|
||||
use App\TransactionOnlineLog;
|
||||
|
||||
class OnlineTransactionLoggerService
|
||||
{
|
||||
public static function logs($request)
|
||||
{
|
||||
$log = TransactionOnlineLog::create([
|
||||
'bill_id' => $request->bill_id,
|
||||
'status' => $request->status,
|
||||
'payload' => $request->payload,
|
||||
'response' => $request->response,
|
||||
]);
|
||||
|
||||
return $log;
|
||||
}
|
||||
|
||||
public static function logsAfterDBTransaction($bill_id, $status, $request, $response)
|
||||
{
|
||||
$formatToString = function ($data) {
|
||||
if (is_array($data) || is_object($data)) {
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
return $data;
|
||||
};
|
||||
|
||||
$log = TransactionOnlineLog::create([
|
||||
'bill_id' => $formatToString($bill_id),
|
||||
'status' => $formatToString($status),
|
||||
'payload' => $formatToString($request),
|
||||
'response' => $formatToString($response),
|
||||
]);
|
||||
|
||||
return $log;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class TransactionOnlineLog extends Model
|
||||
{
|
||||
|
||||
protected $table = 'log_transaction_online';
|
||||
|
||||
protected $guarded = [];
|
||||
|
||||
public function getCreatedAtAttribute($value)
|
||||
{
|
||||
$value = Carbon::parse($value);
|
||||
return $value ? $value->format('d/m/Y H:i:s') : null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class TransactionOnlineStatus extends Model
|
||||
{
|
||||
const BILL_CREATED = 1;
|
||||
const INITIALIZED_TRANSACTION = 2;
|
||||
const UPDATED_TAG_PORTAL = 3;
|
||||
const UPDATE_TRANSACTION_CALLBACK = 4;
|
||||
const UPDATE_TRANSACTION_REDIRECT = 5;
|
||||
const CRONJOB_UPDATE_TRANSACTION = 6;
|
||||
const CRONJOB_UPDATE_TRANSAKSI_KEUNTUNGAN = 7;
|
||||
const CRONJOB_UPDATE_GADAI = 8;
|
||||
const CRONJOB_REGISTER_AUDIT = 9;
|
||||
const CRONJOB_REGISTER_GLDETAIL = 10;
|
||||
const CRONJOB_UPDATE_TRANSAKSI_ONLINE = 11;
|
||||
|
||||
public static function listStatus()
|
||||
{
|
||||
return [
|
||||
self::BILL_CREATED => 'Bill Created',
|
||||
self::INITIALIZED_TRANSACTION => 'Initialized Transaction',
|
||||
self::UPDATED_TAG_PORTAL => 'Updated Tag Portal',
|
||||
self::UPDATE_TRANSACTION_CALLBACK => 'Update Transaction Callback',
|
||||
self::UPDATE_TRANSACTION_REDIRECT => 'Update Transaction Redirect',
|
||||
self::CRONJOB_UPDATE_TRANSACTION => 'Cronjob Update Transaction',
|
||||
self::CRONJOB_UPDATE_TRANSAKSI_KEUNTUNGAN => 'Cronjob Update Transaksi Keuntungan',
|
||||
self::CRONJOB_UPDATE_GADAI => 'Cronjob Update Gadai',
|
||||
self::CRONJOB_REGISTER_AUDIT => 'Cronjob Register Audit',
|
||||
self::CRONJOB_REGISTER_GLDETAIL => 'Cronjob Register GlDetail',
|
||||
self::CRONJOB_UPDATE_TRANSAKSI_ONLINE => 'Cronjob Update Transaksi Online',
|
||||
];
|
||||
}
|
||||
|
||||
public static function statusLabel($status_code)
|
||||
{
|
||||
$list = self::listStatus();
|
||||
|
||||
return isset($list[$status_code])
|
||||
? $list[$status_code]
|
||||
: $status_code;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateTransactionOnlineLogs extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('log_transaction_online', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('bill_id');
|
||||
$table->unsignedInteger('status');
|
||||
$table->string('payload', 10000);
|
||||
$table->string('response', 10000);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('log_transaction_online');
|
||||
}
|
||||
}
|
||||
@@ -262,6 +262,8 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
$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/log',['uses'=>'TransactionOnlineLogController@index']);
|
||||
$router->post('transaction/online/log',['uses'=>'TransactionOnlineLogController@create']);
|
||||
|
||||
//ANSURAN UPAH API
|
||||
$router->get('ansuran/laporan/{kodcaw}',['uses'=>'GadaiController@getLaporanAnsuran']);
|
||||
|
||||
Reference in New Issue
Block a user