Files
lelong/app/Console/Commands/kemaskiniLelong.php
T

227 lines
11 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Models\Gadai;
use App\Models\LelongBid;
use App\Models\LelongTebus;
use App\Models\LogUser;
use App\Models\TransaksiKeuntungan;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
class kemaskiniLelong extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'kemaskini:lelong';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Kemaskini data lelong';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateTimeString();
$data = [];
$lelongbids = LelongBid::where('status_jual', 0)->get();
foreach ($lelongbids as $index => $lelongbid) {
$gadai = Gadai::on($lelongbid->kodcaw)->where('norujukan', $lelongbid->norujukan)->first();
$keluar_lelong = false;
$sebab_keluar = '';
if ($lelongbid->fasa == '1') {
if ($gadai->sttebus == 'T') {
$keluar_lelong = true;
$sebab_keluar = 'T';
} elseif ($gadai->sttebus == 'L') {
$keluar_lelong = true;
$sebab_keluar = 'L';
} else {
$telahbayar = $gadai->hargajualan - $gadai->bakihargajualan;
$upah6bln_raw = $gadai->bakiupah - 0.5;
if (bcdiv($telahbayar, 1, 1) >= bcdiv($upah6bln_raw, 1, 1)) {
$keluar_lelong = true;
$sebab_keluar = 'A';
$updategadai = Http::withOptions(['verify' => config('app.api_verify')])
->post(config('app.api_url').'taglel/revert', [
'kodcaw' => $lelongbid->kodcaw,
'norujukan' => $lelongbid->norujukan,
])
->json();
} else {
if ($gadai->tagbaru == '0') {
$total_untung_rebet = TransaksiKeuntungan::on('main')->where('norujukan', $lelongbid->norujukan)->sum('keuntungan_rebet');
$total_untung_asal = TransaksiKeuntungan::on('main')->where('norujukan', $lelongbid->norujukan)->sum('bayaran_keuntungan');
$beza_keuntungan = $total_untung_asal - $total_untung_rebet;
if ($gadai->tempohbayar == $gadai->tempoh) {
$keuntungan = 0.00;
} else {
$jbg = $gadai->tempoh - $gadai->tempohbayar;
$jbg2 = 12 - $gadai->tempohbayar;
if ($gadai->tempoh <= '12.00') {
$keuntungan = bcdiv(($jbg) * $gadai->kadarupah / 100 * $gadai->bakipjm, 1, 1) - $beza_keuntungan;
} else {
$keuntungan = bcdiv(($jbg2) * $gadai->kadarupah / 100 * $gadai->bakipjm, 1, 1) - $beza_keuntungan;
}
}
$checkdataxlaku = LelongBid::where('norujukan', $lelongbid->norujukan)
->where('xlaku', 1)
->first();
if (! $checkdataxlaku) {
$lelongbid->jbg = $gadai->tempoh;
$lelongbid->pinjaman = $gadai->bakipjm;
$lelongbid->bakiupah = $keuntungan;
$lelongbid->save();
}
} elseif ($gadai->tagbaru == '1') {
// kiraan keuntungan ujrah
$jeniskeuntungan = 'onepercent';
// $keuntungan1 = Http::get(config('app.api_ujrah_url'). 'upahrebettawarruq/'.$lelongbid->kodcaw.'/'.$lelongbid->norujukan.'/'.$jeniskeuntungan)->json();
$ujrahonepercentrebet = Http::get(config('app.api_ujrah_url').'kiraupahUjrahOnePercentRebate/'.$lelongbid->kodcaw.'/'.$lelongbid->norujukan)->json();
$rounded_ujrah = $ujrahonepercentrebet['ujrah'];
$rounded_onepercent = $ujrahonepercentrebet['onepercent'];
$keuntungan = $rounded_ujrah + $rounded_onepercent;
$checkdataxlaku = LelongBid::where('norujukan', $lelongbid->norujukan)
->where('xlaku', 1)
->first();
if (! $checkdataxlaku) {
$lelongbid->jbg = $gadai->tempoh;
$lelongbid->pinjaman = $gadai->bakipjm;
$lelongbid->bakiupah = $keuntungan;
$lelongbid->ujrah = $rounded_ujrah;
$lelongbid->onepercent = $rounded_onepercent;
$lelongbid->save();
}
}
}
}
} else {
if ($gadai->sttebus == 'T') {
$keluar_lelong = true;
$sebab_keluar = 'T';
} elseif ($gadai->sttebus == 'L') {
$keluar_lelong = true;
$sebab_keluar = 'L';
} else {
if ($gadai->tagbaru == '0') {
$total_untung_rebet = TransaksiKeuntungan::on('main')->where('norujukan', $lelongbid->norujukan)->sum('keuntungan_rebet');
$total_untung_asal = TransaksiKeuntungan::on('main')->where('norujukan', $lelongbid->norujukan)->sum('bayaran_keuntungan');
$beza_keuntungan = $total_untung_asal - $total_untung_rebet;
if ($gadai->tempohbayar == 12) {
$keuntungan = 0.00;
} elseif ($gadai->tempohbayar == $gadai->tempoh) {
$keuntungan = 0.00;
} else {
$jbg = $gadai->tempoh - $gadai->tempohbayar;
$jbg2 = 12 - $gadai->tempohbayar;
if ($gadai->tempoh <= '12.00') {
$keuntungan = bcdiv(($jbg) * $gadai->kadarupah / 100 * $gadai->bakipjm, 1, 1) - $beza_keuntungan;
} else {
$keuntungan = bcdiv(($jbg2) * $gadai->kadarupah / 100 * $gadai->bakipjm, 1, 1) - $beza_keuntungan;
}
}
$checkdataxlaku = LelongBid::where('norujukan', $lelongbid->norujukan)
->where('xlaku', 1)
->first();
if (! $checkdataxlaku) {
$lelongbid->jbg = $gadai->tempoh;
$lelongbid->pinjaman = $gadai->bakipjm;
$lelongbid->bakiupah = $keuntungan;
$lelongbid->save();
}
} elseif ($gadai->tagbaru == '1') {
// kiraan keuntungan ujrah
$jeniskeuntungan = 'onepercent';
// $keuntungan1 = Http::get(config('app.api_ujrah_url'). 'upahrebettawarruq/'.$lelongbid->kodcaw.'/'.$lelongbid->norujukan.'/'.$jeniskeuntungan)->json();
$ujrahonepercentrebet = Http::get(config('app.api_ujrah_url').'kiraupahUjrahOnePercentRebate/'.$lelongbid->kodcaw.'/'.$lelongbid->norujukan)->json();
$rounded_ujrah = $ujrahonepercentrebet['ujrah'];
$rounded_onepercent = $ujrahonepercentrebet['onepercent'];
$keuntungan = $rounded_ujrah + $rounded_onepercent;
$checkdataxlaku = LelongBid::where('norujukan', $lelongbid->norujukan)
->where('xlaku', 1)
->first();
if (! $checkdataxlaku) {
$lelongbid->jbg = $gadai->tempoh;
$lelongbid->pinjaman = $gadai->bakipjm;
$lelongbid->bakiupah = $keuntungan;
$lelongbid->ujrah = $rounded_ujrah;
$lelongbid->onepercent = $rounded_onepercent;
$lelongbid->save();
}
}
}
}
if ($keluar_lelong == true) {
$lelongtebus = new LelongTebus;
$lelongtebus->tarikh = $currentdate;
$lelongtebus->kodcaw = $lelongbid->kodcaw;
$lelongtebus->teller = 'System';
$lelongtebus->norujukan = $lelongbid->norujukan;
$lelongtebus->batch_no = $lelongbid->lelong_id;
$lelongtebus->nilaimarhun = $lelongbid->nilaimarhun;
$lelongtebus->pinjaman = $gadai->bakipjm;
$lelongtebus->upah = $gadai->bakiupah;
$lelongtebus->jbg = $gadai->tempoh;
$lelongtebus->jenis_tebus = $sebab_keluar;
$lelongtebus->save();
$loguser = new LogUser;
$loguser->user_id = User::where('name', 'System')->first()->id;
$loguser->date = $currentdate;
$loguser->username = 'System';
$loguser->nama_user = 'System';
$loguser->norujukan = $gadai->norujukan;
$loguser->nota = $sebab_keluar == 'A' ? ' KELUAR LELONG '.$lelongbid->lelong_id : ' TEBUS LELONG '.$lelongbid->lelong_id;
$loguser->save();
$lelongbid->delete();
} else {
$loguser = new LogUser;
$loguser->user_id = User::where('name', 'System')->first()->id;
$loguser->date = $currentdate;
$loguser->username = 'System';
$loguser->nama_user = 'System';
$loguser->norujukan = $gadai->norujukan;
if ($gadai->tagbaru == '0') {
$loguser->nota = $lelongbid->lelong_id.' Kemaskini Tempoh/Bakipjm/Keuntungan SAG LAMA';
} elseif ($gadai->tagbaru == '1') {
$loguser->nota = $lelongbid->lelong_id.' Kemaskini Tempoh/Bakipjm/Keuntungan UJRAH '.$keuntungan;
}
$loguser->save();
}
}
}
}