create nad update gadai table migration and add services class for one percent
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
|
use App\Services\OnePercentServices;
|
||||||
|
|
||||||
|
class TestOnePercent extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'onepercent:test';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Update JBG for every active gadai';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new command instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
protected $onepercentserv;
|
||||||
|
public function __construct(OnePercentServices $onepercentserv)
|
||||||
|
{
|
||||||
|
$this->onepercentserv = $onepercentserv;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$pemb = $this->ask('Pembiayaan?');
|
||||||
|
$nm = $this->ask('Nilaimarhun?');
|
||||||
|
$ku = $this->ask('Kadarujrah?');
|
||||||
|
$marg = $this->ask('Margin?');
|
||||||
|
|
||||||
|
$test = $this->onepercentserv->kiraanKeuntunganSebenar($pemb,$nm,$ku,$marg);
|
||||||
|
|
||||||
|
dd($test);
|
||||||
|
return $test;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,6 +18,8 @@ class Kernel extends ConsoleKernel
|
|||||||
*/
|
*/
|
||||||
protected $commands = [
|
protected $commands = [
|
||||||
Commands\DailyGadai::class,
|
Commands\DailyGadai::class,
|
||||||
|
Commands\TestOnePercent::class,
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class OnePercentServices
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $maks_margin = 80;
|
||||||
|
protected $one_percent = 1;
|
||||||
|
|
||||||
|
private function kiraanUjrah(float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||||
|
|
||||||
|
//periksa adakah kadar ujrah ini diberi percentage
|
||||||
|
if($kadarujrah >= 1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ujrah = ($kadarujrah/100) * $nilaimarhun;
|
||||||
|
$formula_margin = ($this->maks_margin - $margin) / $this->maks_margin;
|
||||||
|
$ujrah_margin = $formula_margin * $kadarujrah;
|
||||||
|
$rebate_ujrah = $nilaimarhun*($ujrah_margin/100);
|
||||||
|
$ujrah_sebenar = $ujrah - $rebate_ujrah;
|
||||||
|
|
||||||
|
return $ujrah_sebenar;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function kiraanOnePercent(float $pembiayaan = 0.0){
|
||||||
|
|
||||||
|
//periksa adakah pembiayaan adalah null atau kosong.
|
||||||
|
if($pembiayaan == 0 || $pembiayaan == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
$onepercent = ($this->one_percent/100) * $pembiayaan;
|
||||||
|
|
||||||
|
|
||||||
|
return $onepercent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function kiraanKeuntunganSebenar(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||||
|
|
||||||
|
$onepercent = $this->kiraanOnePercent($pembiayaan);
|
||||||
|
$ujrah_sebenar = $this->kiraanUjrah($nilaimarhun,$kadarujrah,$margin);
|
||||||
|
|
||||||
|
$keuntungan = $onepercent + $ujrah_sebenar;
|
||||||
|
|
||||||
|
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddOnepercentToGadaiTable 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')
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$db = DB::connection($connection)->getPdo();
|
||||||
|
return true;
|
||||||
|
} catch(\Exception $e){
|
||||||
|
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) {
|
||||||
|
$table->decimal('kadarujrah', 5, 2);
|
||||||
|
$table->decimal('ujrah', 9, 2);
|
||||||
|
$table->decimal('onepercent', 9, 2);
|
||||||
|
$table->decimal('margin_semasa', 5, 2);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
$db_connection = $this->getActiveDB();
|
||||||
|
|
||||||
|
foreach($db_connection as $dbase){
|
||||||
|
Schema::connection($dbase)->table('gadai', function (Blueprint $table) {
|
||||||
|
// $table->dropColumn('votes');
|
||||||
|
$table->dropColumn(['kadarujrah', 'ujrah', 'onepercent','margin_semasa']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreateHistoryOnepercentTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('history_onepercent', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->decimal('tempoh', 10, 2);
|
||||||
|
$table->decimal('ujrah', 10, 2);
|
||||||
|
$table->decimal('onepercent', 10, 2);
|
||||||
|
$table->decimal('margin_semasa', 5, 2);
|
||||||
|
$table->decimal('bakipinjaman', 10, 2);
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('history_onepercent');
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user