diff --git a/app/Http/Controllers/AdminPageController.php b/app/Http/Controllers/AdminPageController.php index f6bf1aa..1d9c628 100644 --- a/app/Http/Controllers/AdminPageController.php +++ b/app/Http/Controllers/AdminPageController.php @@ -3635,6 +3635,8 @@ class AdminPageController extends Controller if($kodcaw == '011229') $total -= 45390.37; + if($kodcaw == 'KB2') + $total -= 1378.5; return response()->json($total,200); } @@ -3752,4 +3754,18 @@ class AdminPageController extends Controller return response()->json($bayaran); } } + + public function ListCawangan(Request $request){ + $cawangan = Cawangan::on('mysql7')->get(); + + return response()->json($cawangan); + } + + public function ListCawangan_Update(Request $request){ + $cawangan = Cawangan::on('mysql7') + ->where('mid',$request->mid) + ->update(['version' => $request->version]); + + return response()->json($cawangan); + } } diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index 0fd0c6c..6e6f18e 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -32,7 +32,8 @@ use App\InOutMar; use Illuminate\Http\Request; -use App\Services\OnePercentServices; +use App\Services\MasterServices; +use App\Support\OnePercent; use Log; use Illuminate\Support\Facades\DB; @@ -130,33 +131,11 @@ class GadaiController extends Controller } public function create($kodcaw,Request $request){ - $current = Carbon::now(); - $current = new Carbon(); - - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $master = new MasterServices($kodcaw); + $response = $master->createGadai($request); - try{ - DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) { - $gadai = Gadai::on($cawangan['mysql'])->create([ - 'kodcaw'=>$kodcaw, - 'norujukan' => $request->norujukan, - 'nopelanggan' => $request->nopelanggan, - 'nokp' => $request->nokp, - 'sirig' => $request->sirig, - 't_gadai' => $current->toDateString(), - 'sttebus' => '', - 'masa' =>$current->toTimeString(), - 'tagbaru' => 1 - ]); - return response()->json($gadai, 201); - }); - - - }catch(\Exception $e){ - - echo "Gadaian Gagal: " . $e->getMessage(); - } + return $response; } public function createold($kodcaw,Request $request){ @@ -224,100 +203,10 @@ class GadaiController extends Controller public function daftarGadaiMarhun($norujukan,Request $request){ // dd("ggwp"); - $current = Carbon::now(); - $current = new Carbon(); + $master = new MasterServices($request->kodcaw); + $response = $master->createMarhunGadai($request->norujukan,$request); - $t_matang = Carbon::now(); - $t_matang = new Carbon(); - $t_matang = $t_matang->addMonths(6)->subDays(1); - - $t_kontrak = Carbon::now(); - $t_kontrak = new Carbon(); - $t_kontrak = $t_kontrak->addMonths(12)->subDays(1); - - $margin_pinjam = $request->percentpinj *100; - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$request->kodcaw) - ->first(); - if($request->transaction == 'Ubah Gadai'){ - $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - } - - $bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->count(); - - $total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun'); - $total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat'); - - //query kadar upah baru - $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first(); - - - // query kadar upah lama - // $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first(); - - $onepercentservices = new OnePercentServices(); - $keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjam); - // $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100); - // $upah6 = $upah1 * 6; - // $upah12 = $upah1 * 12; - $upah1 = $keuntungan['keuntungan']; - $upah6 = $upah1 * 6; - $upah12 = $upah1 * 12; - $ujrah = $keuntungan['ujrah']; - $onepercent = $keuntungan['onepercent']; - - $hargajualan = $request->pinjaman + $upah12; - - $gadai = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->update(array( - 'nilaimarhun' => $total_nilai_marhun, - 'berat'=> $total_berat, - 'pinjaman' => $request->pinjaman, - 'kadarupah' => $kadar_raw['kadarujrah'], - 'marhun' => $request->marhun, - 'percentpinj' => $margin_pinjam, - 'teller' => $request->teller, - 'bakipjm' => $request->pinjaman, - 'bakiupah' => $upah6, - 'jbg' => 0.5, - 't_update' => $current->toDateString(), - 'cetak' => 0, - 'upah12' => $upah12, - 'hargajualan' => $hargajualan, - 'bakihargajualan' => $hargajualan, - 'tagserah' => 0, - 't_matang' => $t_matang, - 't_matang1' => $t_kontrak, - 'tempoh' => 0.5, - 'kuantiti' => $bil_marhun, - 'tagkomuditi' => 0, - 'upahdibayar' => 0.00, - 'tempohbayar' => 0.00, - 'lelong_tawarruq' => 1, - 'kadarujrah' => $kadar_raw['kadarujrah'], - 'ujrah' => $ujrah, - 'onepercent' => $onepercent, - 'margin_semasa' => $margin_pinjam, - 'tagbaru' => 1 - )); - - $new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - - $audit = new Audit(); - $audit->users = $request->teller; - $audit->actions = $request->transaction; - $audit->norujukan = $norujukan; - $audit->new_data = $new_data; - if($request->transaction == 'Ubah Gadai'){ - $audit->old_data = $old_data; - } - $audit->kodcaw = $request->kodcaw; - $audit->created_at = $current; - $audit->updated_at = $current; - $audit->save(); - - return response()->json($gadai, 200); + return response()->json($response, 200); } public function getTransactionByTarikh($kodcaw,$tarikh){ @@ -325,7 +214,7 @@ class GadaiController extends Controller $gadai_transaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$tarikh)->get(); - return response()->json($gadai); + return response()->json($gadai_transaction); } public function checkNorujukan(Request $request){ @@ -345,68 +234,17 @@ class GadaiController extends Controller } public function kiraupahTawarruq($kodcaw,$norujukan){ - $onepercentservices = new OnePercentServices(); + $master = new MasterServices($kodcaw); + $response = $master->kiraUpahTawarruq($kodcaw,$norujukan); - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); - - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - - $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); - // $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); - $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; - - // $upah_semasa = round($upahsemasa_raw,PHP_ROUND_HALF_UP); - $upah_semasa_round = number_format($upahsemasa_raw,2); - $upah_semasa = substr($upah_semasa_round, 0, -1); - // $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa)); - if(strpos($upah_semasa,',')){ - $upah_semasa = str_replace(',','',$upah_semasa); - } - return $upah_semasa; + return $response; } public function kiraUpahRebet($kodcaw,$norujukan){ - $onepercentservices = new OnePercentServices(); + $master = new MasterServices($kodcaw); + $response = $master->kiraUpahRebet($norujukan); - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); - - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - - $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); - - // $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); - $upahrebet_raw = $bilang_bln * $upah['keuntungan']; - - // $upah_rebet_round = number_format($upahrebet_raw,2); - // $upah_rebet = substr($upah_rebet_round, 0, -1); - // if(strpos($upah_rebet,',')){ - // $upah_rebet = str_replace(',','',$upah_rebet); - // } - // $upah_rebet = floatval(preg_replace('/[^\d.]/', '', $upah_rebet)); - - return $upahrebet_raw; + return $response; } public function updateGadaiMarhunOnline($kodcaw,$norujukan,Request $request){ @@ -465,126 +303,10 @@ class GadaiController extends Controller } public function updateGadaiMarhunKaunter($kodcaw,$norujukan,Request $request){ - $current = Carbon::now(); - $current = new Carbon(); + $master = new MasterServices($request->kodcaw); + $update = $master->updateGadaiMarhunKaunter($kodcaw,$norujukan,$request); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - - $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan); - $upahrebet = $this->kiraUpahRebet($kodcaw,$norujukan); - - $total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk'); - - $total_bayaran_semasa = $total_bayaran_prev + $request->bayaran; - - if($total_bayaran_semasa >= $gadai['bakiupah']){ - $lelong_tawarruq = 0; - }else{ - $lelong_tawarruq = 1; - } - $onepercent = new OnePercentServices(); - - $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - - $baki_hargajualan = $gadai['bakihargajualan'] - $request->bayaran; - - $baki_bayaran = $request->bayaran - $upahsemasa; - - $baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran; - - $margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100; - - $keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa); - $ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']); - - $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' => $request->teller, - 'kodcaw' => $kodcaw, - 'duit_masuk' => $request->bayaran, - 'created_at' => $current, - 'bakiharga' => $baki_hargajualan, - 'nowakil' => (int)$request->nowakil, - 'duitpelanggan' => $request->duitpelanggan, - 'bakipelanggan' => $request->bakipelanggan - ]); - - if($gadai['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai['tempoh']; - } - $bilang_bln = $tempoh - $gadai['tempohbayar']; - - $rounded = $upahsemasa - (($keuntungan['ujrah'] * $bilang_bln) + ($onepercentasal * $bilang_bln)); - - $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, - 'rounded' => $rounded, - ]); - - 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 = $request->teller; - $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); + return $update; } public function getGadaianSemasa($kodcaw){ @@ -3871,13 +3593,9 @@ class GadaiController extends Controller } public function getKadarUjrah(Request $request){ - $cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first(); - $onePercentServices = new OnePercentServices(); - - $kadarujrah = $onePercentServices->getKadarUjrah($request->nilaimarhun,$cawangan['group_id']); - - // $test = $this->kiraupahTawarruq('KB2','KB2231109-0001'); - // dd($test); + $onePercentServices = new Onepercent($request->kodcaw); + $kadarujrah = $onePercentServices->getKadarUjrah($request); + return $kadarujrah; } @@ -3891,10 +3609,8 @@ class GadaiController extends Controller } public function getOnePercent(Request $request){ - - $onePercentServices = new OnePercentServices(); - - $keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$request->margin); + $onePercentServices = new Onepercent($request->kodcaw); + $keuntungan = $onePercentServices->getOnePercent($request); return $keuntungan; } diff --git a/app/Http/Controllers/TebusController.php b/app/Http/Controllers/TebusController.php index c031f56..5d17ab3 100644 --- a/app/Http/Controllers/TebusController.php +++ b/app/Http/Controllers/TebusController.php @@ -36,7 +36,7 @@ use App\StokAudit11; use App\StokAudit12; use App\AkruNet; -use App\Services\OnePercentServices; +use App\Services\MasterServices; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; @@ -46,247 +46,79 @@ use Carbon\Carbon; class TebusController extends Controller { public function tebusTawarruq($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $tagbaru = Gadai::on($cawangan['mysql'])->where('norujukan',$norujukan)->pluck('tagbaru'); + $jeniskeuntungan = ($tagbaru[0] == 0) ? 'asal' : 'onepercent'; + $master = new MasterServices($kodcaw); + $response = $master->tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $jeniskeuntungan = ($gadai_data['tagbaru'] == 1) ? 'onepercent' : 'asal'; - - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan); - $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; - - // $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP); - $hargatebus = bcdiv(round($harga_tebus,2),1,1); - $hargatebus = number_format($hargatebus,2); - if(strpos($hargatebus,',')){ - $hargatebus = str_replace(',','',$hargatebus); - } - return response()->json($hargatebus); + return $response; } - public function hargaTebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + public function hargaTebusTawarruq($kodcaw,$norujukan){ + $master = new MasterServices($kodcaw); + $response = $master->hargaTebusTawarruq($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan); - - $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; - - // $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP); - $hargatebus = bcdiv(round($harga_tebus,2),1,1); - $hargatebus = number_format($hargatebus,2); - if(strpos($hargatebus,',')){ - $hargatebus = str_replace(',','',$hargatebus); - } - - $rounded = $hargatebus - $harga_tebus; - Log::info([$harga_tebus,$rebet]); - $arrayharga = ['harga' => $hargatebus, 'rounded' => $rounded]; - - return $arrayharga; + return $response; } public function kiraupahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ - $onepercentservices = new OnePercentServices(); - - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->kiraUpahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - - if($jeniskeuntungan == 'onepercent'){ - $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); - $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; - }else{ - $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); - } - - // $upah_semasa = round($upahsemasa_raw,PHP_ROUND_HALF_UP); - $upah_semasa_round = number_format($upahsemasa_raw,2); - if(strpos($upah_semasa_round,',')){ - $upah_semasa_round = str_replace(',','',$upah_semasa_round); - } - $upah_semasa = substr($upah_semasa_round, 0, -1); - if(strpos($upah_semasa,',')){ - $upah_semasa = str_replace(',','',$upah_semasa); - } - - return $upah_semasa; + return $response; } - public function kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan){ - $onepercentservices = new OnePercentServices(); - - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + public function kiraUpahRebet($kodcaw,$norujukan,Request $request){ + $jeniskeuntungan = ($request->jeniskeuntungan == 'onepercent') ? 'onepercent' : 'asal'; + $master = new MasterServices($kodcaw); + $response = $master->kiraupahRebet($kodcaw,$norujukan,$jeniskeuntungan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - - $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - - if($jeniskeuntungan == 'onepercent'){ - $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); - $upahrebet_raw = $bilang_bln * $upah['keuntungan']; - }else{ - $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); - } - - // $upah_rebet = round($upahrebet_raw ,PHP_ROUND_HALF_UP); - // $upah_rebet_round = number_format($upahrebet_raw,2); - // if(strpos($upah_rebet_round,',')){ - // $upah_rebet_round = str_replace(',','',$upah_rebet_round); - // } - // $upah_rebet = substr($upah_rebet_round, 0, -1); - // if(strpos($upah_rebet,',')){ - // $upah_rebet = str_replace(',','',$upah_rebet); - // } - - return $upahrebet_raw; + return $response; } public function kiraUpahRebetSebenar($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->kiraUpahRebetSebenar($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - - $bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar']; - - $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); - - // $upah_rebet = round($upahrebet_raw,PHP_ROUND_HALF_UP); - $upah_rebet_round = number_format($upahrebet_raw,2); - if(strpos($upah_rebet_round,',')){ - $upah_rebet_round = str_replace(',','',$upah_rebet_round); - } - $upah_rebet = substr($upah_rebet_round, 0, -1); - if(strpos($upah_rebet,',')){ - $upah_rebet = str_replace(',','',$upah_rebet); - } - - $total_untung_rebet = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('keuntungan_rebet'); - $total_untung_asal = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('bayaran_keuntungan'); - $beza_keuntungan = $total_untung_asal - $total_untung_rebet; - - $keuntungan_rebet_sebenar = $upah_rebet - $beza_keuntungan; - return $keuntungan_rebet_sebenar; + return $response; } - public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + public function upahTawarruq($kodcaw,$norujukan,Request $request){ + $jeniskeuntungan = ($request->jeniskeuntungan == 'onepercent') ? 'onepercent' : 'asal'; + $master = new MasterServices($kodcaw); + $response = $master->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); - $upah_semasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); - - return response()->json(number_format($upah_semasa,2)); + return $response; } - public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + public function upahRebetTawarruq($kodcaw,$norujukan,Request $request){ + $jeniskeuntungan = ($request->jeniskeuntungan == 'onepercent') ? 'onepercent' : 'asal'; + $master = new MasterServices($kodcaw); + $response = $master->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan); - $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan); - - return response()->json(number_format($upah_rebet,2)); + return $response; } public function tebusSeparuhTawarruq($kodcaw,$norujukan,Request $request){ + $master = new MasterServices($kodcaw); + $response = $master->tebusSeparuhTawarruq($kodcaw,$norujukan,$request); - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); - - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); - - $array_recno_marhun = $request->array_recno; - - $margin_pembiayaan = round(($gadai_data['bakipjm']/$gadai_data['nilaimarhun'])*100,2); - // $margin_pembiayaan = round(($gadai_data['bakipjm']/$request->hargasemasa)*100,2); - - $nilai_marhun = $gadai_data['nilaimarhun']; - $total_harga_tebus = 0; - foreach($array_recno_marhun as $recno){ - $marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first(); - - $harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun']; - - $total_harga_tebus += $harga_tebus; - } - - $total_harga_tebus_round = round($total_harga_tebus,2); - - $totalhargatebus = substr($total_harga_tebus_round, 0, -1); - - return response()->json($totalhargatebus); + return $response; } public function tebusNotTawarruq($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->tebusNotTawarruq($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); - - $harga_tebus = $upah_semasa + $gadai_data['pinjaman']; - - return response()->json($harga_tebus); + return $response; } public function hargaTebusNotTawarruq($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->hargaTebusNotTawarruq($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); - - $harga_tebus = $upah_semasa + $gadai_data['pinjaman']; - - return $harga_tebus; + return $response; } public function getMoratorium(){ @@ -300,424 +132,52 @@ class TebusController extends Controller } public function kiraUpahNotTawarruq($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->kiraUpahNotTawarruq($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upahtelahbayar = Advansur::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->sum('upahdibayar'); - - $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; - $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; - $margin_kadarupah = 80; - $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; - - $bln_mora = Moratorium::first(); - - $upah_sebenar = $upah_asal - $rebet; - $bln_upah = $gadai_data['tempoh']; - if($bln_upah > $bln_mora['bln_mora']){ - $bln_upah = $bln_mora['bln_mora']; - } - $upahsemasa = $upah_sebenar * $bln_upah; - $upah_semasa = bcdiv(round($upahsemasa,2),1,1); - $upah_semasa = number_format($upah_semasa,2); - if(strpos($upah_semasa,',')){ - $upah_semasa = str_replace(',','',$upah_semasa); - } - $upah_semasa = (float)$upah_semasa - $upahtelahbayar; - - if($upah_semasa <= 0){ - $upah_semasa = 0; - } - - return $upah_semasa; + return $response; } public function upahNotTawarruq($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->upahNotTawarruq($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upahtelahbayar = Advansur::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->sum('upahdibayar'); - - $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; - $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; - $margin_kadarupah = 80; - $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; - - $bln_mora = Moratorium::first(); - - $upah_sebenar = $upah_asal - $rebet; - $bln_upah = $gadai_data['tempoh']; - if($bln_upah > $bln_mora['bln_mora']){ - $bln_upah = $bln_mora['bln_mora']; - } - $upahsemasa = $upah_sebenar * $bln_upah; - $upah_semasa = bcdiv(round($upahsemasa,2),1,1); - $upah_semasa = number_format($upah_semasa,2); - if(strpos($upah_semasa,',')){ - $upah_semasa = str_replace(',','',$upah_semasa); - } - $upah_semasa = (float)$upah_semasa - $upahtelahbayar; - - if($upah_semasa <= 0){ - $upah_semasa = 0; - } - - return response()->json($upah_semasa); + return $response; } public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,Request $request){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->tebusSeparuhNotTawarruq($kodcaw,$norujukan,$request); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; - $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; - $margin_kadarupah = 80; - $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; - - $upah_sebenar = $upah_asal - $rebet; - - $upah_semasa = bcdiv(round($upah_sebenar * $gadai_data['jbg'],2),1,1); - $upah_semasa = (float)number_format($upah_semasa,2); - - $array_recno_marhun = $request->array_recno; - - $margin_pembiayaan = round(($gadai_data['pinjaman']/$gadai_data['nilaimarhun'])*100,2); - - $nilai_marhun = $gadai_data['nilaimarhun']; - $total_harga_tebus = 0; - foreach($array_recno_marhun as $recno){ - $marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first(); - - $harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun']; - - $total_harga_tebus += $harga_tebus; - } - - // $total_harga_tebus += $upah_semasa; - - return response()->json($total_harga_tebus); + return $response; } function rebet($kodcaw,$norujukan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->rebet($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; - $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; - $margin_kadarupah = 80; - - $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; - - return floatval(number_format($rebet,2)); + return $response; } function rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan){ - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->rebetselepastawarruq($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - $transaction_keuntungan = TransaksiKeuntungan::on('mysql7') - ->where('norujukan','=',$norujukan) - ->sum('keuntungan_rebet'); - - $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan); - - $rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet; - // dd($gadai_data['upah12'],$transaction_keuntungan,$upah_rebet,$jeniskeuntungan,$rebet_raw); - // $rebet_round = bcdiv(round($rebet_raw,2),1,1); - // $rebet_round = number_format($rebet_round,2); - - // if(strpos($rebet_round,',')){ - // $rebet_round = str_replace(',','',$rebet_round); - // } - // $rebet = substr($rebet_round, 0, -1); - - return $rebet_raw; + return $response; } public function tebusUpdate($kodcaw,$norujukan,Request $request){ - $current = Carbon::now(); - $current = new Carbon(); + $master = new MasterServices($kodcaw); + $response = $master->tebusUpdate($kodcaw,$norujukan,$request); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - - if($request->jenisbayarantebus == "tawarruq"){ - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); - } - else if($request->jenisbayarantebus == "nottawarruq") - { - $rebet = $this->rebet($kodcaw,$norujukan); - } - else{ - $rebet = 0; - } - - $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - - $ujrah=0;$onepercent=0;$rounded=0; - if($gadai['hargajualan'] == null){ - $harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan); - $upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); - $upah_rebet = 0; - $upah_rebet_sebenar = 0; - }else{ - $harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); - $upah_tebus = $this->kiraupahTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); - $upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan); - $upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm']; - - if($request->jeniskeuntungan == 'onepercent'){ - $array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan); - $array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan); - $margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100; - $ujrah = $array_onepercent['ujrah']; - $onepercent = $array_onepercent['onepercent']; - } - } - - - $create_tebus = Tebus::on($cawangan['mysql'])->create([ - 'kodcaw'=> $kodcaw, - 'norujukan'=> $norujukan, - 'nopelanggan' => $request->nopelanggan, - 'jenisbyr' => "TN", - 'jenistebus' => $request->jenistebus, - 'glcode' => "0", - 't_tebus' => $current->toDateString(), - 'jbg' => $gadai['tempoh'], - 'kadarupah' => $gadai['kadarupah'], - 'nilaimarhun' => $gadai['nilaimarhun'], - 'pinjaman' => $gadai['pinjaman'], - 'ansuran' => 0.00, - 'addpinjaman' => $request->addpinjaman, - 'bakipjm' => $harga_tebus['harga'], - 'bakiupah' => $upah_tebus, - 'terima' => "*", - 'kodgl' => "0", - 'nowakil' => $request->nowakil, - 'rebate' => $rebet, - 'marhuntebus' => $request->marhun, - 'historygadaian' => $norujukan, - 'tarikhbyrn' => $current->toDateString(), - 'teller' => $request->teller, - 'ujrah' => $ujrah, - 'onepercent' => $onepercent, - ]); - - $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ - 'tarikh' => $current->toDateString(), - 'masa' => $current->toTimeString(), - 'norujukan' => $norujukan, - 'nm' => $request->nilai_marhun, - 'pkd' => $request->teller, - 'drp' => $request->teller, - 'bln' => $current->month, - 'thn' => $current->year, - 'tag' => 0, - 'jenistebus' => $request->jenistebus, - 'namateller' => $request->teller - ]); - - $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ - 'norujukan' => $norujukan, - 'bayaran_keuntungan' => $upah_tebus, - 'bayaran_pembiayaan' => $gadai['bakipjm'], - 'keuntungan_rebet' => $upah_rebet_sebenar, - 'tarikh_bayaran'=> $current, - 'kodcaw'=> $kodcaw, - 'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0, - 'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['ujrah'] : 0, - 'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0, - 'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['onepercent'] : 0, - 'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0, - 'tempoh' => $gadai['tempoh'], - 'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']), - 'rounded' => $harga_tebus['rounded'], - ]); - - if($request->jenistebus == 'P'){ - $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakiupah; - $transaction = Transaction::on('mysql7')->create([ - 'trans_type' => $request->jenistebus, - 'norujukan' => $norujukan, - 'nokp' => $gadai['nokp'], - 'teller' => $request->teller, - 'kodcaw' => $kodcaw, - 'duit_masuk' => $request->bakiupah, - 'created_at' => $current, - 'bakiharga' => $baki_hargajualan, - ]); - }else{ - $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakipinjaman; - $transaction = Transaction::on('mysql7')->create([ - 'trans_type' => $request->jenistebus, - 'norujukan' => $norujukan, - 'nokp' => $gadai['nokp'], - 'teller' => $request->teller, - 'kodcaw' => $kodcaw, - 'duit_masuk' => $harga_tebus['harga'], - 'created_at' => $current, - 'bakiharga' => $baki_hargajualan, - 'nowakil' => (int)$request->nowakil, - 'duitpelanggan' => isset($request->duitpelanggan) ? $request->duitpelanggan : 0, - 'bakipelanggan' => $request->bakipelanggan - ]); - } - - $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( - 'sttebus' => "T", - 't_update' => $current->toDateString(), - )); - - $audit = new Audit(); - $audit->users = $request->teller; - if($request->jenistebus == 'P'){ - $audit->actions = "Tambah Pembiayaan"; - }else if($request->jenistebus == 'S'){ - $audit->actions = "Tebus Separuh"; - }else if($request->jenistebus == 'T'){ - $audit->actions = "Tebus Penuh"; - } - $audit->norujukan = $norujukan; - $audit->new_data = $create_tebus; - $audit->kodcaw = $kodcaw; - $audit->created_at = $current; - $audit->updated_at = $current; - $audit->save(); - - return response()->json($update_gadai, 201); + return $response; } public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,Request $request){ - $current = Carbon::now(); - $current = new Carbon(); + $master = new MasterServices($kodcaw); + $response = $master->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - - if($request->jenisbayarantebus == "tawarruq") - { - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); - } - else if($request->jenisbayarantebus == "nottawarruq") - { - $rebet = $this->rebet($kodcaw,$norujukan); - } - else{ - $rebet = 0; - } - - $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - - $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( - 'sttebus' => "T", - 't_update' => $current->toDateString(), - )); - - $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$request->jeniskeuntungan); - - $create_tebus = Tebus::on($cawangan['mysql'])->create([ - 'kodcaw'=> $kodcaw, - 'norujukan'=> $norujukan, - 'nopelanggan' => $request->nopelanggan, - 'jenisbyr' => "TN", - 'jenistebus' => $request->jenistebus, - 'glcode' => "0", - 't_tebus' => $current->toDateString(), - 'jbg' => $request->jbg, - 'kadarupah' => $request->kadarupah, - 'nilaimarhun' => $request->nilai_marhun, - 'pinjaman' => $request->pinjaman, - 'ansuran' => $request->ansuran, - 'addpinjaman' => $request->addpinjaman, - 'bakipjm' => $request->bakipinjaman, - 'bakiupah' => $request->bakiupah, - 'terima' => "*", - 'kodgl' => "0", - 'nowakil' => $request->nowakil, - 'rebate' => $rebet, - 'marhuntebus' => $request->marhun, - 'historygadaian' => $request->historygadaian, - 'tarikhbyrn' => $current->toDateString(), - 'teller' => $request->teller - ]); - - $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ - 'tarikh' => $current->toDateString(), - 'masa' => $current->toTimeString(), - 'norujukan' => $norujukan, - 'nm' => $request->nilai_marhun, - 'pkd' => $request->teller, - 'drp' => $request->teller, - 'bln' => $current->month, - 'thn' => $current->year, - 'tag' => 0, - 'jenistebus' => $request->jenistebus, - 'namateller' => $request->teller - ]); - - $bayaran_pembiayaan = $request->totalbayaran - $request->bakiupah; - - $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ - 'norujukan' => $norujukan, - 'bayaran_keuntungan' => $request->bakiupah, - 'bayaran_pembiayaan' => $bayaran_pembiayaan, - 'keuntungan_rebet' => 0, - 'tarikh_bayaran'=> $current, - 'kodcaw'=> $kodcaw - ]); - - $transaction = Transaction::on('mysql7')->create([ - 'trans_type' => $request->jenistebus, - 'norujukan' => $norujukan, - 'nokp' => $gadai['nokp'], - 'teller' => $request->teller, - 'kodcaw' => $kodcaw, - 'duit_masuk' => $request->totalbayaran, - 'created_at' => $current, - 'bakiharga' => 0, - 'duitpelanggan' => $request->bayaranpelanggan, - 'bakipelanggan' => $request->bakipelanggan - ]); - - $audit = new Audit(); - $audit->users = $request->teller; - $audit->actions = "Auto Tawarruq"; - $audit->norujukan = $norujukan; - $audit->new_data = $create_tebus; - $audit->kodcaw = $kodcaw; - $audit->created_at = $current; - $audit->updated_at = $current; - $audit->save(); - - return response()->json($update_gadai, 201); + return $response; } public function getLaporanTebus($kodcaw,$tarikh){ @@ -2103,7 +1563,7 @@ class TebusController extends Controller return response(0); } - public function removeUpahLamaToday($kodcaw,$norujukan) + public function removeUpahLamaToday($kodcaw,$norujukan,Request $request) { $current = Carbon::now(); $current = new Carbon(); @@ -2383,95 +1843,17 @@ class TebusController extends Controller } public function kiraupahUjrahOnePercent($kodcaw,$norujukan){ - $onepercentservices = new OnePercentServices(); - - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->kiraupahUjrahOnePercent($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - - $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); - $ujrah = $bilang_bln * $array_upah['ujrah']; - $onepercent = $bilang_bln * $array_upah['onepercent']; - $onepercent_semasa = $onepercent; - $ujrah_semasa = $ujrah; - - // $ujrah_semasa_round = number_format($ujrah,2); - // if(strpos($ujrah_semasa_round,',')){ - // $ujrah_semasa_round = str_replace(',','',$ujrah_semasa_round); - // } - // $ujrah_semasa = substr($ujrah_semasa_round, 0, -1); - // if(strpos($ujrah_semasa,',')){ - // $ujrah_semasa = str_replace(',','',$ujrah_semasa); - // } - - // $onepercent_semasa_round = number_format($onepercent,2); - // if(strpos($onepercent_semasa_round,',')){ - // $onepercent_semasa_round = str_replace(',','',$onepercent_semasa_round); - // } - // $onepercent_semasa = substr($onepercent_semasa_round, 0, -1); - // if(strpos($onepercent_semasa,',')){ - // $onepercent_semasa = str_replace(',','',$onepercent_semasa); - // } - - return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa]; + return $response; } public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){ - $onepercentservices = new OnePercentServices(); - - $cawangan = Cawangan::on('mysql7') - ->where('kodcaw','=',$kodcaw) - ->first(); + $master = new MasterServices($kodcaw); + $response = $master->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan); - $gadai_data = Gadai::on($cawangan['mysql']) - ->where('norujukan','=',$norujukan) - ->first(); - - if($gadai_data['tempoh'] >= 12.0){ - $tempoh = 12; - }else{ - $tempoh = $gadai_data['tempoh']; - } - - $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $array_upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); - $ujrah = $bilang_bln * $array_upah['ujrah']; - $onepercent = $bilang_bln * $array_upah['onepercent']; - - $ujrah_semasa = $ujrah; - // $ujrah_semasa = round($ujrah,PHP_ROUND_HALF_UP); - // $ujrah_semasa_round = number_format($ujrah,2); - // if(strpos($ujrah_semasa_round,',')){ - // $ujrah_semasa_round = str_replace(',','',$ujrah_semasa_round); - // } - // $ujrah_semasa = substr($ujrah_semasa_round, 0, -1); - // if(strpos($ujrah_semasa,',')){ - // $ujrah_semasa = str_replace(',','',$ujrah_semasa); - // } - - $onepercent_semasa = $onepercent; - // $onepercent_semasa = round($onepercent,PHP_ROUND_HALF_UP); - // $onepercent_semasa_round = number_format($onepercent,2); - // if(strpos($onepercent_semasa_round,',')){ - // $onepercent_semasa_round = str_replace(',','',$onepercent_semasa_round); - // } - // $onepercent_semasa = substr($onepercent_semasa_round, 0, -1); - // if(strpos($onepercent_semasa,',')){ - // $onepercent_semasa = str_replace(',','',$onepercent_semasa); - // } - - return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa]; + return $response; } diff --git a/app/Jobs/SMSPelangganSAGLAMAbysag.php b/app/Jobs/SMSPelangganSAGLAMAbysag.php index c57d0ab..c23681a 100644 --- a/app/Jobs/SMSPelangganSAGLAMAbysag.php +++ b/app/Jobs/SMSPelangganSAGLAMAbysag.php @@ -60,15 +60,12 @@ class SMSPelangganSAGLAMAbysag extends Job if($tarikhmatang > $today){ $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum '.$tarikhmatangnew.'.'; }elseif($tarikhmatang < $today){ - $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatangnew.', Sila perbaharui SAG anda di cawangan Ar-Rahn.'; - } - }elseif($this->lelong_tawarruq == '0'){ - if($tarikhmatang1 > $today){ + $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatangnew.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';} + }else + if($tarikhmatang1 < $today){ $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum '.$tarikhmatang1new.'.'; - }elseif($tarikhmatang1 <= $today){ - $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatang1new.', Sila perbaharui SAG anda di cawangan Ar-Rahn.'; - } - } + }elseif($tarikhmatang1 > $today){ + $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatang1new.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';} if(env('APP_ENV') != 'production'){ $mobile_no = env('ADMIN_PHONE_NUMBER'); diff --git a/app/Jobs/WhatsappPelangganSAGLAMAbysag.php b/app/Jobs/WhatsappPelangganSAGLAMAbysag.php index 761ce1f..2d03e59 100644 --- a/app/Jobs/WhatsappPelangganSAGLAMAbysag.php +++ b/app/Jobs/WhatsappPelangganSAGLAMAbysag.php @@ -60,15 +60,12 @@ class WhatsappPelangganSAGLAMAbysag extends Job if($tarikhmatang > $today){ $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum *'.$tarikhmatangnew.'*.'; }elseif($tarikhmatang < $today){ - $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatangnew.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.'; - } - }elseif($this->lelong_tawarruq == '0'){ - if($tarikhmatang1 > $today){ + $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatangnew.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';} + }else + if($tarikhmatang1 < $today){ $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum *'.$tarikhmatang1new.'*.'; - }elseif($tarikhmatang1 <= $today){ - $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatang1new.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.'; - } - } + }elseif($tarikhmatang1 > $today){ + $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatang1new.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';} if(env('APP_ENV') != 'production'){ $mobile_no = env('ADMIN_PHONE_NUMBER'); diff --git a/app/Services/MasterServices.php b/app/Services/MasterServices.php new file mode 100644 index 0000000..0df8790 --- /dev/null +++ b/app/Services/MasterServices.php @@ -0,0 +1,224 @@ +cawangan = $kodcaw; + $this->cawangan_info = $this->getInfoCawangan($kodcaw); + $this->engine = $this->getEngine($kodcaw); + } + + public function getInfoCawangan(String $kodcaw): Object{ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + return $cawangan; + } + + public function getEngine(String $kodcaw){ + if ($this->cawangan_info['version'] == 'v1') { + return new TawarruqEngine($kodcaw); + + } else if ($this->cawangan_info['version'] == 'v2') { + return new OnePercentEngine($kodcaw); + } else { + return new TawarruqEngine($kodcaw); + } + } + + /* Start Gadaian */ + public function createGadai(HttpRequest $request){ + $response = $this->engine->createGadai($request); + + return $response; + } + + public function createMarhunGadai($norujukan,HttpRequest $request){ + $response = $this->engine->createMarhunGadai($norujukan,$request); + + return $response; + } + + public function kiraUpahTawarruq($kodcaw,$norujukan){ + $response = $this->engine->getUpahSebenar($norujukan); + + return $response; + } + + public function kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan){ + if($jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->getUpahRebet($kodcaw,$norujukan); + + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->getUpahRebet($kodcaw,$norujukan); + } + + return $response; + } + + public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){ + $response = $this->engine->updateGadaiMarhunKaunter($kodcaw,$norujukan,$request); + + return $response; + } + + /* End Gadaian */ + + /* Start Penebusan */ + + public function tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + + if($jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + + } + return $response; + } + + public function hargaTebusTawarruq($kodcaw,$norujukan){ + $response = $this->engine->hargaTebusTawarruq($kodcaw,$norujukan); + + return $response; + } + + public function kiraUpahRebetSebenar($kodcaw,$norujukan){ + $response = $this->engine->kiraUpahRebetSebenar($kodcaw,$norujukan); + + return $response; + } + + public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + if($jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + } + + return $response; + } + + public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + if($jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + + } + return $response; + } + + public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $response = $this->engine->tebusSeparuhTawarruq($kodcaw,$norujukan,$request); + + return $response; + } + + public function tebusNotTawarruq($kodcaw,$norujukan){ + $response = $this->engine->tebusNotTawarruq($kodcaw,$norujukan); + + return $response; + } + + public function hargaTebusNotTawarruq($kodcaw,$norujukan){ + $response = $this->engine->hargaTebusNotTawarruq($kodcaw,$norujukan); + + return $response; + } + + public function kiraUpahNotTawarruq($kodcaw,$norujukan){ + $response = $this->engine->kiraUpahNotTawarruq($kodcaw,$norujukan); + + return $response; + } + + public function upahNotTawarruq($kodcaw,$norujukan){ + $response = $this->engine->upahNotTawarruq($kodcaw,$norujukan); + + return $response; + } + + public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $response = $this->engine->tebusSeparuhNotTawarruq($kodcaw,$norujukan,$request); + + return $response; + } + + function rebet($kodcaw,$norujukan){ + $response = $this->engine->rebet($kodcaw,$norujukan); + + return $response; + } + + function rebetselepastawarruq($kodcaw,$norujukan){ + $response = $this->engine->rebetselepastawarruq($kodcaw,$norujukan); + + return $response; + } + + public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){ + + if($request->jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->tebusUpdate($kodcaw,$norujukan,$request); + + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->tebusUpdate($kodcaw,$norujukan,$request); + } + + return $response; + } + + public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){ + if($request->jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request); + + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request); + } + + return $response; + } + + public function kiraupahUjrahOnePercent($kodcaw,$norujukan){ + $response = $this->engine->kiraupahUjrahOnePercent($kodcaw,$norujukan); + + return $response; + } + + public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){ + $response = $this->engine->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan); + + return $response; + } + + /* End Penebusan */ + + public function test(){ + $this->engine->test(); + } + +} diff --git a/app/Support/Onepercent.php b/app/Support/Onepercent.php new file mode 100644 index 0000000..69a0f32 --- /dev/null +++ b/app/Support/Onepercent.php @@ -0,0 +1,203 @@ +kodcaw = $kodcaw; + $this->cawangan_info = parent::getInfoCawangan($kodcaw); + } + + /* Start Gadaian */ + public function createGadai(HttpRequest $httpRequest){ + $gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->create($httpRequest); + + return $response; + } + + public function createMarhunGadai($norujukan,HttpRequest $httpRequest){ + $gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->createMarhun($norujukan,$httpRequest); + + return $response; + } + + public function getUpahSebenar($norujukan){ + $gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->kiraupahOnePercent($this->kodcaw,$norujukan); + + return $response; + } + + public function getUpahRebet($kodcaw,$norujukan){ + $gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->kiraupahRebet($this->kodcaw,$norujukan); + + return $response; + } + + public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){ + $gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->updateAnsuranKaunter($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function getKadarUjrah(HttpRequest $request){ + $cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first(); + $onePercentServices = new Calculation(); + $kadarujrah = $onePercentServices->getKadarUjrah($request->nilaimarhun,$cawangan['group_id']); + + return $kadarujrah; + } + + public function getOnePercent(HttpRequest $request){ + $onePercentServices = new Calculation(); + $keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$request->margin); + + return $keuntungan; + } + + /* End Gadaian */ + + /* Start Penebusan */ + + public function tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function hargaTebusTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->hargaTebusTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function kiraUpahRebetSebenar($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->kiraUpahRebetSebenar($this->kodcaw,$norujukan); + + return $response; + } + + public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->upahTawarruq($this->kodcaw,$norujukan,$jeniskeuntungan); + + return $response; + } + + public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->upahRebetTawarruq($this->kodcaw,$norujukan,$jeniskeuntungan); + + return $response; + } + + public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusSeparuhTawarruq($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function tebusNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function hargaTebusNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->hargaTebusNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function kiraUpahNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->kiraUpahNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function upahNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->upahNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusSeparuhNotTawarruq($this->kodcaw,$norujukan,$request); + + return $response; + } + + function rebet($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->rebet($this->kodcaw,$norujukan); + + return $response; + } + + function rebetselepastawarruq($kodcaw,$norujukan){ + dd('tes'); + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->rebetselepastawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusUpdate($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function kiraupahUjrahOnePercent($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->kiraupahUjrahOnePercent($this->kodcaw,$norujukan); + + return $response; + } + + public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->kiraupahUjrahOnePercentRebate($this->kodcaw,$norujukan); + + return $response; + } + + /* End Penebusan */ + + public function test(){ + echo 'onepercent'; + } +} diff --git a/app/Support/Tawarruq.php b/app/Support/Tawarruq.php new file mode 100644 index 0000000..aff1913 --- /dev/null +++ b/app/Support/Tawarruq.php @@ -0,0 +1,172 @@ +kodcaw = $kodcaw; + $this->cawangan_info = parent::getInfoCawangan($kodcaw); + } + + /* Start Gadaian */ + public function createGadai(HttpRequest $httpRequest){ + $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->create($httpRequest); + + return $response; + } + + public function createMarhunGadai($norujukan,HttpRequest $httpRequest){ + $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->createMarhun($norujukan,$httpRequest); + + return $response; + } + + public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){ + $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->updateAnsuranKaunter($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function getUpahSebenar($norujukan){ + $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->kiraupahTawarruq($norujukan); + + return $response; + } + + public function getUpahRebet($norujukan){ + $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->kiraupahRebet($norujukan); + + return $response; + } + + /* End Gadaian */ + + /* Start Penebusan */ + + public function tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function hargaTebusTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->hargaTebusTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function kiraUpahRebetSebenar($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->kiraUpahRebetSebenar($this->kodcaw,$norujukan); + + return $response; + } + + public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + + return $response; + } + + public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan); + + return $response; + } + + public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusSeparuhTawarruq($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function tebusNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function hargaTebusNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->hargaTebusNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function kiraUpahNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->kiraUpahNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function upahNotTawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->upahNotTawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusSeparuhNotTawarruq($this->kodcaw,$norujukan,$request); + + return $response; + } + + function rebet($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->rebet($this->kodcaw,$norujukan); + + return $response; + } + + function rebetselepastawarruq($kodcaw,$norujukan){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->rebetselepastawarruq($this->kodcaw,$norujukan); + + return $response; + } + + public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusUpdate($this->kodcaw,$norujukan,$request); + + return $response; + } + + public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $tebus = new Penebusan($this->kodcaw,$this->cawangan_info); + $response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request); + + return $response; + } + + /* End Penebusan */ + + public function test(){ + echo 'tawarruq'; + } +} diff --git a/app/Support/v1/Calculation.php b/app/Support/v1/Calculation.php new file mode 100644 index 0000000..1bb810e --- /dev/null +++ b/app/Support/v1/Calculation.php @@ -0,0 +1,14 @@ +kodcaw = $kodcaw; + $this->cawangan_info = $cawangan_info; + } + + public function create(HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $kodcaw = $this->kodcaw; + $cawangan = $this->cawangan_info; + + try{ + DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) { + $gadai = Gadai::on($cawangan['mysql'])->create([ + 'kodcaw'=>$kodcaw, + 'norujukan' => $request->norujukan, + 'nopelanggan' => $request->nopelanggan, + 'nokp' => $request->nokp, + 'sirig' => $request->sirig, + 't_gadai' => $current->toDateString(), + 'sttebus' => '', + 'masa' =>$current->toTimeString() + ]); + return response()->json($gadai, 201); + }); + + + }catch(\Exception $e){ + + echo "Gadaian Gagal: " . $e->getMessage(); + } + } + + public function createMarhun($norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $t_matang = Carbon::now(); + $t_matang = new Carbon(); + $t_matang = $t_matang->addMonths(6)->subDays(1); + + $t_kontrak = Carbon::now(); + $t_kontrak = new Carbon(); + $t_kontrak = $t_kontrak->addMonths(12)->subDays(1); + + $margin_pinjam = $request->percentpinj *100; + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$request->kodcaw) + ->first(); + if($request->transaction == 'Ubah Gadai'){ + $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + } + + $bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->count(); + + $total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun'); + $total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat'); + + $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first(); + $tawarruqservices = new Calculation(); + + $upahcalculation = $tawarruqservices->kiraanTawarruq($request->pinjaman,$kadar_raw['kadarupdah']); + $upah1 = $upahcalculation; + $upah6 = $upah1 * 6; + $upah12 = $upah1 * 12; + + $hargajualan = $request->pinjaman + $upah12; + + $gadai = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->update(array( + 'nilaimarhun' => $total_nilai_marhun, + 'berat'=> $total_berat, + 'pinjaman' => $request->pinjaman, + 'kadarupah' => $kadar_raw['kadarupdah'], + 'marhun' => $request->marhun, + 'percentpinj' => $margin_pinjam, + 'teller' => $request->teller, + 'bakipjm' => $request->pinjaman, + 'bakiupah' => $upah6, + 'jbg' => 0.5, + 't_update' => $current->toDateString(), + 'cetak' => 0, + 'upah12' => $upah12, + 'hargajualan' => $hargajualan, + 'bakihargajualan' => $hargajualan, + 'tagserah' => 0, + 't_matang' => $t_matang, + 't_matang1' => $t_kontrak, + 'tempoh' => 0.5, + 'kuantiti' => $bil_marhun, + 'tagkomuditi' => 0, + 'upahdibayar' => 0.00, + 'tempohbayar' => 0.00, + 'lelong_tawarruq' => 1 + )); + + $new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $audit = new Audit(); + $audit->users = $request->teller; + $audit->actions = $request->transaction; + $audit->norujukan = $norujukan; + $audit->new_data = $new_data; + if($request->transaction == 'Ubah Gadai'){ + $audit->old_data = $old_data; + } + $audit->kodcaw = $request->kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + return response()->json($gadai, 200); + } + + public function kiraupahTawarruq($norujukan){ + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $tawarruqservices = new Calculation(); + $keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']); + $upahsemasa_raw = $bilang_bln * $keuntungan; + + $upah_semasa_round = number_format($upahsemasa_raw,2); + $upah_semasa = substr($upah_semasa_round, 0, -1); + // $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa)); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + return $upah_semasa; + } + + public function kiraUpahRebet($norujukan){ + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $tawarruqservices = new Calculation(); + $keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']); + + $upahrebet_raw = $bilang_bln * $keuntungan; + + $upah_rebet_round = number_format($upahrebet_raw,2); + $upah_rebet = substr($upah_rebet_round, 0, -1); + if(strpos($upah_rebet,',')){ + $upah_rebet = str_replace(',','',$upah_rebet); + } + // $upah_rebet = floatval(preg_replace('/[^\d.]/', '', $upah_rebet)); + + return $upah_rebet; + + } + + public function updateAnsuranKaunter($kodcaw,$norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $upahsemasa = $this->kiraupahTawarruq($norujukan); + $upahrebet = $this->kiraUpahRebet($norujukan); + + $total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk'); + + $total_bayaran_semasa = $total_bayaran_prev + $request->bayaran; + + if($total_bayaran_semasa >= $gadai['bakiupah']){ + $lelong_tawarruq = 0; + }else{ + $lelong_tawarruq = 1; + } + + $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $baki_hargajualan = $gadai['bakihargajualan'] - $request->bayaran; + + $baki_bayaran = $request->bayaran - $upahsemasa; + + $baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran; + + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => 'A', + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $request->bayaran, + 'created_at' => $current, + 'bakiharga' => $baki_hargajualan, + 'nowakil' => (int)$request->nowakil + ]); + + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $upahsemasa, + 'bayaran_pembiayaan' => $baki_bayaran, + 'keuntungan_rebet'=> $upahrebet, + 'tarikh_bayaran'=> $current, + 'kodcaw'=> $kodcaw + ]); + + $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 + )); + + $new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $audit = new Audit(); + $audit->users = $request->teller; + $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(); + + return response()->json($update_gadai, 200); + } + + + +} diff --git a/app/Support/v1/Penebusan.php b/app/Support/v1/Penebusan.php new file mode 100644 index 0000000..c4f2fb7 --- /dev/null +++ b/app/Support/v1/Penebusan.php @@ -0,0 +1,674 @@ +kodcaw = $kodcaw; + $this->cawangan_info = $cawangan_info; + } + + public function tebusTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + + $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; + + $hargatebus = bcdiv(round($harga_tebus,2),1,1); + $hargatebus = number_format($hargatebus,2); + if(strpos($hargatebus,',')){ + $hargatebus = str_replace(',','',$hargatebus); + } + + return response()->json($hargatebus); + } + + public function hargaTebusTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + + $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; + + $hargatebus = bcdiv(round($harga_tebus,2),1,1); + $hargatebus = number_format($hargatebus,2); + if(strpos($hargatebus,',')){ + $hargatebus = str_replace(',','',$hargatebus); + } + + return $hargatebus; + } + + public function kiraupahTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); + + $upah_semasa_round = number_format($upahsemasa_raw,2); + if(strpos($upah_semasa_round,',')){ + $upah_semasa_round = str_replace(',','',$upah_semasa_round); + } + $upah_semasa = substr($upah_semasa_round, 0, -1); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + + return $upah_semasa; + } + + public function kiraUpahRebet($norujukan){ + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + + $upah_rebet_round = number_format($upahrebet_raw,2); + if(strpos($upah_rebet_round,',')){ + $upah_rebet_round = str_replace(',','',$upah_rebet_round); + } + $upah_rebet = substr($upah_rebet_round, 0, -1); + if(strpos($upah_rebet,',')){ + $upah_rebet = str_replace(',','',$upah_rebet); + } + + return $upah_rebet; + } + + public function kiraUpahRebetSebenar($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar']; + + $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + + // $upah_rebet = round($upahrebet_raw,PHP_ROUND_HALF_UP); + $upah_rebet_round = number_format($upahrebet_raw,2); + if(strpos($upah_rebet_round,',')){ + $upah_rebet_round = str_replace(',','',$upah_rebet_round); + } + $upah_rebet = substr($upah_rebet_round, 0, -1); + if(strpos($upah_rebet,',')){ + $upah_rebet = str_replace(',','',$upah_rebet); + } + + $total_untung_rebet = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('keuntungan_rebet'); + $total_untung_asal = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('bayaran_keuntungan'); + $beza_keuntungan = $total_untung_asal - $total_untung_rebet; + + $keuntungan_rebet_sebenar = $upah_rebet - $beza_keuntungan; + return $keuntungan_rebet_sebenar; + } + + public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $tawarruqservices = new V1Calculation(); + $keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']); + $upahsemasa_raw = $bilang_bln * $keuntungan; + + $upah_semasa_round = number_format($upahsemasa_raw,2); + $upah_semasa = substr($upah_semasa_round, 0, -1); + // $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa)); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + return $upah_semasa; + } + + public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + + $upah_rebet = $this->kiraUpahRebet($norujukan); + + return response()->json(number_format($upah_rebet,2)); + } + + public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){ + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); + + $array_recno_marhun = $request->array_recno; + + $margin_pembiayaan = round(($gadai_data['bakipjm']/$gadai_data['nilaimarhun'])*100,2); + // $margin_pembiayaan = round(($gadai_data['bakipjm']/$request->hargasemasa)*100,2); + + $nilai_marhun = $gadai_data['nilaimarhun']; + $total_harga_tebus = 0; + foreach($array_recno_marhun as $recno){ + $marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first(); + + $harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun']; + + $total_harga_tebus += $harga_tebus; + } + + $total_harga_tebus_round = round($total_harga_tebus,2); + + $totalhargatebus = substr($total_harga_tebus_round, 0, -1); + + return response()->json($totalhargatebus); + } + + public function tebusNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); + + $harga_tebus = $upah_semasa + $gadai_data['pinjaman']; + + return response()->json($harga_tebus); + } + + public function hargaTebusNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); + + $harga_tebus = $upah_semasa + $gadai_data['pinjaman']; + + return $harga_tebus; + } + + public function kiraUpahNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upahtelahbayar = Advansur::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->sum('upahdibayar'); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + $bln_mora = Moratorium::first(); + + $upah_sebenar = $upah_asal - $rebet; + $bln_upah = $gadai_data['tempoh']; + if($bln_upah > $bln_mora['bln_mora']){ + $bln_upah = $bln_mora['bln_mora']; + } + $upahsemasa = $upah_sebenar * $bln_upah; + $upah_semasa = bcdiv(round($upahsemasa,2),1,1); + $upah_semasa = number_format($upah_semasa,2); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + $upah_semasa = (float)$upah_semasa - $upahtelahbayar; + + if($upah_semasa <= 0){ + $upah_semasa = 0; + } + + return $upah_semasa; + } + + public function upahNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upahtelahbayar = Advansur::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->sum('upahdibayar'); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + $bln_mora = Moratorium::first(); + + $upah_sebenar = $upah_asal - $rebet; + $bln_upah = $gadai_data['tempoh']; + if($bln_upah > $bln_mora['bln_mora']){ + $bln_upah = $bln_mora['bln_mora']; + } + $upahsemasa = $upah_sebenar * $bln_upah; + $upah_semasa = bcdiv(round($upahsemasa,2),1,1); + $upah_semasa = number_format($upah_semasa,2); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + $upah_semasa = (float)$upah_semasa - $upahtelahbayar; + + if($upah_semasa <= 0){ + $upah_semasa = 0; + } + + return response()->json($upah_semasa); + } + + public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + $upah_sebenar = $upah_asal - $rebet; + + $upah_semasa = bcdiv(round($upah_sebenar * $gadai_data['jbg'],2),1,1); + $upah_semasa = (float)number_format($upah_semasa,2); + + $array_recno_marhun = $request->array_recno; + + $margin_pembiayaan = round(($gadai_data['pinjaman']/$gadai_data['nilaimarhun'])*100,2); + + $nilai_marhun = $gadai_data['nilaimarhun']; + $total_harga_tebus = 0; + foreach($array_recno_marhun as $recno){ + $marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first(); + + $harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun']; + + $total_harga_tebus += $harga_tebus; + } + + // $total_harga_tebus += $upah_semasa; + + return response()->json($total_harga_tebus); + } + + function rebet($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + return floatval(number_format($rebet,2)); + } + + function rebetselepastawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $transaction_keuntungan = TransaksiKeuntungan::on('mysql7') + ->where('norujukan','=',$norujukan) + ->sum('keuntungan_rebet'); + + $upah_rebet = $this->kiraUpahRebet($norujukan); + + $rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet; + + $rebet_round = bcdiv(round($rebet_raw,2),1,1); + $rebet_round = number_format($rebet_round,2); + + if(strpos($rebet_round,',')){ + $rebet_round = str_replace(',','',$rebet_round); + } + $rebet = substr($rebet_round, 0, -1); + + return $rebet; + } + + public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + if($request->jenisbayarantebus == "tawarruq") + { + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + } + else if($request->jenisbayarantebus == "nottawarruq") + { + $rebet = $this->rebet($kodcaw,$norujukan); + } + else{ + $rebet = 0; + } + + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + if($gadai['hargajualan'] == null){ + $harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan); + $upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); + $upah_rebet = 0; + $upah_rebet_sebenar = 0; + }else{ + $harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan); + $upah_tebus = $this->kiraupahTawarruq($kodcaw,$norujukan); + $upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan); + $upah_rebet_sebenar = $harga_tebus - $gadai['bakipjm']; + } + + + $create_tebus = Tebus::on($cawangan['mysql'])->create([ + 'kodcaw'=> $kodcaw, + 'norujukan'=> $norujukan, + 'nopelanggan' => $request->nopelanggan, + 'jenisbyr' => "TN", + 'jenistebus' => $request->jenistebus, + 'glcode' => "0", + 't_tebus' => $current->toDateString(), + 'jbg' => $gadai['tempoh'], + 'kadarupah' => $gadai['kadarupah'], + 'nilaimarhun' => $gadai['nilaimarhun'], + 'pinjaman' => $gadai['pinjaman'], + 'ansuran' => 0.00, + 'addpinjaman' => $request->addpinjaman, + 'bakipjm' => $harga_tebus, + 'bakiupah' => $upah_tebus, + 'terima' => "*", + 'kodgl' => "0", + 'nowakil' => $request->nowakil, + 'rebate' => $rebet, + 'marhuntebus' => $request->marhun, + 'historygadaian' => $norujukan, + 'tarikhbyrn' => $current->toDateString(), + 'teller' => $request->teller + ]); + + $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ + 'tarikh' => $current->toDateString(), + 'masa' => $current->toTimeString(), + 'norujukan' => $norujukan, + 'nm' => $request->nilai_marhun, + 'pkd' => $request->teller, + 'drp' => $request->teller, + 'bln' => $current->month, + 'thn' => $current->year, + 'tag' => 0, + 'jenistebus' => $request->jenistebus, + 'namateller' => $request->teller + ]); + + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $upah_tebus, + 'bayaran_pembiayaan' => $gadai['bakipjm'], + 'keuntungan_rebet' => $upah_rebet_sebenar, + 'tarikh_bayaran'=> $current, + 'kodcaw'=> $kodcaw + ]); + + if($request->jenistebus == 'P'){ + $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakiupah; + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => $request->jenistebus, + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $request->bakiupah, + 'created_at' => $current, + 'bakiharga' => $baki_hargajualan, + ]); + }else{ + $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakipinjaman; + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => $request->jenistebus, + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $harga_tebus, + 'created_at' => $current, + 'bakiharga' => $baki_hargajualan, + 'nowakil' => (int)$request->nowakil + ]); + } + + $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( + 'sttebus' => "T", + 't_update' => $current->toDateString(), + )); + + $audit = new Audit(); + $audit->users = $request->teller; + if($request->jenistebus == 'P'){ + $audit->actions = "Tambah Pembiayaan"; + }else if($request->jenistebus == 'S'){ + $audit->actions = "Tebus Separuh"; + }else if($request->jenistebus == 'T'){ + $audit->actions = "Tebus Penuh"; + } + $audit->norujukan = $norujukan; + $audit->new_data = $create_tebus; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + return response()->json($update_gadai, 201); + } + + public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + if($request->jenisbayarantebus == "tawarruq") + { + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + } + else if($request->jenisbayarantebus == "nottawarruq") + { + $rebet = $this->rebet($kodcaw,$norujukan); + } + else{ + $rebet = 0; + } + + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( + 'sttebus' => "T", + 't_update' => $current->toDateString(), + )); + + $upah_rebet = $this->kiraUpahRebet($norujukan); + + $create_tebus = Tebus::on($cawangan['mysql'])->create([ + 'kodcaw'=> $kodcaw, + 'norujukan'=> $norujukan, + 'nopelanggan' => $request->nopelanggan, + 'jenisbyr' => "TN", + 'jenistebus' => $request->jenistebus, + 'glcode' => "0", + 't_tebus' => $current->toDateString(), + 'jbg' => $request->jbg, + 'kadarupah' => $request->kadarupah, + 'nilaimarhun' => $request->nilai_marhun, + 'pinjaman' => $request->pinjaman, + 'ansuran' => $request->ansuran, + 'addpinjaman' => $request->addpinjaman, + 'bakipjm' => $request->bakipinjaman, + 'bakiupah' => $request->bakiupah, + 'terima' => "*", + 'kodgl' => "0", + 'nowakil' => $request->nowakil, + 'rebate' => $rebet, + 'marhuntebus' => $request->marhun, + 'historygadaian' => $request->historygadaian, + 'tarikhbyrn' => $current->toDateString(), + 'teller' => $request->teller + ]); + + $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ + 'tarikh' => $current->toDateString(), + 'masa' => $current->toTimeString(), + 'norujukan' => $norujukan, + 'nm' => $request->nilai_marhun, + 'pkd' => $request->teller, + 'drp' => $request->teller, + 'bln' => $current->month, + 'thn' => $current->year, + 'tag' => 0, + 'jenistebus' => $request->jenistebus, + 'namateller' => $request->teller + ]); + + $bayaran_pembiayaan = $request->totalbayaran - $request->bakiupah; + + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $request->bakiupah, + 'bayaran_pembiayaan' => $bayaran_pembiayaan, + 'keuntungan_rebet' => 0, + 'tarikh_bayaran'=> $current, + 'kodcaw'=> $kodcaw + ]); + + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => $request->jenistebus, + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $request->totalbayaran, + 'created_at' => $current, + 'bakiharga' => 0, + ]); + + $audit = new Audit(); + $audit->users = $request->teller; + $audit->actions = "Auto Tawarruq"; + $audit->norujukan = $norujukan; + $audit->new_data = $create_tebus; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + return response()->json($update_gadai, 201); + } +} \ No newline at end of file diff --git a/app/Support/v2/Calculation.php b/app/Support/v2/Calculation.php new file mode 100644 index 0000000..4b3d3cc --- /dev/null +++ b/app/Support/v2/Calculation.php @@ -0,0 +1,121 @@ += 1){ + return; + } + + $ujrah = ($kadarujrah/100) * $nilaimarhun; + $formula_margin = ($this->maks_margin - $margin) / $this->maks_margin; + $ujrah_margin = $formula_margin * $kadarujrah; + $rebate_ujrah = $nilaimarhun*($ujrah_margin/100); + $ujrah_sebenar = $ujrah; + + return $ujrah_sebenar; + } + + private function kiraanOnePercent(float $pembiayaan = 0.0){ + + //periksa adakah pembiayaan adalah null atau kosong. + if($pembiayaan == 0 || $pembiayaan == null) + return; + + $onepercent = ($this->one_percent/100) * $pembiayaan; + + + return $onepercent; + } + + public function kiraanUjrahSebenar(float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){ + + if($kadarujrah >= 1){ + return; + } + + $ujrah = ($kadarujrah/100) * $nilaimarhun; + $formula_margin = ($this->maks_margin - $margin) / $this->maks_margin; + $rebate_ujrah = $formula_margin * $ujrah; + $ujrah_sebenar = $ujrah - $rebate_ujrah; + + return $ujrah_sebenar; + } + + public function kiraanKeuntunganRebet(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){ + + $onepercent = $this->kiraanOnePercent($pembiayaan); + $ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin); + + $onepercent = $this->getRoundedMethod($onepercent); + $ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar); + + $keuntungan = $onepercent + $ujrah_sebenar; + + return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; + } + + public function kiraanKeuntunganSebenar(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){ + + $onepercent = $this->kiraanOnePercent($pembiayaan); + $ujrah_sebenar = $this->kiraanUjrah($nilaimarhun,$kadarujrah,$margin); + + $onepercent = $this->getRoundedMethod($onepercent); + $ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar); + + $keuntungan = $onepercent + $ujrah_sebenar; + + return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; + } + + public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{ + + $kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray(); + + return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0; + } + + public function getRoundedMethod(float $number = 0.0) : Float{ + $number_string = number_format($number,2); + $rounded = substr($number_string, 0, -1); + $lastDigit = substr($number_string, -1); + + if ($lastDigit >= 0 && $lastDigit <= 2) { + if(strpos($rounded,',')){ + $rounded = str_replace(',','',$rounded); + } + return $rounded; + } elseif ($lastDigit >= 3 && $lastDigit <= 7) { + $rounded = $rounded . '5'; + if(strpos($rounded,',')){ + $rounded = str_replace(',','',$rounded); + } + return $rounded; + } else { + return round($number,PHP_ROUND_HALF_UP); + } + } + + /* End of Line Calculation */ + + + + + + + + +} diff --git a/app/Support/v2/GadaiV2.php b/app/Support/v2/GadaiV2.php new file mode 100644 index 0000000..4e03a5b --- /dev/null +++ b/app/Support/v2/GadaiV2.php @@ -0,0 +1,328 @@ +kodcaw = $kodcaw; + $this->cawangan_info = $cawangan_info; + } + + public function create(HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $kodcaw = $this->kodcaw; + $cawangan = $this->cawangan_info; + try{ + DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) { + $gadai = Gadai::on($cawangan['mysql'])->create([ + 'kodcaw'=>$kodcaw, + 'norujukan' => $request->norujukan, + 'nopelanggan' => $request->nopelanggan, + 'nokp' => $request->nokp, + 'sirig' => $request->sirig, + 't_gadai' => $current->toDateString(), + 'sttebus' => '', + 'masa' =>$current->toTimeString(), + 'tagbaru' => 1 + ]); + return response()->json($gadai, 201); + }); + + + }catch(\Exception $e){ + + echo "Gadaian Gagal: " . $e->getMessage(); + } + } + + public function createMarhun($norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $t_matang = Carbon::now(); + $t_matang = new Carbon(); + $t_matang = $t_matang->addMonths(6)->subDays(1); + + $t_kontrak = Carbon::now(); + $t_kontrak = new Carbon(); + $t_kontrak = $t_kontrak->addMonths(12)->subDays(1); + + $margin_pinjam = $request->percentpinj *100; + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$request->kodcaw) + ->first(); + if($request->transaction == 'Ubah Gadai'){ + $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + } + + $bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->count(); + + $total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun'); + $total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat'); + + //query kadar upah baru + $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first(); + + + // query kadar upah lama + // $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first(); + + $onepercentservices = new Calculation(); + $keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjam); + // $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100); + // $upah6 = $upah1 * 6; + // $upah12 = $upah1 * 12; + $upah1 = $keuntungan['keuntungan']; + $upah6 = $upah1 * 6; + $upah12 = $upah1 * 12; + $ujrah = $keuntungan['ujrah']; + $onepercent = $keuntungan['onepercent']; + + $hargajualan = $request->pinjaman + $upah12; + + $gadai = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->update(array( + 'nilaimarhun' => $total_nilai_marhun, + 'berat'=> $total_berat, + 'pinjaman' => $request->pinjaman, + 'kadarupah' => $kadar_raw['kadarujrah'], + 'marhun' => $request->marhun, + 'percentpinj' => $margin_pinjam, + 'teller' => $request->teller, + 'bakipjm' => $request->pinjaman, + 'bakiupah' => $upah6, + 'jbg' => 0.5, + 't_update' => $current->toDateString(), + 'cetak' => 0, + 'upah12' => $upah12, + 'hargajualan' => $hargajualan, + 'bakihargajualan' => $hargajualan, + 'tagserah' => 0, + 't_matang' => $t_matang, + 't_matang1' => $t_kontrak, + 'tempoh' => 0.5, + 'kuantiti' => $bil_marhun, + 'tagkomuditi' => 0, + 'upahdibayar' => 0.00, + 'tempohbayar' => 0.00, + 'lelong_tawarruq' => 1, + 'kadarujrah' => $kadar_raw['kadarujrah'], + 'ujrah' => $ujrah, + 'onepercent' => $onepercent, + 'margin_semasa' => $margin_pinjam, + 'tagbaru' => 1 + )); + + $new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $audit = new Audit(); + $audit->users = $request->teller; + $audit->actions = $request->transaction; + $audit->norujukan = $norujukan; + $audit->new_data = $new_data; + if($request->transaction == 'Ubah Gadai'){ + $audit->old_data = $old_data; + } + $audit->kodcaw = $request->kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + return 'true'; + } + + public function kiraupahOnePercent($norujukan){ + $onepercentservices = new Calculation(); + + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); + $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; + $upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw); + + return $upahsemasa_raw; + } + + public function kiraupahRebet($norujukan){ + $onepercentservices = new Calculation(); + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$this->kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + + $upahrebet_raw = $bilang_bln * $upah['keuntungan']; + $upahrebet_raw = $onepercentservices->getRoundedMethod($upahrebet_raw); + + return $upahrebet_raw; + } + + public function updateAnsuranKaunter($kodcaw,$norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $upahsemasa = $this->kiraupahOnePercent($norujukan); + $upahrebet = $this->kiraUpahRebet($norujukan); + + $total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk'); + + $total_bayaran_semasa = $total_bayaran_prev + $request->bayaran; + + if($total_bayaran_semasa >= $gadai['bakiupah']){ + $lelong_tawarruq = 0; + }else{ + $lelong_tawarruq = 1; + } + $onepercent = new Calculation(); + + $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $baki_hargajualan = $gadai['bakihargajualan'] - $request->bayaran; + + $baki_bayaran = $request->bayaran - $upahsemasa; + + $baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran; + + $margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100; + + $keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa); + $ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']); + + $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' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $request->bayaran, + 'created_at' => $current, + 'bakiharga' => $baki_hargajualan, + 'nowakil' => (int)$request->nowakil, + 'duitpelanggan' => $request->duitpelanggan, + 'bakipelanggan' => $request->bakipelanggan + ]); + + 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 = $request->teller; + $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); + } + + +} + diff --git a/app/Support/v2/Penebusan.php b/app/Support/v2/Penebusan.php new file mode 100644 index 0000000..87845af --- /dev/null +++ b/app/Support/v2/Penebusan.php @@ -0,0 +1,754 @@ +kodcaw = $kodcaw; + $this->cawangan_info = $cawangan_info; + } + + public function tebusTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $jeniskeuntungan = ($gadai_data['tagbaru'] == 1) ? 'onepercent' : 'asal'; + + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan); + $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; + + // $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP); + $hargatebus = bcdiv(round($harga_tebus,2),1,1); + $hargatebus = number_format($hargatebus,2); + if(strpos($hargatebus,',')){ + $hargatebus = str_replace(',','',$hargatebus); + } + return response()->json($hargatebus); + } + + public function hargaTebusTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + + $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; + + // $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP); + $hargatebus = bcdiv(round($harga_tebus,2),1,1); + $hargatebus = number_format($hargatebus,2); + if(strpos($hargatebus,',')){ + $hargatebus = str_replace(',','',$hargatebus); + } + + $arrayharga = ['harga' => $hargatebus]; + + return $arrayharga; + } + + public function kiraUpahRebetSebenar($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar']; + + $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + + // $upah_rebet = round($upahrebet_raw,PHP_ROUND_HALF_UP); + $upah_rebet_round = number_format($upahrebet_raw,2); + if(strpos($upah_rebet_round,',')){ + $upah_rebet_round = str_replace(',','',$upah_rebet_round); + } + $upah_rebet = substr($upah_rebet_round, 0, -1); + if(strpos($upah_rebet,',')){ + $upah_rebet = str_replace(',','',$upah_rebet); + } + + $total_untung_rebet = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('keuntungan_rebet'); + $total_untung_asal = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('bayaran_keuntungan'); + $beza_keuntungan = $total_untung_asal - $total_untung_rebet; + + $keuntungan_rebet_sebenar = $upah_rebet - $beza_keuntungan; + return $keuntungan_rebet_sebenar; + } + + public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + $onepercentservices = new Calculation(); + + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); + $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; + $keuntungan_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']); + $ujrah_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']); + $upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw); + + $array_upah = ['pendapatan' => $upahsemasa_raw, + 'keuntungan' => $keuntungan_semasa, + 'ujrah' => $ujrah_semasa]; + + return $array_upah; + } + + public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + + $onepercentservices = new Calculation(); + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$this->kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + + $upahrebet_raw = $bilang_bln * $upah['keuntungan']; + $upahrebet_raw = $onepercentservices->getRoundedMethod($upahrebet_raw); + + return $upahrebet_raw; + } + + public function kiraupahTawarruq($norujukan){ + $onepercentservices = new Calculation(); + + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); + $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; + $upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw); + + return $upahsemasa_raw; +} + + public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){ + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upahsemasa = $this->kiraupahTawarruq($norujukan); + + $array_recno_marhun = $request->array_recno; + + $margin_pembiayaan = round(($gadai_data['bakipjm']/$gadai_data['nilaimarhun'])*100,2); + // $margin_pembiayaan = round(($gadai_data['bakipjm']/$request->hargasemasa)*100,2); + + $nilai_marhun = $gadai_data['nilaimarhun']; + $total_harga_tebus = 0; + foreach($array_recno_marhun as $recno){ + $marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first(); + + $harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun']; + + $total_harga_tebus += $harga_tebus; + } + + $total_harga_tebus_round = round($total_harga_tebus,2); + + $totalhargatebus = substr($total_harga_tebus_round, 0, -1); + + return response()->json($totalhargatebus); + } + + public function tebusNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); + + $harga_tebus = $upah_semasa + $gadai_data['pinjaman']; + + return response()->json($harga_tebus); + } + + public function hargaTebusNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); + + $harga_tebus = $upah_semasa + $gadai_data['pinjaman']; + + return $harga_tebus; + } + + public function kiraUpahNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upahtelahbayar = Advansur::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->sum('upahdibayar'); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + $bln_mora = Moratorium::first(); + + $upah_sebenar = $upah_asal - $rebet; + $bln_upah = $gadai_data['tempoh']; + if($bln_upah > $bln_mora['bln_mora']){ + $bln_upah = $bln_mora['bln_mora']; + } + $upahsemasa = $upah_sebenar * $bln_upah; + $upah_semasa = bcdiv(round($upahsemasa,2),1,1); + $upah_semasa = number_format($upah_semasa,2); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + $upah_semasa = (float)$upah_semasa - $upahtelahbayar; + + if($upah_semasa <= 0){ + $upah_semasa = 0; + } + + return $upah_semasa; + } + + public function upahNotTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upahtelahbayar = Advansur::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->sum('upahdibayar'); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + $bln_mora = Moratorium::first(); + + $upah_sebenar = $upah_asal - $rebet; + $bln_upah = $gadai_data['tempoh']; + if($bln_upah > $bln_mora['bln_mora']){ + $bln_upah = $bln_mora['bln_mora']; + } + $upahsemasa = $upah_sebenar * $bln_upah; + $upah_semasa = bcdiv(round($upahsemasa,2),1,1); + $upah_semasa = number_format($upah_semasa,2); + if(strpos($upah_semasa,',')){ + $upah_semasa = str_replace(',','',$upah_semasa); + } + $upah_semasa = (float)$upah_semasa - $upahtelahbayar; + + if($upah_semasa <= 0){ + $upah_semasa = 0; + } + + return response()->json($upah_semasa); + } + + public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + $upah_sebenar = $upah_asal - $rebet; + + $upah_semasa = bcdiv(round($upah_sebenar * $gadai_data['jbg'],2),1,1); + $upah_semasa = (float)number_format($upah_semasa,2); + + $array_recno_marhun = $request->array_recno; + + $margin_pembiayaan = round(($gadai_data['pinjaman']/$gadai_data['nilaimarhun'])*100,2); + + $nilai_marhun = $gadai_data['nilaimarhun']; + $total_harga_tebus = 0; + foreach($array_recno_marhun as $recno){ + $marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first(); + + $harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun']; + + $total_harga_tebus += $harga_tebus; + } + + // $total_harga_tebus += $upah_semasa; + + return response()->json($total_harga_tebus); + } + + function rebet($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah']; + $margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100; + $margin_kadarupah = 80; + + $rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal; + + return floatval(number_format($rebet,2)); + } + + function rebetselepastawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $transaction_keuntungan = TransaksiKeuntungan::on('mysql7') + ->where('norujukan','=',$norujukan) + ->sum('keuntungan_rebet'); + + $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan); + + $rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet; + + return $rebet_raw; + } + + public function kiraupahRebet($kodcaw,$norujukan){ + $onepercentservices = new Calculation(); + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$this->kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + + $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + + $upahrebet_raw = $bilang_bln * $upah['keuntungan']; + $upahrebet_raw = $onepercentservices->getRoundedMethod($upahrebet_raw); + + return $upahrebet_raw; + } + + public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + if($request->jenisbayarantebus == "tawarruq"){ + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); + } + else if($request->jenisbayarantebus == "nottawarruq") + { + $rebet = $this->rebet($kodcaw,$norujukan); + } + else{ + $rebet = 0; + } + + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $ujrah=0;$onepercent=0;$rounded=0; + if($gadai['hargajualan'] == null){ + $harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan); + $upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); + $upah_rebet = 0; + $upah_rebet_sebenar = 0; + }else{ + $harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); + $upah_tebus = $this->kiraupahTawarruq($norujukan); + $upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan); + $upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm']; + + if($request->jeniskeuntungan == 'onepercent'){ + $array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan); + $array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan); + $margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100; + $ujrah = $array_onepercent['ujrah']; + $onepercent = $array_onepercent['onepercent']; + } + } + + + $create_tebus = Tebus::on($cawangan['mysql'])->create([ + 'kodcaw'=> $kodcaw, + 'norujukan'=> $norujukan, + 'nopelanggan' => $request->nopelanggan, + 'jenisbyr' => "TN", + 'jenistebus' => $request->jenistebus, + 'glcode' => "0", + 't_tebus' => $current->toDateString(), + 'jbg' => $gadai['tempoh'], + 'kadarupah' => $gadai['kadarupah'], + 'nilaimarhun' => $gadai['nilaimarhun'], + 'pinjaman' => $gadai['pinjaman'], + 'ansuran' => 0.00, + 'addpinjaman' => $request->addpinjaman, + 'bakipjm' => $harga_tebus['harga'], + 'bakiupah' => $upah_tebus, + 'terima' => "*", + 'kodgl' => "0", + 'nowakil' => $request->nowakil, + 'rebate' => $rebet, + 'marhuntebus' => $request->marhun, + 'historygadaian' => $norujukan, + 'tarikhbyrn' => $current->toDateString(), + 'teller' => $request->teller, + 'ujrah' => $ujrah, + 'onepercent' => $onepercent, + ]); + + $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ + 'tarikh' => $current->toDateString(), + 'masa' => $current->toTimeString(), + 'norujukan' => $norujukan, + 'nm' => $request->nilai_marhun, + 'pkd' => $request->teller, + 'drp' => $request->teller, + 'bln' => $current->month, + 'thn' => $current->year, + 'tag' => 0, + 'jenistebus' => $request->jenistebus, + 'namateller' => $request->teller + ]); + + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $upah_tebus, + 'bayaran_pembiayaan' => $gadai['bakipjm'], + 'keuntungan_rebet' => $upah_rebet_sebenar, + 'tarikh_bayaran'=> $current, + 'kodcaw'=> $kodcaw, + 'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0, + 'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['ujrah'] : 0, + 'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0, + 'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['onepercent'] : 0, + 'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0, + 'tempoh' => $gadai['tempoh'], + 'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']), + ]); + + if($request->jenistebus == 'P'){ + $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakiupah; + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => $request->jenistebus, + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $request->bakiupah, + 'created_at' => $current, + 'bakiharga' => $baki_hargajualan, + ]); + }else{ + $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakipinjaman; + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => $request->jenistebus, + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $harga_tebus['harga'], + 'created_at' => $current, + 'bakiharga' => $baki_hargajualan, + 'nowakil' => (int)$request->nowakil, + 'duitpelanggan' => isset($request->duitpelanggan) ? $request->duitpelanggan : 0, + 'bakipelanggan' => $request->bakipelanggan + ]); + } + + $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( + 'sttebus' => "T", + 't_update' => $current->toDateString(), + )); + + $audit = new Audit(); + $audit->users = $request->teller; + if($request->jenistebus == 'P'){ + $audit->actions = "Tambah Pembiayaan"; + }else if($request->jenistebus == 'S'){ + $audit->actions = "Tebus Separuh"; + }else if($request->jenistebus == 'T'){ + $audit->actions = "Tebus Penuh"; + } + $audit->norujukan = $norujukan; + $audit->new_data = $create_tebus; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + return response()->json($update_gadai, 201); + } + + public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + if($request->jenisbayarantebus == "tawarruq") + { + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + } + else if($request->jenisbayarantebus == "nottawarruq") + { + $rebet = $this->rebet($kodcaw,$norujukan); + } + else{ + $rebet = 0; + } + + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( + 'sttebus' => "T", + 't_update' => $current->toDateString(), + )); + + $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan); + + $create_tebus = Tebus::on($cawangan['mysql'])->create([ + 'kodcaw'=> $kodcaw, + 'norujukan'=> $norujukan, + 'nopelanggan' => $request->nopelanggan, + 'jenisbyr' => "TN", + 'jenistebus' => $request->jenistebus, + 'glcode' => "0", + 't_tebus' => $current->toDateString(), + 'jbg' => $request->jbg, + 'kadarupah' => $request->kadarupah, + 'nilaimarhun' => $request->nilai_marhun, + 'pinjaman' => $request->pinjaman, + 'ansuran' => $request->ansuran, + 'addpinjaman' => $request->addpinjaman, + 'bakipjm' => $request->bakipinjaman, + 'bakiupah' => $request->bakiupah, + 'terima' => "*", + 'kodgl' => "0", + 'nowakil' => $request->nowakil, + 'rebate' => $rebet, + 'marhuntebus' => $request->marhun, + 'historygadaian' => $request->historygadaian, + 'tarikhbyrn' => $current->toDateString(), + 'teller' => $request->teller + ]); + + $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ + 'tarikh' => $current->toDateString(), + 'masa' => $current->toTimeString(), + 'norujukan' => $norujukan, + 'nm' => $request->nilai_marhun, + 'pkd' => $request->teller, + 'drp' => $request->teller, + 'bln' => $current->month, + 'thn' => $current->year, + 'tag' => 0, + 'jenistebus' => $request->jenistebus, + 'namateller' => $request->teller + ]); + + $bayaran_pembiayaan = $request->totalbayaran - $request->bakiupah; + + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $request->bakiupah, + 'bayaran_pembiayaan' => $bayaran_pembiayaan, + 'keuntungan_rebet' => 0, + 'tarikh_bayaran'=> $current, + 'kodcaw'=> $kodcaw + ]); + + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => $request->jenistebus, + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => $request->teller, + 'kodcaw' => $kodcaw, + 'duit_masuk' => $request->totalbayaran, + 'created_at' => $current, + 'bakiharga' => 0, + 'duitpelanggan' => $request->bayaranpelanggan, + 'bakipelanggan' => $request->bakipelanggan + ]); + + $audit = new Audit(); + $audit->users = $request->teller; + $audit->actions = "Pembiayaan Semula"; + $audit->norujukan = $norujukan; + $audit->new_data = $create_tebus; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + return response()->json($update_gadai, 201); + } + + public function kiraupahUjrahOnePercent($kodcaw,$norujukan){ + $onepercentservices = new Calculation(); + + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + $array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); + $ujrah = $bilang_bln * $array_upah['ujrah']; + $onepercent = $bilang_bln * $array_upah['onepercent']; + $onepercent_semasa = $onepercent; + $ujrah_semasa = $ujrah; + + return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa]; + } + + public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){ + $onepercentservices = new Calculation(); + + $cawangan = $this->cawangan_info; + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + $array_upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + $ujrah = $bilang_bln * $array_upah['ujrah']; + $onepercent = $bilang_bln * $array_upah['onepercent']; + + return ['ujrah' => $ujrah, 'onepercent' => $onepercent]; + } + + +} \ No newline at end of file diff --git a/database/factories/GadaiFactory.php b/database/factories/GadaiFactory.php index c9a3c5c..8a951aa 100644 --- a/database/factories/GadaiFactory.php +++ b/database/factories/GadaiFactory.php @@ -17,10 +17,10 @@ class GadaiFactory return [ 'kodcaw' => 'KB2', - 'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number , + 'norujukan' => ($number > 9) ? 'KB2231211-00' . $number : 'KB2231211-000' . $number , 'nopelanggan' => 'M03-00009968', 'nokp' => '630411035213', - 't_gadai' => '2023-11-23', + 't_gadai' => '2023-12-11', 'masa' => '13:46:57', 'sirig' => $number++, 'nilaimarhun' => 3000.09, @@ -53,7 +53,7 @@ class GadaiFactory 'upahdibayar' => 0.00, 'marhun' => '1 R/L,', 'taglel' => null, - 't_update' => '2023-11-23', + 't_update' => '2023-12-11', 't_matang' => '2024-06-24', 't_matang1' => '2024-06-24', 'penilai' => 'MOHD KHALID ABDUL RAHMAN', diff --git a/database/factories/MarhunFactory.php b/database/factories/MarhunFactory.php index ecad2f6..4aca234 100644 --- a/database/factories/MarhunFactory.php +++ b/database/factories/MarhunFactory.php @@ -18,8 +18,8 @@ class MarhunFactory return [ 'kodcaw' => 'KB2', 'marhun' => 'R/L', - 't_gadai' => '2023-11-23', - 'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number , + 't_gadai' => '2023-12-11', + 'norujukan' => ($number > 9) ? 'KB2231211-00' . $number : 'KB2231211-000' . $number , 'bil' => 1, 'nota' => $number++, 'karat' => '24.0K', diff --git a/database/migrations/2023_11_08_115215_add_onepercent_to_gadai_table.php b/database/migrations/2023_11_08_115215_add_onepercent_to_gadai_table.php index bd8661e..f22210a 100644 --- a/database/migrations/2023_11_08_115215_add_onepercent_to_gadai_table.php +++ b/database/migrations/2023_11_08_115215_add_onepercent_to_gadai_table.php @@ -62,7 +62,7 @@ class AddOnepercentToGadaiTable extends Migration $db_connection = $this->getActiveDB(); foreach($db_connection as $dbase){ - if (Schema::connection('mysql7')->hasColumn('ujrah', 'onepercent')){ + if (Schema::connection('mysql7')->hasColumn('kadarujrah', 'ujrah', 'onepercent','margin_semasa','tagbaru')){ Schema::connection($dbase)->table('gadai', function (Blueprint $table) { $table->dropColumn(['kadarujrah', 'ujrah', 'onepercent','margin_semasa','tagbaru']); }); diff --git a/database/migrations/2023_12_08_151908_add_version_to_arrahn_master_db_table.php b/database/migrations/2023_12_08_151908_add_version_to_arrahn_master_db_table.php new file mode 100644 index 0000000..03a9ac9 --- /dev/null +++ b/database/migrations/2023_12_08_151908_add_version_to_arrahn_master_db_table.php @@ -0,0 +1,34 @@ +char('version', 4)->default($value); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::connection('mysql7')->table('arrahn_master_db', function (Blueprint $table) { + $table->dropColumn(['version']); + }); + } +} diff --git a/routes/web.php b/routes/web.php index 187f1d0..a2a4908 100644 --- a/routes/web.php +++ b/routes/web.php @@ -778,6 +778,8 @@ $router->group(['prefix'=>'admin'], function () use ($router){ $router->put('tetapan/listbarcode/update',['uses'=>'AdminPageController@ListBarcodeScannedOperasi_Update']); $router->get('tetapan/penggunamargin',['uses'=>'AdminPageController@PenggunaMargin']); $router->put('tetapan/penggunamargin/update',['uses'=>'AdminPageController@PenggunaMargin_Update']); + $router->get('tetapan/listcawangan',['uses'=>'AdminPageController@ListCawangan']); + $router->put('tetapan/listcawangan/update',['uses'=>'AdminPageController@ListCawangan_Update']); $router->get('laporanllcaw/gadai',['uses'=>'AdminPageController@getLaporanGadaiAllCaw']); diff --git a/tinker/getOnePercent.php b/tinker/getOnePercent.php index b050fb0..965da66 100644 --- a/tinker/getOnePercent.php +++ b/tinker/getOnePercent.php @@ -1,14 +1,13 @@ getTotalKeuntungan('B'); -$test2 = $report->getTotalUjrah('B'); - - -dd($test,$test2); +use App\Services\MasterServices; +use App\Support\v2\Calculation; + $number = 1456.50; + $test2 = new Calculation(); + $test = new MasterServices('KB2'); + // $response = $test->kiraUpahTawarruq('KB2231207-0004'); + $testrounded = $test2->getRoundedMethod($number); + $response = 'tes'; + dd($testrounded);