1. added page for edit mutu
2. change from max pinjaman with a static 75% and 80% to manipulate value
This commit is contained in:
@@ -2,14 +2,117 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\MaxMutuEmas;
|
||||||
use App\MaxPinjaman;
|
use App\MaxPinjaman;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class MaxPinjamanController extends Controller
|
class MaxPinjamanController extends Controller
|
||||||
{
|
{
|
||||||
public function getAllMaxPinjaman(){
|
public function getAllMaxPinjaman(Request $request)
|
||||||
$pinjaman = MaxPinjaman::on('mysql7')->get();
|
{
|
||||||
|
if (config('parameter.max_mutuemas')) {
|
||||||
|
$data = MaxMutuEmas::on('mysql7')->select('karat', 'teller', 'pc', 'operasi')->get();
|
||||||
|
|
||||||
|
$calculateMargin = $this->calculateMaxPinjamanMutu($data, $request->mutu,$request->total_nilai_marhun);
|
||||||
|
|
||||||
|
$pinjaman = [
|
||||||
|
[
|
||||||
|
"user_type" => "teller",
|
||||||
|
"max" => $calculateMargin['teller']
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"user_type" => "khazanah",
|
||||||
|
"max" => $calculateMargin['pc']
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"user_type" => "operasi",
|
||||||
|
"max" => $calculateMargin['operasi']
|
||||||
|
]
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$pinjaman = MaxPinjaman::on('mysql7')->get();
|
||||||
|
}
|
||||||
return response()->json($pinjaman);
|
return response()->json($pinjaman);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function calculateMaxPinjamanMutu($data, $mutu,$totalMarhun)
|
||||||
|
{
|
||||||
|
$totalMaxPC = 0;
|
||||||
|
$totalMaxTeller = 0;
|
||||||
|
$totalMaxOperasi = 0;
|
||||||
|
|
||||||
|
if($mutu == null || $totalMarhun == 0){
|
||||||
|
return [
|
||||||
|
"pc" => 0,
|
||||||
|
"teller" => 0,
|
||||||
|
"operasi" => 0
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$mutuKarat = array_map(function($item) {
|
||||||
|
return $item[0];
|
||||||
|
}, $mutu);
|
||||||
|
$mutuNilai = array_map(function($item) {
|
||||||
|
return $item[1];
|
||||||
|
}, $mutu);
|
||||||
|
|
||||||
|
foreach($mutuKarat as $index => $karat){
|
||||||
|
$margin = $data->where('karat', $karat)->first();
|
||||||
|
if($margin){
|
||||||
|
$nilai = $mutuNilai[$index];
|
||||||
|
$totalMaxPC += ($margin->pc/100) * $nilai;
|
||||||
|
$totalMaxTeller += ($margin->teller/100) * $nilai;
|
||||||
|
$totalMaxOperasi += ($margin->operasi/100) * $nilai;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$totalMaxPC = $totalMarhun > 0 ? ($totalMaxPC / $totalMarhun) * 100 : 0;
|
||||||
|
$totalMaxTeller = $totalMarhun > 0 ? ($totalMaxTeller / $totalMarhun) * 100 : 0;
|
||||||
|
$totalMaxOperasi = $totalMarhun > 0 ? ($totalMaxOperasi / $totalMarhun) * 100 : 0;
|
||||||
|
|
||||||
|
|
||||||
|
return [
|
||||||
|
"pc" => round($totalMaxPC,2),
|
||||||
|
"teller" => round($totalMaxTeller,2),
|
||||||
|
"operasi" => round($totalMaxOperasi,2)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getAllMaxMutuEmas(Request $request)
|
||||||
|
{
|
||||||
|
$maxmutuemas = MaxMutuEmas::on('mysql7')->get();
|
||||||
|
return response()->json($maxmutuemas);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateMaxMutuEmas(Request $request)
|
||||||
|
{
|
||||||
|
$recno = $request->recno;
|
||||||
|
$karat = $request->karat;
|
||||||
|
$keterangan = $request->keterangan;
|
||||||
|
$teller = $request->teller;
|
||||||
|
$pc = $request->pc;
|
||||||
|
$operasi = $request->operasi;
|
||||||
|
|
||||||
|
$maxmutuemas = MaxMutuEmas::on('mysql7')->where('recno', $recno)->first();
|
||||||
|
|
||||||
|
if ($maxmutuemas) {
|
||||||
|
$maxmutuemas->karat = $karat;
|
||||||
|
$maxmutuemas->keterangan = $keterangan;
|
||||||
|
$maxmutuemas->teller = $teller;
|
||||||
|
$maxmutuemas->pc = $pc;
|
||||||
|
$maxmutuemas->operasi = $operasi;
|
||||||
|
$maxmutuemas->tarikhupdate = \Carbon\Carbon::now();
|
||||||
|
$maxmutuemas->save();
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'success',
|
||||||
|
'message' => 'Max Mutu Emas updated successfully',
|
||||||
|
'data' => $maxmutuemas
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'Record not found'
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class MaxMutuEmas extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'max_mutuemas';
|
||||||
|
protected $primaryKey = 'recno';
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'recno', 'karat', 'keterangan', 'teller', 'pc', 'operasi', 'tarikhupdate'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that should be cast to native types.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $casts = [
|
||||||
|
'teller' => 'decimal:2',
|
||||||
|
'pc' => 'decimal:2',
|
||||||
|
'operasi' => 'decimal:2',
|
||||||
|
'tarikhupdate' => 'datetime',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes excluded from the model's JSON form.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// protected $hidden = [];
|
||||||
|
}
|
||||||
+1
-1
@@ -64,7 +64,7 @@ $app->configure('tinker');
|
|||||||
$app->configure('tennant_database');
|
$app->configure('tennant_database');
|
||||||
$app->configure('report');
|
$app->configure('report');
|
||||||
$app->configure('app_parameter');
|
$app->configure('app_parameter');
|
||||||
|
$app->configure('parameter');
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Register Middleware
|
| Register Middleware
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'max_mutuemas' => env('MAX_MUTUEMAS', true),
|
||||||
|
];
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class CreateMaxMutuemasTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('max_mutuemas', function (Blueprint $table) {
|
||||||
|
$table->id('recno');
|
||||||
|
$table->string('karat');
|
||||||
|
$table->string('keterangan');
|
||||||
|
$table->decimal('teller', 8, 2);
|
||||||
|
$table->decimal('pc', 8, 2);
|
||||||
|
$table->decimal('operasi', 8, 2);
|
||||||
|
$table->timestamp('tarikhupdate');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Insert data
|
||||||
|
DB::table('max_mutuemas')->insert([
|
||||||
|
[
|
||||||
|
'recno' => 1,
|
||||||
|
'karat' => '24.0Kgb',
|
||||||
|
'keterangan' => '999 gb',
|
||||||
|
'teller' => 75.00000,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 2,
|
||||||
|
'karat' => '24.0K',
|
||||||
|
'keterangan' => '999',
|
||||||
|
'teller' => 75.00000,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 3,
|
||||||
|
'karat' => '23.0K',
|
||||||
|
'keterangan' => '950',
|
||||||
|
'teller' => 74.00000,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 4,
|
||||||
|
'karat' => '22.0K',
|
||||||
|
'keterangan' => '916',
|
||||||
|
'teller' => 73.66667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 5,
|
||||||
|
'karat' => '21.0K',
|
||||||
|
'keterangan' => '900',
|
||||||
|
'teller' => 73.16667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 6,
|
||||||
|
'karat' => '20.0K',
|
||||||
|
'keterangan' => '835',
|
||||||
|
'teller' => 72.66667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 7,
|
||||||
|
'karat' => '18.0Kp',
|
||||||
|
'keterangan' => '750',
|
||||||
|
'teller' => 72.16667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 8,
|
||||||
|
'karat' => '18.0K',
|
||||||
|
'keterangan' => '750',
|
||||||
|
'teller' => 71.66667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 21,
|
||||||
|
'karat' => '14.0K',
|
||||||
|
'keterangan' => '585',
|
||||||
|
'teller' => 71.16667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 22,
|
||||||
|
'karat' => '14.0Kp',
|
||||||
|
'keterangan' => '585',
|
||||||
|
'teller' => 70.66667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'recno' => 23,
|
||||||
|
'karat' => '9.0K',
|
||||||
|
'keterangan' => '375',
|
||||||
|
'teller' => 70.16667,
|
||||||
|
'pc' => 80.00000,
|
||||||
|
'operasi' => 80.00000,
|
||||||
|
'tarikhupdate' => '2025-01-12 00:00:00',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('max_mutuemas');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -262,6 +262,8 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
|||||||
|
|
||||||
|
|
||||||
$router->get('maxpinjaman',['uses'=>'MaxPinjamanController@getAllMaxPinjaman']);
|
$router->get('maxpinjaman',['uses'=>'MaxPinjamanController@getAllMaxPinjaman']);
|
||||||
|
$router->get('maxmutuemas',['uses'=>'MaxPinjamanController@getAllMaxMutuEmas']);
|
||||||
|
$router->post('maxmutuemas/update',['uses'=>'MaxPinjamanController@updateMaxMutuEmas']);
|
||||||
|
|
||||||
$router->get('transaksi_keuntungan/{norujukan}',['uses'=>'TransaksiKeuntunganController@getTransaksiKeuntunganByRujukan']);
|
$router->get('transaksi_keuntungan/{norujukan}',['uses'=>'TransaksiKeuntunganController@getTransaksiKeuntunganByRujukan']);
|
||||||
$router->get('transaksi_keuntungan_latest/{norujukan}',['uses'=>'TransaksiKeuntunganController@getTransaksiKeuntunganByRujukanLatest']);
|
$router->get('transaksi_keuntungan_latest/{norujukan}',['uses'=>'TransaksiKeuntunganController@getTransaksiKeuntunganByRujukanLatest']);
|
||||||
|
|||||||
Reference in New Issue
Block a user