59 lines
1.5 KiB
PHP
59 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Rules\PaymentRules;
|
|
|
|
use App\Http\Controllers\InformationController;
|
|
use Illuminate\Contracts\Validation\Rule;
|
|
|
|
class NorujukanBukanFasa2 implements Rule
|
|
{
|
|
public $pembiayaanAkanDilelong;
|
|
|
|
/**
|
|
* Create a new rule instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct($pembiayaanAkanDilelong)
|
|
{
|
|
$this->pembiayaanAkanDilelong = $pembiayaanAkanDilelong;
|
|
}
|
|
|
|
/**
|
|
* Determine if the validation rule passes.
|
|
*
|
|
* @param string $attribute
|
|
* @param mixed $value
|
|
* @return bool
|
|
*/
|
|
public function passes($attribute, $value)
|
|
{
|
|
$norujukanToPay = json_decode($value);
|
|
|
|
$setDefaultFasaIfNotAvailable = function ($x) {
|
|
if (!isset($x->fasa)) {
|
|
$x->fasa = 1;
|
|
}
|
|
return $x;
|
|
};
|
|
|
|
$pembiayaanWithFasa = array_map($setDefaultFasaIfNotAvailable, $this->pembiayaanAkanDilelong);
|
|
$pembiayaanInFasa2 = array_filter($pembiayaanWithFasa, fn($x) => $x->fasa == 2);
|
|
$norujukanInFasa2 = array_map(fn($x) => $x->norujukan, $pembiayaanInFasa2);
|
|
|
|
$pembiayaanFasa2 = array_filter($norujukanToPay, fn($x) => in_array($x, $norujukanInFasa2));
|
|
|
|
return sizeof($pembiayaanFasa2) == 0;
|
|
}
|
|
|
|
/**
|
|
* Get the validation error message.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function message()
|
|
{
|
|
return 'No pembiayaan dalam kategori fasa 2, sila ke kaunter';
|
|
}
|
|
}
|