update online

This commit is contained in:
Afiq Zakwan
2023-12-03 10:27:45 +08:00
parent 32adaef8ef
commit 2af59bb612
@@ -11,6 +11,9 @@ use App\Cawangan;
use App\GlDetail;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Services\OnePercentServices;
use Log;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\TebusController as TebusController;
@@ -167,6 +170,9 @@ class TransactionOnlineController extends Controller
}else{
$lelong_tawarruq = 1;
}
$onepercent = new OnePercentServices();
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$baki_hargajualan = $gadai['bakihargajualan'] - $bayaran;
@@ -174,35 +180,92 @@ class TransactionOnlineController extends Controller
$baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran;
$transaction = Transaction::on('mysql7')->create([
'trans_type' => 'A',
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => 'Online',
'kodcaw' => $kodcaw,
'duit_masuk' => $bayaran,
'created_at' => Carbon::parse($paid_at),
'bakiharga' => $baki_hargajualan,
]);
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upahsemasa,
'bayaran_pembiayaan' => $baki_bayaran,
'keuntungan_rebet'=> $upahrebet,
'tarikh_bayaran'=> Carbon::parse($paid_at),
'kodcaw'=> $kodcaw
]);
$keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa);
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']);
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'bakipjm' => $baki_pinjaman,
'jbg' => 0,
't_update' => Carbon::parse($paid_at)->toDateString(),
'bakihargajualan' => $baki_hargajualan,
'tempohbayar' => $tempohbayar,
'lelong_tawarruq' => $lelong_tawarruq
));
return response()->json($update_gadai, 200);
$onepercentasal = $gadai['pinjaman'] * (1/100);
try {
DB::connection('mysql7')->transaction(function () use($onepercentasal,$ujrahasal,$keuntungan,$norujukan,$gadai,$request,$kodcaw,$current,$baki_hargajualan,$upahsemasa,$baki_bayaran,$upahrebet,$cawangan,$old_data,$baki_pinjaman,$lelong_tawarruq,$margin_semasa) {
$transaction = Transaction::on('mysql7')->create([
'trans_type' => 'A',
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => 'Online',
'kodcaw' => $kodcaw,
'duit_masuk' => $bayaran,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
]);
if($gadai['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai['tempoh'];
}
$bilang_bln = $tempoh - $gadai['tempohbayar'];
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upahsemasa,
'bayaran_pembiayaan' => $baki_bayaran,
'keuntungan_rebet'=> $upahrebet,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw,
'ujrah' => ($keuntungan['ujrah'] * $bilang_bln),
'ujrah_rebet' => ($ujrahasal*$bilang_bln),
'onepercent' => ($onepercentasal * $bilang_bln),
'onepercent_rebet' => ($keuntungan['onepercent'] * $bilang_bln),
'tempoh' => $gadai['tempoh'],
'beza_tempoh' => $bilang_bln,
'margin_semasa' => $margin_semasa,
]);
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;
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'bakipjm' => $baki_pinjaman,
'jbg' => 0,
't_update' => $current->toDateString(),
'bakihargajualan' => $baki_hargajualan,
'tempohbayar' => $gadai['tempoh'],
'lelong_tawarruq' => $lelong_tawarruq,
'margin_semasa' => $margin_updated,
));
});
$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();
if(!$transaction || !$transaction_upah) {
throw new \Exception('One of the database operations failed.');
}
DB::commit();
});
}catch(\Exception $e){
Log::error("Transaction failed: " . $e->getMessage());
return response()->json("Transaction failed: " . $e->getMessage(),500);
}
return response()->json("success",200);
}
public function createAdvansur($kodcaw,$norujukan,$bayaran,$paid_at){