Fix ujrah rebet calculation
This commit is contained in:
@@ -20,6 +20,7 @@ use App\Support\v2\GadaiV2 as Version2Gadai;
|
|||||||
use App\Support\v2\Calculation;
|
use App\Support\v2\Calculation;
|
||||||
|
|
||||||
use App\Http\Controllers\TebusController as TebusController;
|
use App\Http\Controllers\TebusController as TebusController;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
|
||||||
class TransactionOnlineController extends Controller
|
class TransactionOnlineController extends Controller
|
||||||
{
|
{
|
||||||
@@ -44,7 +45,7 @@ class TransactionOnlineController extends Controller
|
|||||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first();
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first();
|
||||||
|
|
||||||
$sag = Gadai::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->first();
|
$sag = Gadai::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->first();
|
||||||
|
|
||||||
$transaction = TransactionOnline::on('mysql7')->create([
|
$transaction = TransactionOnline::on('mysql7')->create([
|
||||||
'nokp' => $request->nokp,
|
'nokp' => $request->nokp,
|
||||||
'reference_no' => $request->reference_no,
|
'reference_no' => $request->reference_no,
|
||||||
@@ -88,7 +89,7 @@ class TransactionOnlineController extends Controller
|
|||||||
$this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']);
|
$this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GlDetail::on($cawangan['mysql'])->create([
|
GlDetail::on($cawangan['mysql'])->create([
|
||||||
'kodcaw' => $transaction['kodcaw'],
|
'kodcaw' => $transaction['kodcaw'],
|
||||||
@@ -187,7 +188,7 @@ class TransactionOnlineController extends Controller
|
|||||||
// if($gadai['tagbaru'] == 1){
|
// if($gadai['tagbaru'] == 1){
|
||||||
// $upah_semasa = $keuntungan;
|
// $upah_semasa = $keuntungan;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// $baki_hargajualan = $gadai['bakihargajualan'] - $bayaran;
|
// $baki_hargajualan = $gadai['bakihargajualan'] - $bayaran;
|
||||||
|
|
||||||
// $baki_bayaran = $bayaran - $upahsemasa;
|
// $baki_bayaran = $bayaran - $upahsemasa;
|
||||||
@@ -224,7 +225,7 @@ class TransactionOnlineController extends Controller
|
|||||||
// }
|
// }
|
||||||
// $bilang_bln = $tempoh - $gadai['tempohbayar'];
|
// $bilang_bln = $tempoh - $gadai['tempohbayar'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
|
// $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
|
||||||
// 'norujukan' => $norujukan,
|
// 'norujukan' => $norujukan,
|
||||||
@@ -241,8 +242,8 @@ class TransactionOnlineController extends Controller
|
|||||||
// 'beza_tempoh' => $bilang_bln,
|
// 'beza_tempoh' => $bilang_bln,
|
||||||
// 'margin_semasa' => $margin_semasa,
|
// 'margin_semasa' => $margin_semasa,
|
||||||
// ]);
|
// ]);
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
// 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){
|
||||||
|
|
||||||
@@ -313,13 +314,13 @@ class TransactionOnlineController extends Controller
|
|||||||
|
|
||||||
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||||
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
|
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
|
||||||
|
|
||||||
$baki_hargajualan = $gadai['bakihargajualan'] - $bayaran;
|
$baki_hargajualan = $gadai['bakihargajualan'] - $bayaran;
|
||||||
|
|
||||||
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
|
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
|
||||||
|
|
||||||
try {
|
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) {
|
||||||
|
|
||||||
$transaction = Transaction::on('mysql7')->create([
|
$transaction = Transaction::on('mysql7')->create([
|
||||||
@@ -339,7 +340,7 @@ class TransactionOnlineController extends Controller
|
|||||||
$tempoh = $gadai['tempoh'];
|
$tempoh = $gadai['tempoh'];
|
||||||
}
|
}
|
||||||
$bilang_bln = $tempoh - $gadai['tempohbayar'];
|
$bilang_bln = $tempoh - $gadai['tempohbayar'];
|
||||||
|
|
||||||
if($gadai['tagbaru'] == 0){
|
if($gadai['tagbaru'] == 0){
|
||||||
$upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$tempohbayar);
|
$upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$tempohbayar);
|
||||||
$baki_bayaran = $bayaran - $upahsemasa;
|
$baki_bayaran = $bayaran - $upahsemasa;
|
||||||
@@ -361,7 +362,7 @@ class TransactionOnlineController extends Controller
|
|||||||
'margin_semasa' => $margin_semasa,
|
'margin_semasa' => $margin_semasa,
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
$onepercent = new OnePercentServices();
|
$onepercent = new OnePercentServices();
|
||||||
$keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa);
|
$keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa);
|
||||||
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['percentpinj']);
|
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['percentpinj']);
|
||||||
@@ -372,10 +373,12 @@ class TransactionOnlineController extends Controller
|
|||||||
$upahsemasa = $gadaionepercent->kiraupahOnePercent($norujukan);
|
$upahsemasa = $gadaionepercent->kiraupahOnePercent($norujukan);
|
||||||
$upahrebet = $gadaionepercent->kiraUpahRebet($norujukan);
|
$upahrebet = $gadaionepercent->kiraUpahRebet($norujukan);
|
||||||
$baki_bayaran = $bayaran - $upahsemasa;
|
$baki_bayaran = $bayaran - $upahsemasa;
|
||||||
|
|
||||||
|
$ujrah_calculation = $this->getUjrah($kodcaw, $norujukan);
|
||||||
|
|
||||||
$onepercent = new Calculation();
|
$onepercent = new Calculation();
|
||||||
$ujrah = $onepercent->getRoundedMethod($ujrahasal * $bilang_bln);
|
$ujrah = $onepercent->getRoundedMethod($ujrahasal * $bilang_bln);
|
||||||
$ujrah_rebate = $onepercent->getRoundedMethod($keuntungan['ujrah'] * $bilang_bln);
|
$ujrah_rebate = $onepercent->getRoundedMethod($ujrah_calculation['ujrah_sebenar'] - $ujrah_calculation['ujrah_rebet']);
|
||||||
$keun = $onepercent->getRoundedMethod($onepercentasal * $bilang_bln);
|
$keun = $onepercent->getRoundedMethod($onepercentasal * $bilang_bln);
|
||||||
$keuntungan_rebate = $onepercent->getRoundedMethod($keuntungan['onepercent'] * $bilang_bln);
|
$keuntungan_rebate = $onepercent->getRoundedMethod($keuntungan['onepercent'] * $bilang_bln);
|
||||||
|
|
||||||
@@ -393,9 +396,9 @@ class TransactionOnlineController extends Controller
|
|||||||
'tempoh' => $gadai['tempoh'],
|
'tempoh' => $gadai['tempoh'],
|
||||||
'beza_tempoh' => $bilang_bln,
|
'beza_tempoh' => $bilang_bln,
|
||||||
'margin_semasa' => $margin_semasa,
|
'margin_semasa' => $margin_semasa,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran;
|
$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){
|
||||||
|
|
||||||
@@ -428,7 +431,7 @@ class TransactionOnlineController extends Controller
|
|||||||
if(!$transaction || !$transaction_upah) {
|
if(!$transaction || !$transaction_upah) {
|
||||||
throw new \Exception('One of the database operations failed.');
|
throw new \Exception('One of the database operations failed.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
@@ -485,7 +488,7 @@ class TransactionOnlineController extends Controller
|
|||||||
$current = new Carbon();
|
$current = new Carbon();
|
||||||
$boolmasa = false;
|
$boolmasa = false;
|
||||||
$transaction_online = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','PAID'],['update_status',0],['tarikh',$current->toDateString()]])->first();
|
$transaction_online = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','PAID'],['update_status',0],['tarikh',$current->toDateString()]])->first();
|
||||||
|
|
||||||
$transaction_masa = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','NOT PAID'],['tarikh',$current->toDateString()]])
|
$transaction_masa = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','NOT PAID'],['tarikh',$current->toDateString()]])
|
||||||
->orderBy('masa', 'desc')->first();
|
->orderBy('masa', 'desc')->first();
|
||||||
|
|
||||||
@@ -495,7 +498,7 @@ class TransactionOnlineController extends Controller
|
|||||||
$carbonmasaexpired->addMinutes(10);
|
$carbonmasaexpired->addMinutes(10);
|
||||||
|
|
||||||
$boolmasa = ($carbonmasaexpired->greaterThanOrEqualTo($current) && $carbonmasa->lessThanOrEqualTo($current)) ? true : false;
|
$boolmasa = ($carbonmasaexpired->greaterThanOrEqualTo($current) && $carbonmasa->lessThanOrEqualTo($current)) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($transaction_online || $boolmasa){
|
if($transaction_online || $boolmasa){
|
||||||
return response()->json(true);
|
return response()->json(true);
|
||||||
@@ -518,7 +521,7 @@ class TransactionOnlineController extends Controller
|
|||||||
|
|
||||||
return response()->json($transaction,200);
|
return response()->json($transaction,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function CustomerInfo(Request $request){
|
public function CustomerInfo(Request $request){
|
||||||
|
|
||||||
$cawangan_all = Cawangan::on('mysql7')->get();
|
$cawangan_all = Cawangan::on('mysql7')->get();
|
||||||
@@ -535,7 +538,7 @@ class TransactionOnlineController extends Controller
|
|||||||
if(sizeof($gadai) != 0){
|
if(sizeof($gadai) != 0){
|
||||||
foreach($gadai as $gad)
|
foreach($gadai as $gad)
|
||||||
{
|
{
|
||||||
|
|
||||||
if($gad['tagbaru'] == 1){
|
if($gad['tagbaru'] == 1){
|
||||||
$jenis = 'onepercent';
|
$jenis = 'onepercent';
|
||||||
}else{
|
}else{
|
||||||
@@ -545,7 +548,7 @@ class TransactionOnlineController extends Controller
|
|||||||
$array_utg = new \Illuminate\Http\Request([
|
$array_utg = new \Illuminate\Http\Request([
|
||||||
'jeniskeuntungan' => $jenis
|
'jeniskeuntungan' => $jenis
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$result = (new TebusController)->upahTawarruq($gad['kodcaw'],$gad['norujukan'],$array_utg);
|
$result = (new TebusController)->upahTawarruq($gad['kodcaw'],$gad['norujukan'],$array_utg);
|
||||||
|
|
||||||
if($jenis == 'onepercent') {
|
if($jenis == 'onepercent') {
|
||||||
@@ -585,7 +588,7 @@ class TransactionOnlineController extends Controller
|
|||||||
'lelong' => $akanlelongarray
|
'lelong' => $akanlelongarray
|
||||||
),200);
|
),200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateTagPortal(Request $request){
|
public function updateTagPortal(Request $request){
|
||||||
$transaction = TransactionOnline::on('mysql7')->where('billplz_id','=',$request->billplz_id)->update(array(
|
$transaction = TransactionOnline::on('mysql7')->where('billplz_id','=',$request->billplz_id)->update(array(
|
||||||
'tagportal' => 1
|
'tagportal' => 1
|
||||||
@@ -594,4 +597,37 @@ class TransactionOnlineController extends Controller
|
|||||||
return response()->json($transaction,200);
|
return response()->json($transaction,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getUjrah($kodcaw, $norujukan)
|
||||||
|
{
|
||||||
|
|
||||||
|
try {
|
||||||
|
$base_url = config('app.url');
|
||||||
|
|
||||||
|
$gadai = Http::get($base_url . "/api/gadai/norujukan/$kodcaw/$norujukan")->json()[0];
|
||||||
|
$jenis_keuntungan = $gadai['tagbaru'] === 1 ? 'onepercent' : 'asal';
|
||||||
|
|
||||||
|
|
||||||
|
$upah_tawarruq = Http::get($base_url . "/api/upahtawarruq/$kodcaw/$norujukan", ['jeniskeuntungan' => $jenis_keuntungan])->json();
|
||||||
|
$upah_rebet_tawarruq = Http::get($base_url . "/api/upahrebettawarruq/$kodcaw/$norujukan", ['jeniskeuntungan' => $jenis_keuntungan])->json();
|
||||||
|
|
||||||
|
if($jenis_keuntungan === 'onepercent'){
|
||||||
|
$ujrah_sebenar = (float)$upah_tawarruq['ujrah'];
|
||||||
|
$ujrah_rebet = $ujrah_sebenar - (float)$upah_rebet_tawarruq['ujrah'];
|
||||||
|
|
||||||
|
return [
|
||||||
|
'ujrah_sebenar' => $ujrah_sebenar,
|
||||||
|
'ujrah_rebet' => $ujrah_rebet,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'ujrah_sebenar' => (float)$upah_tawarruq,
|
||||||
|
'ujrah_rebet' => (float)$upah_rebet_tawarruq,
|
||||||
|
];
|
||||||
|
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
Log::error($th);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user