104 lines
4.8 KiB
PHP
Executable File
104 lines
4.8 KiB
PHP
Executable File
<?php
|
||
|
||
|
||
namespace common\modules\abiturient\models;
|
||
|
||
|
||
use common\components\ReferenceTypeManager\ReferenceTypeManager;
|
||
use common\components\UserReferenceTypeManager\UserReferenceTypeManager;
|
||
use common\models\dictionary\AdmissionCategory;
|
||
use common\models\dictionary\Speciality;
|
||
use common\modules\abiturient\models\bachelor\AdmissionAgreement;
|
||
use common\modules\abiturient\models\bachelor\AgreementDecline;
|
||
use common\modules\abiturient\models\bachelor\BachelorApplication;
|
||
use common\modules\abiturient\models\bachelor\BachelorSpeciality;
|
||
use stdClass;
|
||
use Yii;
|
||
|
||
class NeedBlockAndUpdateProcessor
|
||
{
|
||
const EMPTY_DATE = '0001-01-01T00:00:00';
|
||
|
||
private static function getNeedBlockAndUpdate(array $data): array
|
||
{
|
||
if ($data) {
|
||
$result = Yii::$app->soapClientAbit->load_with_caching(
|
||
'NeedBlockAndUpdate',
|
||
$data
|
||
);
|
||
if (isset($result->return, $result->return->Update, $result->return->Block)) {
|
||
$block = (int)$result->return->Block == 1;
|
||
$update = (int)$result->return->Update == 1;
|
||
return [$update, $block];
|
||
}
|
||
}
|
||
return [false, true];
|
||
}
|
||
|
||
public static function getProcessedNeedBlockAndUpdate(BachelorApplication $app): array
|
||
{
|
||
if (isset($app->user, $app->user->userRef)) {
|
||
$date = $app->getCheckDate();
|
||
$consentDate = $app->getCheckConsentDate();
|
||
$built_entrant = $app->buildEntrantArray();
|
||
if (isset($date, $app->type, $app->type->campaign) && !empty($consentDate)) {
|
||
[$update, $block] = NeedBlockAndUpdateProcessor::getNeedBlockAndUpdate([
|
||
'AbiturientCode' => $app->user->userRef->reference_id,
|
||
'Date' => $date,
|
||
'IdPK' => $app->type->campaign->referenceType->reference_id,
|
||
'Entrant' => $built_entrant,
|
||
'ConsentDate' => $consentDate,
|
||
]);
|
||
if (!$update) {
|
||
|
||
$update = UserReferenceTypeManager::IsUserRefDataVersionOutdated($app->user);
|
||
}
|
||
return [$update, $block];
|
||
}
|
||
}
|
||
return [false, false];
|
||
}
|
||
|
||
public static function GetMessageAboutRequiredDeclineForUpdate(BachelorApplication $application): string
|
||
{
|
||
$base = Yii::$app->configurationManager->getText('need_update_app_from_one_s', $application->type);
|
||
|
||
$date = $application->getCheckDate();
|
||
$consentDate = $application->getCheckConsentDate();
|
||
$is_versions_mismatch = UserReferenceTypeManager::IsUserRefDataVersionOutdated($application->user);
|
||
if ($is_versions_mismatch) {
|
||
$base = Yii::$app->configurationManager->getText('need_update_questionary_from_one_s', $application->type);
|
||
}
|
||
|
||
if ($date) {
|
||
$base = Yii::t(
|
||
'sandbox/moderate/all',
|
||
'Тело сообщения с датой актуальности заявления для устаревшего заявления; на стр. проверки анкеты поступающего: `{messageAboutRequiredDeclineForUpdate}<br />Дата заявления в Личном кабинете поступающего: {date}`',
|
||
[
|
||
'messageAboutRequiredDeclineForUpdate' => $base,
|
||
'date' => $date,
|
||
]
|
||
);
|
||
}
|
||
if ($consentDate && $consentDate != NeedBlockAndUpdateProcessor::EMPTY_DATE) {
|
||
$base = Yii::t(
|
||
'sandbox/moderate/all',
|
||
'Тело сообщения с датой актуальности согласия для устаревшего заявления; на стр. проверки анкеты поступающего: `{messageAboutRequiredDeclineForUpdate}<br />Дата подачи согласия в Личном кабинете поступающего: {consentDate}`',
|
||
[
|
||
'messageAboutRequiredDeclineForUpdate' => $base,
|
||
'consentDate' => $consentDate,
|
||
]
|
||
);
|
||
}
|
||
return $base;
|
||
}
|
||
|
||
public static function GetMessageAboutBlockedBy1C(BachelorApplication $application): string
|
||
{
|
||
return Yii::t(
|
||
'sandbox/moderate/all',
|
||
'Текст сообщения о невозможности принять заявление так как в Информационной системе вуза есть не проведённые сущности: `Заявление заблокировано. Для разблокировки необходимо провести или пометить на удаление документы заявлений и согласий на зачисление поступающего.`'
|
||
);
|
||
}
|
||
}
|