akaunting/app/Providers/Validation.php
2022-06-01 10:15:55 +03:00

83 lines
2.0 KiB
PHP

<?php
namespace App\Providers;
use App\Models\Setting\Currency;
use Illuminate\Support\ServiceProvider as Provider;
use Validator;
class Validation extends Provider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$currency_code = null;
Validator::extend('currency', function ($attribute, $value, $parameters, $validator) use(&$currency_code) {
$status = false;
if (!is_string($value)) {
return $status;
}
$currencies = Currency::enabled()->pluck('code')->toArray();
if (in_array($value, $currencies)) {
$status = true;
}
if (strlen($value) != 3) {
return $status;
}
$currency_code = $value;
return $status;
},
trans('validation.custom.invalid_currency', ['attribute' => $currency_code])
);
$amount = null;
Validator::extend('amount', function ($attribute, $value, $parameters, $validator) use (&$amount) {
$status = false;
if ($value > 0 || in_array($value, $parameters)) {
$status = true;
}
if (! preg_match("/^(?=.*?[0-9])[0-9.,]+$/", $value)) {
$status = false;
}
$amount = $value;
return $status;
},
trans('validation.custom.invalid_amount', ['attribute' => $amount])
);
Validator::extend('extension', function ($attribute, $value, $parameters, $validator) {
$extension = $value->getClientOriginalExtension();
return !empty($extension) && in_array($extension, $parameters);
},
trans('validation.custom.invalid_extension')
);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}