Files
api_arrahn/app/Http/Controllers/TebusController.php
T
hafifierahman 5e571e24d0 fix gadai
2021-03-17 16:39:39 +08:00

670 lines
23 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Gadai;
use App\Marhun;
use App\Cawangan;
use App\Transaction;
use App\TransaksiKeuntungan;
use App\Advansur;
use App\Tebus;
use App\InOutMar;
use App\Wakil;
use App\imbangdugalama;
use App\Customer;
use App\Lelong;
use App\HapusKira;
use App\Parameter;
use Illuminate\Http\Request;
use Carbon\Carbon;
class TebusController extends Controller
{
public function tebusTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_semasa = $this->kiraupahTawarruq($kodcaw,$norujukan);
$transaction = Transaction::on('mysql7')
->where('norujukan','=',$norujukan)
->get();
$transaction_keuntungan = TransaksiKeuntungan::on('mysql7')
->where('norujukan','=',$norujukan)
->get();
$totalBayaranKeuntungan = 0;
$totalBayaran = 0;
foreach($transaction as $index=>$trans){
$totalBayaran += $trans['duit_masuk'];
}
foreach($transaction_keuntungan as $index=>$untung){
$totalBayaranKeuntungan += $untung['bayaran_keuntungan'];
}
$rebet = $gadai_data['upah12'] - $totalBayaranKeuntungan - $upah_semasa;
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet;
return response()->json($harga_tebus);
}
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'] > 6){
$upahsemasa_raw = $gadai_data['jbg'] * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = (float)substr($upah_semasa_round, 0, -1);
}else{
if($gadai_data['tempoh'] == 6){
if($gadai_data['bakiupah'] != 0){
$upah_semasa = $gadai_data['bakiupah'];
}else{
$upahsemasa_raw = $gadai_data['jbg'] * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = (float)substr($upah_semasa_round, 0, -1);
}
}else{
$upahsemasa_raw = $gadai_data['jbg'] * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = (float)substr($upah_semasa_round, 0, -1);
}
}
return $upah_semasa;
}
public function upahTawarruq($kodcaw,$norujukan){
$upah_semasa = $this->kiraupahTawarruq($kodcaw,$norujukan);
return response()->json(number_format($upah_semasa,2));
}
public function tebusSeparuhTawarruq($kodcaw,$norujukan,Request $request){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahsemasa = $gadai_data['jbg'] * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upah_semasa_round = round($upahsemasa,2);
$upah_semasa = (float)substr($upah_semasa_round, 0, -1);
$array_recno_marhun = $request->array_recno;
$margin_pembiayaan = round(($gadai_data['bakipjm']/$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_round = round($total_harga_tebus,2);
$totalhargatebus = (float)substr($total_harga_tebus_round, 0, -1);
// $total_harga_tebus += $upahsemasa;
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();
// dd($gadai_data);
$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);
$harga_tebus = $upah_semasa + $gadai_data['pinjaman'];
return response()->json($harga_tebus);
}
public function upahNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
// dd($gadai_data);
$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);
return response()->json($upah_semasa);
}
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,Request $request){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
// dd($gadai_data);
$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();
$upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan);
$transaction = Transaction::on('mysql7')
->where('norujukan','=',$norujukan)
->get();
$transaction_keuntungan = TransaksiKeuntungan::on('mysql7')
->where('norujukan','=',$norujukan)
->get();
$totalBayaranKeuntungan = 0;
$totalBayaran = 0;
foreach($transaction as $index=>$trans){
$totalBayaran += $trans['duit_masuk'];
}
foreach($transaction_keuntungan as $index=>$untung){
$totalBayaranKeuntungan += $untung['bayaran_keuntungan'];
}
$rebet = $gadai_data['upah12'] - $totalBayaranKeuntungan - $upahsemasa;
return $rebet;
}
public function tebusUpdate($kodcaw,$norujukan,Request $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(),
));
$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
]);
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $request->bakiupah,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw,
'keuntungan_sebenar'=>$request->bakiupah
]);
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' => $request->bakipinjaman,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
]);
}
return response()->json($update_gadai, 201);
}
public function getLaporanTebus($kodcaw,$tarikh){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$tebus = Tebus::on($cawangan['mysql'])
->where('t_tebus','=',$tarikh)
->orderBy('teller')
->get();
return response()->json($tebus);
}
public function listPenebusanBaru($kodcaw){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$gadai = Tebus::on($cawangan['mysql'])
->where([['t_tebus','=',$current->toDateString()],['tagterima','=',0]])
->get();
return response()->json($gadai);
}
public function listSerahKhazanah($kodcaw){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$gadai = Tebus::on($cawangan['mysql'])
->where([['t_tebus','=',$current->toDateString()],['tagterima','=',1]])
->get();
return response()->json($gadai);
}
public function tagterimaupdate($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$update_inoutmar = Tebus::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'tagterima' => 1
));
}
public function checkSerahTebus(Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$rekod_gadaian = Tebus::on($cawangan['mysql'])->where('norujukan','=',$request->norujukan)->first();
if($rekod_gadaian['tagterima'] == 1){
return response()->json('true');
}else{
return response()->json('false');
}
}
public function AllWakil($kodcaw){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$wakil = Wakil::on($cawangan['mysql'])
->orderBy('nowakil','desc')
->get();
return response()->json($wakil,200);
}
public function getWakil($kodcaw,$icno){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$wakil = Wakil::on($cawangan['mysql'])
->where('nokp','=',$icno)
->get();
return response()->json($wakil,200);
}
public function getWakilbycode($kodcaw,$nowakil){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$wakil = Wakil::on($cawangan['mysql'])
->where('nowakil','=',$nowakil)
->get();
return response()->json($wakil,200);
}
public function createWakil($kodcaw,$icno,Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$wakil_create = Wakil::on($cawangan['mysql'])->create([
'kodcaw' => $kodcaw,
'nopelanggan' => $request->nopelanggan,
'nowakil' => $request->nowakil,
'nama' => $request->nama,
'nokp' => $icno,
'hubungan' => $request->hubungan,
'alamat1' => $request->alamat,
'telefon' => $request->telefon,
'nota' => $request->nota
]);
return response()->json($wakil_create ,201);
}
public function listhistorypenebusan($kodcaw,Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$listtebus = Tebus::on($cawangan['mysql'])
->where('norujukan','=',$request->norujukan)
->get();
return response()->json($listtebus);
}
public function getAdvansur($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$listadvansur = Advansur::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->orderBy('tarikh','desc')
->get();
return response()->json($listadvansur,200);
}
public function createAdvansur($kodcaw,Request $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$create_advansur = Advansur::on($cawangan['mysql'])->create([
'tarikh'=> $current->toDateString(),
'noresit'=> 0,
'norujukan' => $request->norujukan,
'nopelanggan' => $request->nopelanggan,
'nilaimarhun' => $request->nilaimarhun,
'pinjaman' => $request->pinjaman,
'kadarupah' => $request->kadarupah,
'glcode' => $request->glcode,
'upahsebenar' => $request->upahsebenar,
'upahdibayar' => $request->upahdibayar,
'teller' => $request->teller,
'prkod' => $request->prkod,
'jbg' => $request->jbg,
'nowakil' => $request->nowakil,
'hubungan' => $request->hubungan,
'status' => 0,
'historygadaian' => $request->historygadaian
]);
return response()->json($create_advansur ,201);
}
public function calculationKeuntunganSebenar($kodcaw,Request $request)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$current = new Carbon($request->tarikh);
$total = 0;
$keuntunganselepastawarruq = 0;
$keuntungansebelumtawarruq = 0;
if($request->tarikh >= '2021-03-15')
{
$keuntunganselepastawarruq = Tebus::on($cawangan['mysql'])
->where('t_tebus','<=',$request->tarikh)
->whereYear('t_tebus','=',$current->year)
->whereNotNull('rebate')
->sum('rebate');
}
$keuntungansebelumtawarruq = Tebus::on($cawangan['mysql'])
->where('t_tebus','<=',$request->tarikh)
->where('t_tebus','>','2013-12-31')
->whereYear('t_tebus','=',$current->year)
// ->whereNotNull('upahdibayar')
->sum('upahdibayar');
$total = $keuntungansebelumtawarruq + $keuntunganselepastawarruq;
return response()->json($total,200);
}
public function calculationUntungRugiTerkumpul($kodcaw,Request $request)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$current = new Carbon($request->tarikh);
$total = 0;
//Untung Rugi Terkumpul Sebelum 01.12.2013
$utgrugilama = imbangdugalama::on($cawangan['mysql'])
->sum('untung_t');
//Yuran Ahli
$yuranTlama = imbangdugalama::on($cawangan['mysql'])
->sum('yuran_t');
$yuranbaru = Customer::on($cawangan['mysql'])
->where('tarikhdaftar','>','2013-12-31')
->whereYear('tarikhdaftar','<',$current->year)
->sum('yuranahli');
//Caj Lelong
$lelong = Lelong::on($cawangan['mysql'])
->whereNotNull('t_jual')
->where('t_jual','>','2013-12-31')
->whereYear('t_jual','<',$current->year)
->sum('cajlelong');
$cajlelonglama = imbangdugalama::on($cawangan['mysql'])
->sum('cajlelong_t');
// dd($current->year);
//Upah Simpan Tebus
$upahsimpantebus = Tebus::on($cawangan['mysql'])
->where('t_tebus','>','2013-12-31')
->whereYear('t_tebus','<',$current->year)
->sum('upahdibayar');
//Upah Simpan Lelong
$upahsimpanlelong = Lelong::on($cawangan['mysql'])
->where('t_jual','>','2013-12-31')
->whereYear('t_jual','<',$current->year)
->sum('bakiupah');
//Upah Simpan Advansur
$upahsimpanansur = Advansur::on($cawangan['mysql'])
->whereYear('tarikh','<',$current->year)
->sum('upahdibayar');
$upahsimpanlama = imbangdugalama::on($cawangan['mysql'])
->sum('upah_t');
// dd($upahsimpanansur->toSql());
//GST Caj Lelong
$gstcajlelong = Lelong::on($cawangan['mysql'])
->where('t_jual','<=',$request->tarikh)
->whereYear('t_jual','<',$current->year)
->sum('gst_cl');
//Upah Hapus Kira
$upahhapuskira = HapusKira::on($cawangan['mysql'])
->where('tarikh','>','2013-12-31')
->whereYear('tarikh','<',$current->year)
->sum('bakiupah');
$parameter = Parameter::on($cawangan['mysql'])
->sum('sumpanjarlama');
// dd($utgrugilama,$yuranTlama,$lelong,$upahsimpantebus,$upahsimpanlelong,$upahsimpanansur,$upahhapuskira,$parameter,$gstcajlelong);
$total = ($utgrugilama + $lelong + $upahsimpantebus + $upahsimpanlelong + $upahsimpanansur + $gstcajlelong) + $parameter;
// echo "UTGRUGI:" . $utgrugilama . " YuranTLama:" . $yuranTlama . " YuranBaru:" . $yuranbaru . " Lelong:" . $lelong . " Caj Lelong:" . $cajlelonglama . " Upah Tebus:" . $upahsimpantebus . " Upah Lelong:" . $upahsimpanlelong . " Upah Ansuran:". $upahsimpanansur;
// echo " UPah Hapus Kira : " . $upahhapuskira;
// var_dump($utgrugilama,$yuranTlama,$yuranbaru,$lelong,$cajlelonglama,$upahsimpantebus,$upahsimpanlelong,$upahsimpanansur,$upahsimpanlama,$gstcajlelong);
// + $cajlelonglama+ $upahsimpanlama+ $yuranbaru
// $total = ($yuranTlama + $lelong + $upahsimpantebus + $upahsimpanlelong + $upahsimpanansur + $gstcajlelong + $utgrugilama ) - ($upahhapuskira);
return response()->json($total,200);
}
public function PenghutangKakitangan($kodcaw,Request $request)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$penghutangkaki = imbangdugalama::on($cawangan['mysql'])
->sum('penghutang');
return response()->json($penghutangkaki,200);
}
}