fix kadar upah return 0
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
namespace App\Services;
|
||||
|
||||
use App\KadarUpah;
|
||||
use App\Customer;
|
||||
|
||||
class OnePercentServices
|
||||
{
|
||||
@@ -80,43 +79,13 @@ class OnePercentServices
|
||||
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
|
||||
}
|
||||
|
||||
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid, $nokp = null): float
|
||||
{
|
||||
//Semak status pelanggan dalam table customer
|
||||
if ($nokp) {
|
||||
$customer = Customer::on('mysql7')
|
||||
->select('tag_anggota')
|
||||
->where(function($q) use ($nokp) {
|
||||
$q->where('kpbaru', $nokp)
|
||||
->orWhere('kplama', $nokp);
|
||||
})
|
||||
->first();
|
||||
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{
|
||||
|
||||
// Jika anggota koperasi → kadar tetap
|
||||
if ($customer && (int)$customer->tag_anggota === 1) {
|
||||
return 0.16; // kadar ujrah tetap untuk anggota
|
||||
}
|
||||
$kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->get()->toArray();
|
||||
|
||||
return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0;
|
||||
}
|
||||
|
||||
//Jika bukan anggota → ambil dari jadual kadar_upah
|
||||
$kadar = KadarUpah::on('mysql7')
|
||||
->select('kadarujrah')
|
||||
->where([
|
||||
['min', '<=', $nilaimarhun],
|
||||
['max', '>=', $nilaimarhun],
|
||||
])
|
||||
->where('group_id', $groupid)
|
||||
->first();
|
||||
|
||||
//Jika jumpa kadar dalam jadual
|
||||
if ($kadar && isset($kadar->kadarujrah)) {
|
||||
return (float) $kadar->kadarujrah;
|
||||
}
|
||||
|
||||
//Default fallback
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
public function getRoundedMethod(float $number = 0.0) : Float{
|
||||
$number_string = number_format(floor($number * 100)/100,2);
|
||||
|
||||
|
||||
@@ -3,9 +3,6 @@
|
||||
namespace App\Support\v2;
|
||||
|
||||
use App\KadarUpah;
|
||||
use App\Customer;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class Calculation
|
||||
@@ -61,6 +58,7 @@ class Calculation
|
||||
public function kiraanKeuntunganRebet(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||
|
||||
$this->one_percent = $this->getKadarUpah($nilaimarhun);
|
||||
|
||||
$onepercent = $this->kiraanOnePercent($pembiayaan);
|
||||
$ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin);
|
||||
|
||||
@@ -85,60 +83,13 @@ class Calculation
|
||||
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
|
||||
}
|
||||
|
||||
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid, $nokp = null): float
|
||||
{
|
||||
// 1️⃣ Semak status pelanggan dalam table customer
|
||||
if ($nokp) {
|
||||
$customer = Customer::on('mysql7')
|
||||
->select('tag_anggota')
|
||||
->where(function($q) use ($nokp) {
|
||||
$q->where('kpbaru', $nokp)
|
||||
->orWhere('kplama', $nokp);
|
||||
})
|
||||
->first();
|
||||
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{
|
||||
|
||||
// 2️⃣ Jika anggota koperasi → kadar tetap
|
||||
if ($customer && (int)$customer->tag_anggota === 1) {
|
||||
Log::info('[DEBUG-UJRAH] Anggota koperasi', [
|
||||
'nokp' => $nokp,
|
||||
'kadarujrah' => 0.16,
|
||||
'groupid' => $groupid,
|
||||
'nilaimarhun' => $nilaimarhun,
|
||||
]);
|
||||
return 0.16;
|
||||
}
|
||||
$kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray();
|
||||
|
||||
return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0;
|
||||
}
|
||||
|
||||
// 3️⃣ Jika bukan anggota → ambil dari jadual kadar_upah
|
||||
$kadar = KadarUpah::on('mysql7')
|
||||
->select('kadarujrah')
|
||||
->where([
|
||||
['min', '<=', $nilaimarhun],
|
||||
['max', '>=', $nilaimarhun],
|
||||
])
|
||||
->where('group_id', $groupid)
|
||||
->first();
|
||||
|
||||
if ($kadar && isset($kadar->kadarujrah)) {
|
||||
Log::info('[DEBUG-UJRAH] Bukan anggota - dari jadual kadar_upah', [
|
||||
'nokp' => $nokp,
|
||||
'kadarujrah' => (float)$kadar->kadarujrah,
|
||||
'groupid' => $groupid,
|
||||
'nilaimarhun' => $nilaimarhun,
|
||||
]);
|
||||
return (float) $kadar->kadarujrah;
|
||||
}
|
||||
|
||||
// 4️⃣ Default fallback
|
||||
Log::info('[DEBUG-UJRAH] Tiada kadar ditemui', [
|
||||
'nokp' => $nokp,
|
||||
'groupid' => $groupid,
|
||||
'nilaimarhun' => $nilaimarhun,
|
||||
]);
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
|
||||
public function getKadarUpah(float $nilaimarhun = 0.0){
|
||||
$kadarupah = KadarUpah::on('mysql7')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->first();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user