Merge branch 'pipi/ujrah_staging' into ujrah_master_fix

This commit is contained in:
Hafifie PKB
2024-03-06 21:28:28 +08:00
17 changed files with 638 additions and 25 deletions
+17 -1
View File
@@ -34,6 +34,7 @@ use Illuminate\Http\Request;
use App\Services\MasterServices;
use App\Support\OnePercent;
use App\Services\Transaction\AnsuranServices as AnsServ;
use Log;
use Illuminate\Support\Facades\DB;
@@ -1130,7 +1131,8 @@ class GadaiController extends Controller
$updatehistory = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->update(array(
'historygadaian' => $request->historygadaian
'historygadaian' => $request->historygadaian,
'tag_tebus' => $request->jenistebus,
));
return response()->json($updatehistory,200);
@@ -3647,4 +3649,18 @@ class GadaiController extends Controller
return $keuntungan;
}
public function deleteAnsuran(Request $request){
$ansuranserv = new AnsServ($request->kodcaw);
$delete = $ansuranserv->delete($request);
Log::info($delete);
return response()->json($delete);
}
public function getLatestAdvanceWithoutDelete(Request $request){
$ansuranserv = new AnsServ($request->kodcaw);
$view = $ansuranserv->getLatestAdvanceWithoutDelete($request);
return response()->json($view);
}
}
@@ -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(){
+12 -1
View File
@@ -96,7 +96,7 @@ class PanjarServices
if (!$vault) throw new \Exception('Custom Exception: Vault Does Not Exist!');
if (!$deno_panjar) throw new \Exception('Custom Exception: Denominasi Panjar Does Not Exist!');
DB::transaction(function () use ($cawangan,$deno_panjar,$panjar,$denominasi,$current,$vault) {
DB::transaction(function () use ($cawangan,$deno_panjar,$panjar,$denominasi,$current,$vault,$request) {
$return_data = $this->calculation_denominasi($deno_panjar,$denominasi,'masuk');
if($return_data == 'no data') throw new \Exception('Custom Exception: Denominasi Panjar Not Return Data');
@@ -297,9 +297,20 @@ class PanjarServices
$audit->updated_at = $current;
$audit->save();
$array_response = [
'result' => 'success',
'data' => 1
];
return response()->json($array_response);
});
}catch(\Exception $e){
dd($e->getMessage());
$array_response = [
'result' => 'error',
'data' => $e->getMessage()
];
return response()->json($array_response);
Log::error('Exception: ' , $e->getMessage());
}
}
@@ -0,0 +1,129 @@
<?php
namespace App\Services\Transaction;
use App\Audit;
use App\Gadai;
use App\Tunai;
use App\Transaction;
use App\TransaksiKeuntungan;
use App\Cawangan;
use App\TransaksiGadai;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class AnsuranServices
{
/*
//////////////
/// NOTED ///
////////////
1. Pembaharuan untuk Hapus Ansuran.
*/
protected $cawangan = 'KB2';
public function __construct($kodcaw){
$this->cawangan = $kodcaw;
}
public function delete(Request $request): String{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->cawangan)->first();
$tarikh_request = new Carbon($request->tarikh);
$tarikh = Carbon::now();
$harisemasa = $tarikh->toDateString();
if($harisemasa !== $tarikh_request->toDateString()){
return 'date not equal';
}
$transaction_gadai = TransaksiGadai::on('mysql7')->where('id',$request->tg_id)->first();
$transaction = Transaction::on('mysql7')->where('id',$transaction_gadai['transaction_id'])->first();
if($transaction['teller'] != $request->teller){
return 'wrong teller';
}
try{
DB::connection('mysql7')->transaction(function () use($cawangan,$request,$harisemasa,$transaction,$transaction_gadai){
try{
DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$request,$transaction_gadai,$harisemasa,$transaction){
Gadai::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->update(array(
'percentpinj' => $transaction_gadai['percentpinj'],
'bakipjm' => $transaction_gadai['bakipjm'],
'tempoh' => $transaction_gadai['tempoh'],
't_update' => $transaction_gadai['t_update'],
'bakihargajualan' => $transaction_gadai['bakihargajualan'],
'tempohbayar' => $transaction_gadai['tempohbayar'],
'lelong_tawarruq' => $transaction_gadai['lelong_tawarruq'],
'margin_semasa' => $transaction_gadai['margin_semasa'],
'tunggakanujrah' => $transaction_gadai['tunggakanujrah'],
'tunggakanonepercent' => $transaction_gadai['tunggakanonepercent'],
));
$tunai = Tunai::on($cawangan['mysql'])->where('kodlaluan',$request->teller)->where('tarikh',$harisemasa)->first();
$total = $tunai['masuk'] - $transaction['duit_masuk'];
$bakiakhir = $tunai['bakiawal'] - $tunai['keluar'] + $total + $tunai['tambah'] - $tunai['serahan'];
Tunai::on($cawangan['mysql'])->where('tarikh',$harisemasa)->where('kodlaluan',$request->teller)->update(['masuk' => $total,'baki' => $bakiakhir]);
});
}catch(\Exception $e){
DB::connection('mysql7')->rollBack();
Log::debug($e->getMessage());
return 'error';
}
Transaction::on('mysql7')->where('id',$transaction_gadai['transaction_id'])->delete();
TransaksiKeuntungan::on('mysql7')->where('id',$transaction_gadai['transaksiupah_id'])->delete();
TransaksiGadai::on('mysql7')->where('id',$request->tg_id)->update(array(
'softDelete' => 1,
));
return 'success';
});
}catch(\Exception $error){
DB::connection($cawangan['mysql'])->rollBack();
DB::connection('mysql7')->rollBack();
Log::debug($error->getMessage());
return 'error';
}
return 'success';
// $audit = new Audit();
// $audit->users = $request->teller;
// $audit->actions = 'Hapus 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();
}
public function getLatestAdvanceWithoutDelete(Request $request){
$tarikh = Carbon::now();
$latest = TransaksiGadai::on('mysql7')->whereDate('created_at',$tarikh->toDateString())->where('norujukan',$request->norujukan)->where('softDelete',0)->latest()->first();
return $latest;
}
}
+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(){
+84
View File
@@ -675,4 +675,88 @@ class Penebusan
return response()->json($update_gadai, 201);
}
public function kiraupahTawarruqByTarikh($kodcaw,$norujukan,$tarikh){
$onepercentservices = new Calculation();
$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');
$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);
// }
$upah_semasa = $onepercentservices->getRoundedMethod($upahsemasa_raw);
$upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upah_rebet = $onepercentservices->getRoundedMethod($upahrebet_raw);
$rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet;
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet_raw;
$array_return = [
'upahsemasa' => $upah_semasa,
'tempoh' => $tempoh,
'harga_tebus' => $harga_tebus,
];
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);
+22 -3
View File
@@ -11,6 +11,7 @@ use App\Gadai;
use App\Marhun;
use App\Support\OnePercent;
use App\Transaction;
use App\TransaksiGadai;
use App\TransaksiKeuntungan;
use Illuminate\Http\Request as HttpRequest;
use Illuminate\Support\Facades\DB;
@@ -238,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);
@@ -267,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);
@@ -288,6 +289,24 @@ class GadaiV2
'margin_semasa' => $margin_semasa,
]);
$transaksi_gadai = TransaksiGadai::on('mysql7')->create([
'kodcaw' => $old_data['kodcaw'],
'norujukan' => $old_data['norujukan'],
'percentpinj' => $old_data['percentpinj'],
'bakipjm' => $old_data['bakipjm'],
'tempoh' => $old_data['tempoh'],
't_update' => $old_data['t_update'],
'bakihargajualan' => $old_data['bakihargajualan'],
'tempohbayar' => $old_data['tempohbayar'],
'lelong_tawarruq' => $old_data['lelong_tawarruq'],
'margin_semasa' => $old_data['margin_semasa'],
'tunggakanujrah' => $old_data['tunggakanujrah'],
'tunggakanonepercent' => $old_data['tunggakanonepercent'],
'transaction_id' => $transaction->id,
'transaksiupah_id' => $transaction_upah->id,
'softDelete' => 0
]);
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;
+99 -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,104 @@ 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();
$transaction_keuntungan = TransaksiKeuntungan::on('mysql7')
->where('norujukan','=',$norujukan)
->sum('keuntungan_rebet');
$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'];
/* Keuntungan Sebenar */
$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']));
/* Keuntungan Rebet */
$upah_rebet_kira = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$ujrah = $onepercentservices->getRoundedMethod($bilang_bln * $upah_rebet_kira['ujrah']);
$onepercent = $onepercentservices->getRoundedMethod($bilang_bln * $upah_rebet_kira['onepercent']);
$keuntungan = $ujrah + $onepercent;
$upahrebet_raw = $onepercentservices->getRoundedMethod($keuntungan);
$rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upahrebet_raw;
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet_raw;
$array_return = [
'keuntungan_1bln' => $keuntungan_1bln,
'pendapatan' => $upahsemasa_raw,
'keuntungan' => $keuntungan_semasa,
'ujrah' => $ujrah_semasa,
'keuntungan_rebet' => $onepercent,
'ujrah_rebet' => $ujrah,
'tempoh' => $tempoh,
'harga_tebus' => $harga_tebus,
];
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;
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class TransaksiGadai extends Model
{
protected $table = 'transaksi_gadai';
public $timestamps = true;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'kodcaw',
'norujukan',
'percentpinj',
'bakipjm',
'tempoh',
't_update',
'bakihargajualan',
'tempohbayar',
'lelong_tawarruq',
'margin_semasa',
'tunggakanujrah',
'tunggakanonepercent',
'transaction_id',
'transaksiupah_id',
'softDelete'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
// protected $hidden = [];
}
@@ -0,0 +1,49 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTransaksiGadaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
protected $connection = 'mysql7';
public function up()
{
Schema::create('transaksi_gadai', function (Blueprint $table) {
$table->id();
$table->string('kodcaw', 10);
$table->string('norujukan', 50);
$table->decimal('bakipjm', 9, 2);
$table->decimal('tempoh', 9, 2);
$table->date('t_update');
$table->decimal('bakihargajualan', 9, 2);
$table->decimal('tempohbayar', 9, 2);
$table->integer('lelong_tawarruq');
$table->decimal('margin_semasa', 9, 2);
$table->decimal('tunggakanujrah', 9, 2);
$table->decimal('tunggakanonepercent', 9, 2);
$table->decimal('percentpinj', 9, 2);
$table->integer('transaction_id');
$table->integer('transaksiupah_id');
$table->integer('softDelete');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('transaksi_gadai');
}
}
@@ -0,0 +1,61 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddTagTebusToGadai extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7' || $connection == 'lelong')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
Log::info($connection);
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('gadai', function (Blueprint $table) use($dbase) {
$isTagTebus = Schema::connection($dbase)->hasColumn('gadai', 'tag_tebus');
if(! $isTagTebus){
$table->char('tag_tebus', 2);
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('gadai', function (Blueprint $table) {
//
});
}
}
+5
View File
@@ -118,6 +118,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']);
@@ -814,6 +815,10 @@ $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']);
$router->get('laporan/online',['uses'=>'AdminPageController@LaporanOnline']);
$router->get('laporan/tuntutbaki',['uses'=>'AdminPageController@LaporanTuntutBaki']);
+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);