first commit
This commit is contained in:
@@ -207,6 +207,13 @@ class OnePercent extends MasterServices
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusTransaksiUpdate($kodcaw,$norujukan,HttpRequest $request){
|
||||
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||
$response = $tebus->tebusTransaksiUpdate($this->kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/* End Penebusan */
|
||||
|
||||
public function test(){
|
||||
|
||||
@@ -9,7 +9,10 @@ use App\KadarUpah;
|
||||
use App\Support\v2\Calculation;
|
||||
use Carbon\Carbon;
|
||||
use App\Gadai;
|
||||
use App\HargaEmas;
|
||||
use App\InOutMar;
|
||||
use App\KomuditiPurchase;
|
||||
use App\KomuditiTransaksi;
|
||||
use App\Marhun;
|
||||
use App\Moratorium;
|
||||
use App\Support\OnePercent;
|
||||
@@ -916,5 +919,434 @@ class Penebusan
|
||||
return $tempoh_gadai;
|
||||
}
|
||||
|
||||
public function tebusTransaksiUpdate($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();
|
||||
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
|
||||
$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);
|
||||
|
||||
$onepercent_rebet = $array_onepercent_rebet['onepercent'] - $upah_rebet['onepercent'];
|
||||
$ujrah_rebet = $array_onepercent_rebet['ujrah'] - $upah_rebet['ujrah'];
|
||||
|
||||
$margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100;
|
||||
$ujrah = $array_onepercent['ujrah'];
|
||||
$onepercent = $array_onepercent['onepercent'];
|
||||
}
|
||||
}
|
||||
|
||||
$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' => $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_rebet,
|
||||
'onepercent' => $onepercent_rebet,
|
||||
]);
|
||||
|
||||
$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' => $upah_tebus,
|
||||
'bayaran_pembiayaan' => $bayaran_pembiayaan,
|
||||
'keuntungan_rebet' => $upah_rebet_sebenar,
|
||||
'tarikh_bayaran'=> $current,
|
||||
'kodcaw'=> $kodcaw,
|
||||
'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0,
|
||||
'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $ujrah_rebet : 0,
|
||||
'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0,
|
||||
'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $onepercent_rebet : 0,
|
||||
'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0,
|
||||
'tempoh' => $gadai['tempoh'],
|
||||
'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']),
|
||||
]);
|
||||
|
||||
$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' => $request->totalbayaran,
|
||||
'created_at' => $current,
|
||||
'bakiharga' => $baki_hargajualan,
|
||||
'nowakil' => (int)$request->nowakil,
|
||||
'duitpelanggan' => isset($request->duitpelanggan) ? $request->duitpelanggan : 0,
|
||||
'bakipelanggan' => isset($request->bakipelanggan) ? $request->bakipelanggan : 0
|
||||
]);
|
||||
|
||||
$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);
|
||||
}
|
||||
|
||||
private function transaksiPembiayaanSemula($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();
|
||||
$gadai = optional($gadai)->toArray();
|
||||
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
|
||||
if(!$gadai){
|
||||
return 'gadai no-data';
|
||||
}
|
||||
|
||||
try{
|
||||
$harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan);
|
||||
|
||||
if($gadai['tagbaru'] == 0){
|
||||
$upah_tebus = $this->kiraupahTawarruq($norujukan);
|
||||
$upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan);
|
||||
$upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm'];
|
||||
}else{
|
||||
$array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||
$array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
|
||||
|
||||
$onepercent_rebet = $array_onepercent_rebet['onepercent'] - $upah_rebet['onepercent'];
|
||||
$ujrah_rebet = $array_onepercent_rebet['ujrah'] - $upah_rebet['ujrah'];
|
||||
|
||||
$margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100;
|
||||
$ujrah = $array_onepercent['ujrah'];
|
||||
$onepercent = $array_onepercent['onepercent'];
|
||||
}
|
||||
|
||||
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_rebet,
|
||||
'onepercent' => $onepercent_rebet,
|
||||
]);
|
||||
|
||||
$bayaran_pembiayaan = $request->totalbayaran - $request->bakiupah;
|
||||
|
||||
TransaksiKeuntungan::on('mysql7')->create([
|
||||
'norujukan' => $norujukan,
|
||||
'bayaran_keuntungan' => $upah_tebus,
|
||||
'bayaran_pembiayaan' => $bayaran_pembiayaan,
|
||||
'keuntungan_rebet' => $upah_rebet_sebenar,
|
||||
'tarikh_bayaran'=> $current,
|
||||
'kodcaw'=> $kodcaw,
|
||||
'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0,
|
||||
'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $ujrah_rebet : 0,
|
||||
'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0,
|
||||
'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $onepercent_rebet : 0,
|
||||
'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0,
|
||||
'tempoh' => $gadai['tempoh'],
|
||||
'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']),
|
||||
]);
|
||||
|
||||
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bakipinjaman;
|
||||
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' => $baki_hargajualan,
|
||||
'nowakil' => (int)$request->nowakil,
|
||||
'duitpelanggan' => isset($request->duitpelanggan) ? $request->duitpelanggan : 0,
|
||||
'bakipelanggan' => isset($request->bakipelanggan) ? $request->bakipelanggan : 0
|
||||
]);
|
||||
|
||||
/* Create Gadai */
|
||||
$gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$current->toDateString())->orderBy('sirig', 'desc')->first();
|
||||
$gadaiTransaction = optional($gadaiTransaction)->toArray();
|
||||
|
||||
$new_sirig = ($gadaiTransaction) ? $gadaiTransaction['sirig'] + 1 : 1;
|
||||
|
||||
$new_transaction = sprintf("%04d",$new_sirig);
|
||||
$new_sag_number = strtoupper($cawangan['kodcaw']) . $current->year . $current->month . $current->day . '-' .$new_transaction;
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])->create([
|
||||
'kodcaw'=>$kodcaw,
|
||||
'norujukan' => $new_sag_number,
|
||||
'nopelanggan' => $request->nopelanggan,
|
||||
'nokp' => $request->nokp,
|
||||
'sirig' => $request->sirig,
|
||||
't_gadai' => $current->toDateString(),
|
||||
'sttebus' => '',
|
||||
'masa' =>$current->toTimeString(),
|
||||
'tagbaru' => 1
|
||||
]);
|
||||
|
||||
$marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->get();
|
||||
|
||||
foreach($marhun as $marhunloop){
|
||||
$karatbaru = str_replace('.','-',$marhunloop['karat']);
|
||||
$harga_emas = HargaEmas::on('mysql7')->select('harga')->where('karat','=',$karatbaru)->first();
|
||||
|
||||
$harga = ($request->jenisAT == 'hargalama') ? $marhunloop['harga'] : $harga_emas['harga'];
|
||||
|
||||
$nilai_marhun = (floatval($harga) * floatval($marhunloop['berat']));
|
||||
|
||||
$marhunToCreate = [
|
||||
'kodcaw'=> $kodcaw,
|
||||
'norujukan'=> $new_sag_number,
|
||||
't_gadai' => $current->toDateString(),
|
||||
'bil' => $marhun['kuantiti'],
|
||||
'marhun' => $marhun['marhun'],
|
||||
'nota' => $marhun['nota'],
|
||||
'tag_permata' => $marhun['tag_permata'] != null ? $marhun['tag_permata'] : 0,
|
||||
'berat_batu_permata' => $marhun['berat_batu_permata'] != null ? $marhun['berat_batu_permata'] : '',
|
||||
'karat' => $marhun['karat'],
|
||||
'berat' => $marhun['berat_emas'],
|
||||
'harga' => $harga,
|
||||
'n_marhun' => $nilai_marhun
|
||||
];
|
||||
|
||||
if($marhunToCreate['berat_batu_permata'] == '') {
|
||||
$marhunToCreate['berat_batu_permata'] = null;
|
||||
};
|
||||
|
||||
$new_marhun = Marhun::on($cawangan['mysql'])->create($marhunToCreate);
|
||||
}
|
||||
|
||||
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('n_marhun');
|
||||
|
||||
$total_nilai_marhun = $request->total_nilai_marhun;
|
||||
$margin_pinjaman = ($request->pinjaman / $total_nilai_marhun);
|
||||
|
||||
$onePercentServices = new Calculation();
|
||||
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$margin_pinjaman);
|
||||
|
||||
$keuntungan_sebln = $keuntungan['keuntungan'];
|
||||
$keuntungan_sebln = str_replace(',','',$keuntungan_sebln);
|
||||
|
||||
$kadarupah = $request->kadarkeuntungan * 100;
|
||||
$keuntungan6bulan = $keuntungan_sebln * 6;
|
||||
$keuntungan12bulan = $keuntungan_sebln * 12;
|
||||
$hargajualan = $request->pinjaman + $keuntungan12bulan;
|
||||
|
||||
$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,
|
||||
'tunggakanujrah' => $akrual['ujrah'],
|
||||
'tunggakanonepercent' => $akrual['keuntungan'],
|
||||
));
|
||||
|
||||
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||
|
||||
$komuditi_current = KomuditiPurchase::on('mysql7')->where('date_purchase','=',$current->toDateString())->orderBy('created_at','desc')->first();
|
||||
|
||||
$unit_current = $komuditi_current['unit_komuditi'];
|
||||
|
||||
$update_unit = $unit_current - $request->unit_komuditi;
|
||||
|
||||
$update_komuditi = KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
|
||||
'unit_komuditi' => $update_unit
|
||||
]);
|
||||
|
||||
$komuditi_transaksi = KomuditiTransaksi::on('mysql7')->create([
|
||||
'unit_komuditi' => $request->unit_komuditi,
|
||||
'nosijil'=>$komuditi_current['no_sijil'],
|
||||
'norujukan' => $request->norujukan,
|
||||
'kodcaw' => $request->kodcaw ,
|
||||
'teller' => $request->teller ,
|
||||
'masa' => $current->toTimeString(),
|
||||
'tarikh' => $current->toDateString()
|
||||
]);
|
||||
|
||||
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
|
||||
'sttebus' => "T",
|
||||
't_update' => $current->toDateString(),
|
||||
'historygadaian' => $new_sag_number,
|
||||
'tag_tebus' => $request->jenistebus,
|
||||
));
|
||||
|
||||
}catch(\Exception $e){
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private function transaksiTambahPembiayaan($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();
|
||||
|
||||
try{
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private function transaksiPenyelesaianSebahagian($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();
|
||||
|
||||
try{
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user