File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Console/Commands/UpdateRegistrationStartDate.php
<?php
namespace App\Console\Commands;
use App\AcademyParameter;
use App\Http\Controllers\AcademyParameterController;
use Illuminate\Console\Command;
class UpdateRegistrationStartDate extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'sportscrowd:updateRegistrationStartDate';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Comando para actualizar la fecha de inscripciones el primer día del año';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$academyTypes = ['children', 'adults'];
foreach ($academyTypes as $typeAcademy) {
$this->validateRegistrationStartDate($typeAcademy);
}
}
private function validateRegistrationStartDate($typeAcademy)
{
$registrationEndDate = $this->getParametersValueByTypeAcademy('registration_end_date', $typeAcademy);
$registrationEndDate = \Carbon\Carbon::parse($registrationEndDate);
if ($registrationEndDate <= \Carbon\Carbon::now()) {
$registrationEndDate->addYear();
AcademyParameter::where([['key', 'registration_end_date'], ['type_academy', $typeAcademy]])->update(['value' => $registrationEndDate->toDateString()]);
$registrationStartDate = $this->getParametersValueByTypeAcademy('registration_start_date', $typeAcademy);
$registrationStartDate = \Carbon\Carbon::parse($registrationStartDate);
$registrationStartDate->addYear();
AcademyParameter::where([['key', 'registration_start_date'], ['type_academy', $typeAcademy]])->update(['value' => $registrationStartDate->toDateString()]);
}
}
private function getParametersValueByTypeAcademy($key, $typeAcademy)
{
$academyParameterController = new AcademyParameterController;
return $academyParameterController->getParametersValueByTypeAcademy($key, $typeAcademy);
}
}