tarikh upah dan imbang duga refined dan calculation ujrah

This commit is contained in:
Hafifie PKB
2024-02-01 09:33:51 +08:00
parent 4726ea7c5c
commit 363402dcf0
11 changed files with 273 additions and 23 deletions
@@ -1631,4 +1631,72 @@ class LaporanController extends Controller
return response('succesfully generated!');
}
public function UpdateDailyImbangDugaRefined(Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$tarikh = new Carbon($request->tarikh);
DB::connection($cawangan['mysql'])->beginTransaction();
try{
$imbangduga = imbangdugabackup::on($cawangan['mysql'])->whereDate('tarikh',$request->tarikh)->update(array(
'kodcaw' => $request->kodcaw,
'tarikh' => $tarikh->toDateString(),
'tunaiditangan' => $request->tunaiditangan,
'pembiayaantawarruq' => $request->pembiayaantawarruq,
'bayaranpendahuluan' => $request->bayaranpendahuluan,
'pinjamankoop' => $request->pinjamankoop,
'emaspalsu' => $request->emaspalsu,
'serahan' => $request->serahan,
'bds' => $request->bds,
'perubatan' => $request->perubatan,
'keraian' => $request->keraian,
'rugilelong' => $request->rugilelong,
'bakilelong' => $request->bakilelong,
'wtd' => $request->wtd,
'untungrugiterkumpul' => $request->untungrugiterkumpul,
'keun_sebenar' => $request->keun_sebenar,
'pendahuluan' => $request->pendahuluan,
'cajlelong' => $request->cajlelong,
'pindahkekpkb' => $request->pindahkekpkb,
'penghutangkaki' => $request->penghutangkaki,
'phapuskira' => $request->phapuskira,
'belian1stop' => $request->belian1stop,
'keun_penggadai' => $request->keun_penggadai,
'pend_terakru' => $request->pend_terakru,
'cajperkhidmatan' => $request->cajperkhidmatan,
'cajlelongxtra' => $request->cajlelongxtra,
'upahsimpanxtra' => $request->upahsimpanxtra,
'bakilelongxtra' => $request->bakilelongxtra,
'rugilelongxtra' => $request->rugilelongxtra,
'utgterkumpulxtra' => $request->utgterkumpulxtra,
'jualan1stop' => $request->jualan1stop,
'hapuskira' => $request->hapuskira,
'ujrah' => $request->ujrah,
'onepercent' => $request->onepercent,
'totalharta' => $request->totalharta,
'totaltanggungan' => $request->totaltanggungan,
'tagtally' => $request->tagtally,
'created_at' => $tarikh->toDateTimeString(),
'updated_at' => $tarikh->toDateTimeString(),
));
DB::connection($cawangan['mysql'])->commit();
return response()->json('success',200);
}catch (\Throwable $e){
DB::connection($cawangan['mysql'])->rollBack();
return response()->json($e,500);
}
}
public function getImbangDugaBackupData(Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$response = imbangdugabackup::on($cawangan['mysql'])->select($request->data_name)->whereDate('tarikh','=',$request->tarikh)->firstOr(function () {
return ['message' => 'No Data'];
});
if(isset($response['message']) == false) $response = $response[$request->data_name];
return $response;
}
}
+7
View File
@@ -1878,6 +1878,13 @@ class TebusController extends Controller
return $response;
}
public function upahTawarruqByTarikh(Request $request){
$master = new MasterServices($request->kodcaw);
$response = $master->kiraupahTawarruqByTarikh($request->kodcaw,$request->norujukan,$request->tarikh,$request);
return $response;
}
}
+12
View File
@@ -235,6 +235,18 @@ class MasterServices
return $response;
}
public function kiraupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh,HttpRequest $request){
if($request->jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->kiraanupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh);
return $response;
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->kiraanupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh);
return $response;
}
}
/* End Penebusan */
public function test(){
+8 -1
View File
@@ -36,7 +36,7 @@ class OnePercent extends MasterServices
public function getUpahSebenar($norujukan){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->kiraupahOnePercent($this->kodcaw,$norujukan);
$response = $gadai->kiraupahOnePercent($norujukan);
return $response;
}
@@ -199,6 +199,13 @@ class OnePercent extends MasterServices
return $response;
}
public function kiraanupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraupahTawarruqByTarikh($this->kodcaw,$norujukan,$tarikh);
return $response;
}
/* End Penebusan */
public function test(){
+7
View File
@@ -170,6 +170,13 @@ class Tawarruq extends MasterServices
return $response;
}
public function kiraanupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraupahTawarruqByTarikh($this->kodcaw,$norujukan,$tarikh);
return $response;
}
/* End Penebusan */
public function test(){
+69
View File
@@ -675,4 +675,73 @@ class Penebusan
return response()->json($update_gadai, 201);
}
public function kiraupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$tempoh_func = $this->kiraanTarikhJBG($gadai_data['t_gadai'],$tarikh);
if($tempoh_func >= 12.0){
$tempoh = 12;
}else{
$tempoh = $tempoh_func;
}
$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);
}
$array_return = [
'upahsemasa' => $upah_semasa,
'tempoh' => $tempoh,
];
return $array_return;
}
private function kiraanTarikhJBG($tarikhgadai,$tarikh){
$tarikh_gadai = Carbon::parse($tarikhgadai. ' 00:00:00');
$tarikh = new Carbon($tarikh);
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $tarikh->year;
$bulan_semasa = $tarikh->month;
$hari_semasa = $tarikh->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
return $tempoh_gadai;
}
}
+10 -8
View File
@@ -24,7 +24,7 @@ class Calculation
$formula_margin = ($this->maks_margin - $margin) / $this->maks_margin;
$ujrah_margin = $formula_margin * $kadarujrah;
$rebate_ujrah = $nilaimarhun*($ujrah_margin/100);
$ujrah_sebenar = $ujrah;
$ujrah_sebenar = $ujrah - $rebate_ujrah;
return $ujrah_sebenar;
}
@@ -62,8 +62,8 @@ class Calculation
$onepercent = $this->kiraanOnePercent($pembiayaan);
$ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin);
$onepercent = $this->getRoundedMethod($onepercent);
$ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar);
// $onepercent = $this->getRoundedMethod($onepercent);
// $ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar);
$keuntungan = $onepercent + $ujrah_sebenar;
@@ -73,12 +73,10 @@ class Calculation
public function kiraanKeuntunganSebenar(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
$this->one_percent = $this->getKadarUpah($nilaimarhun);
$onepercent = $this->kiraanOnePercent($pembiayaan);
$ujrah_sebenar = $this->kiraanUjrah($nilaimarhun,$kadarujrah,$margin);
$onepercent = $this->getRoundedMethod($onepercent);
$ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar);
// $onepercent = $this->getRoundedMethod($onepercent);
// $ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar);
$keuntungan = $onepercent + $ujrah_sebenar;
@@ -99,7 +97,11 @@ class Calculation
}
public function getRoundedMethod(float $number = 0.0) : Float{
$number_string = number_format(floor(($number*100))/100,2);
// $multiplied = number_format($number * 100,2);
// $floorResult = floor($multiplied);
// $number_string = number_format($floorResult/100,2);
$number_string = number_format(floor($number * 100)/100,2);
$rounded = substr($number_string, 0, -1);
$lastDigit = substr($number_string, -1);
+3 -3
View File
@@ -239,7 +239,7 @@ class GadaiV2
$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']);
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['percentpinj']);
$onepercentasal = $gadai['pinjaman'] * (1/100);
@@ -268,8 +268,8 @@ class GadaiV2
}
$bilang_bln = $tempoh - $gadai['tempohbayar'];
$ujrah = $onepercent->getRoundedMethod($keuntungan['ujrah'] * $bilang_bln);
$ujrah_rebate = $onepercent->getRoundedMethod($ujrahasal * $bilang_bln);
$ujrah = $onepercent->getRoundedMethod($ujrahasal * $bilang_bln);
$ujrah_rebate = $onepercent->getRoundedMethod($keuntungan['ujrah'] * $bilang_bln);
$keun = $onepercent->getRoundedMethod($onepercentasal * $bilang_bln);
$keuntungan_rebate = $onepercent->getRoundedMethod($keuntungan['onepercent'] * $bilang_bln);
+78 -7
View File
@@ -184,7 +184,7 @@ class Penebusan
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$upahrebet_raw = $onepercentservices->getRoundedMethod($bilang_bln * $upah['keuntungan']);
$upahujrah_raw = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
$upahonepercent_raw = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
@@ -225,6 +225,8 @@ class Penebusan
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
$onepercentservices = new Calculation();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
@@ -233,14 +235,13 @@ class Penebusan
->where('norujukan','=',$norujukan)
->first();
$upahsemasa = $this->kiraupahTawarruq($norujukan);
$upahsemasa = $this->upahRebetTawarruq($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();
@@ -249,6 +250,8 @@ class Penebusan
$total_harga_tebus += $harga_tebus;
}
// $total_harga_tebus = $onepercentservices->getRoundedMethod($total_harga_tebus);
// $totalhargatebus = $total_harga_tebus + $upahsemasa['keuntungan'];
$total_harga_tebus_round = round($total_harga_tebus,2);
@@ -775,15 +778,83 @@ class Penebusan
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$array_upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$ujrah_rounded = $onepercentservices->getRoundedMethod($array_upah['ujrah']);
$keuntungan_rounded = $onepercentservices->getRoundedMethod($array_upah['onepercent']);
$ujrah = $bilang_bln * $ujrah_rounded;
$onepercent = $bilang_bln * $keuntungan_rounded;
// $ujrah_rounded = $onepercentservices->getRoundedMethod($array_upah['ujrah']);
// $keuntungan_rounded = $onepercentservices->getRoundedMethod($array_upah['onepercent']);
$ujrah = $bilang_bln * $array_upah['ujrah'];
$onepercent = $bilang_bln * $array_upah['onepercent'];
$ujrah = $onepercentservices->getRoundedMethod($ujrah);
$onepercent = $onepercentservices->getRoundedMethod($onepercent);
return ['ujrah' => $ujrah, 'onepercent' => $onepercent];
}
public function kiraupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh){
$onepercentservices = new Calculation();
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$tempoh_func = $this->kiraanTarikhJBG($gadai_data['t_gadai'],$tarikh);
if($tempoh_func >= 12.0){
$tempoh = 12;
}else{
$tempoh = $tempoh_func;
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$keuntungan_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
$ujrah_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
$upahsemasa_raw = $keuntungan_semasa + $ujrah_semasa;
$upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw);
$keuntungan_1bln = $onepercentservices->getRoundedMethod((1 * $upah['onepercent'])+(1 * $upah['ujrah']));
$array_return = [
'keuntungan_1bln' => $keuntungan_1bln,
'pendapatan' => $upahsemasa_raw,
'keuntungan' => $keuntungan_semasa,
'ujrah' => $ujrah_semasa,
'tempoh' => $tempoh,
];
return $array_return;
}
private function kiraanTarikhJBG($tarikhgadai,$tarikh){
$tarikh_gadai = Carbon::parse($tarikhgadai. ' 00:00:00');
$tarikh = new Carbon($tarikh);
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $tarikh->year;
$bulan_semasa = $tarikh->month;
$hari_semasa = $tarikh->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
return $tempoh_gadai;
}
}
+3
View File
@@ -114,6 +114,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
$router->get('upahbukantawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@upahNotTawarruq']);
$router->get('tebus/laporan/{kodcaw}/{tarikh}',['uses'=>'TebusController@getLaporanTebus']);
$router->get('tebus/laporanjenistawarruq/{kodcaw}',['uses'=>'TebusController@getLaporanTebusPengasingan']);
$router->get('upahtawarruqbytarikh',['uses'=>'TebusController@upahTawarruqByTarikh']);
//Tebus Ujrah (Laporan Range Date)
$router->get('tebusujrah/laporan/{kodcaw}',['uses'=>'TebusController@getLaporanTebusUjrah']);
@@ -807,6 +808,8 @@ $router->group(['prefix'=>'admin'], function () use ($router){
$router->get('laporan/akrual/insertImbangDuga',['uses'=>'LaporanController@InsertDailyImbangDuga']);
$router->get('laporan/akrual/UntungRugiTerkumpul/{kodcaw}',['uses' => 'AdminPageController@calculationUntungTerkumpulAkru']);
$router->get('laporan/akrual/updateImbangDuga',['uses'=>'LaporanController@UpdateDailyImbangDuga']);
$router->get('laporan/akrual/updateImbangDugaRefined',['uses'=>'LaporanController@UpdateDailyImbangDugaRefined']);
$router->get('laporan/akrual/getImbangDugaBackupData',['uses'=>'LaporanController@getImbangDugaBackupData']);
$router->post('ansuran/delete',['uses'=>'GadaiController@deleteAnsuran']);
$router->get('ansuran/getLatest',['uses'=>'GadaiController@getLatestAdvanceWithoutDelete']);
+8 -4
View File
@@ -3,11 +3,15 @@
use App\Services\MasterServices;
use App\Support\v2\Calculation;
$number = 1456.529;
$test2 = new Calculation();
// $number = 1456.529;
// $test2 = new Calculation();
$test = new MasterServices('KB2');
$response = $test->kiraUpahTawarruq('KB2','KB2240126-0002','onepercent');
dd($response);
// $response = $test->kiraUpahTawarruq('KB2231207-0004');
$testrounded = $test2->getRoundedMethod($number);
$response = 'tes';
// $testrounded = $test2->getRoundedMethod($number);
// $response = 'tes';
dd($testrounded);