Files
erahn-click/app/Rules/PaymentRules/NorujukanBukanFasa2.php
T

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';
}
}