83 lines
2.0 KiB
PHP
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()
|
|
{
|
|
//
|
|
}
|
|
}
|