portal.mkgtu.ru/common/widgets/ContractorField/views/index.php

241 lines
12 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use common\components\validation_rules_providers\RulesProviderByDocumentType;
use common\models\dictionary\Contractor;
use common\widgets\ContractorField\assets\ContractorFieldAsset;
use common\widgets\ContractorField\ContractorField;
use kartik\widgets\Select2;
use yii\base\Model;
use yii\bootstrap\ActiveForm;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\web\JsExpression;
use yii\widgets\MaskedInput;
ContractorFieldAsset::register($this);
$blockIdFound = ContractorField::getBlockIdFound($model, $attribute, $keynum);
$blockIdNotFound = ContractorField::getBlockIdNotFound($model, $attribute, $keynum);
$contractor_type_input_id = ContractorField::getContractorTypeInputId($model, 'contractor-type', $keynum);
$wrapper_id= "contractor-field-wrapper-" . ContractorField::getIdentifier($model, $attribute, $keynum);
$config['approveModalId'] = $config['approveModalId'] ?? ContractorField::getIdentifier($model, "{$attribute}_approve_modal", $keynum);
?>
<div class="contractor-field-wrapper" id="<?php echo $wrapper_id ?>">
<div id="<?php echo $blockIdFound ?>">
<?php echo Html::hiddenInput('contractor_type_ref_uid', $contractor_type_ref_uid, [
'id' => $contractor_type_input_id,
]); ?>
<?php
$item_selected = Contractor::find()->andWhere(['id' => $model->$attribute])->all();
echo $form->field($model, $attribute)
->label($labels['contractor_name'])
->widget(Select2::class, [
'language' => Yii::$app->language,
'data' => ArrayHelper::map($item_selected, 'id', 'fullname'),
'options' => [
'placeholder' => Yii::t(
'common/widgets/contractor-field',
'Подпись пустого значения выпадающего списка для поля "contractor_id" блока "Контрагент": `Выберите организацию ...`'
),
'id' => $config['selectInputId'],
'data' => $config['data'] ?? [],
],
'readonly' => $is_readonly,
'disabled' => $disabled,
'pluginOptions' => [
'allowClear' => false,
'multiple' => false,
'ajax' => [
'url' => Url::to(['/contractor/search']),
'method' => 'post',
'delay' => '500',
'dataType' => 'json',
'data' => new JsExpression("function(params) {
var type = $('#" . $contractor_type_input_id . "').val();
return {
q:params.term,
contractor_type:type,
page: params.page || 1
};
}")
],
'dropdownParent' => "#{$wrapper_id}"
]
]); ?>
<div class="alert alert-success contractor-approve-state">
<?php echo Yii::t(
'common/widgets/contractor-field',
'Сообщение о необходимости сохранить изменения после подтверждения контрагента: `Контрагент подтвержден. Необходимо сохранить данные формы.`');
?>
</div>
</div>
<div id="<?php echo $blockIdNotFound ?>" style="display:none">
<div class="form-group">
<?php
echo Html::activeHiddenInput($new_contractor, 'contractor_type_ref_id', [
'id' => ContractorField::getIdentifier($model, 'contractor_type_ref_id', $keynum),
'name' => "{$config['contractorFormName']}[contractor_type_ref_id]"
]);
echo $form->field($new_contractor, 'name')
->textInput([
'id' => $config['contractorTitleInputId'],
'placeholder' => Yii::t(
'common/widgets/contractor-field',
'Подсказка для поля "Наименование" формы "Контрагент": `Введите наименование организации`'
),
'name' => "{$config['contractorFormName']}[name]",
'data' => [
'one-s-attribute-name' => RulesProviderByDocumentType::IssuedBy,
'skip_validation' => 1
],
'readonly' => $is_readonly,
'disabled' => $disabled,
])
->label($labels['contractor_name']); ?>
<?php echo $form->field($new_contractor, 'subdivision_code')->widget(
MaskedInput::class,
[
'mask' => $mask_subdivision_code,
'options' => [
'placeholder' => Yii::t(
'common/widgets/contractor-field',
'Подсказка для поля "Код подразделения" формы "Контрагент": `Введите код подразделения`'
),
'id' => $config['contractorSubdivisionCodeInputId'],
'name' => "{$config['contractorFormName']}[subdivision_code]",
'class' => 'form-control',
'data' => [
'one-s-attribute-name' => RulesProviderByDocumentType::SubdivisionCode,
'skip_validation' => 1
],
'readonly' => $is_readonly,
'disabled' => $disabled,
],
]
)->label($labels['subdivision_code']); ?>
<div class="location-found">
<?php echo $form->field($new_contractor, 'location_code')
->label($labels['location_code'] ?? $new_contractor->getAttributeLabel('location_code'))
->widget(
Select2::class,
[
'language' => Yii::$app->language,
'class' => 'form-control',
'options' => [
'id' => $config['contractorLocationCodeInputId'],
'name' => "{$config['contractorFormName']}[location_code]",
'placeholder' => Yii::t(
'common/widgets/contractor-field',
'Подпись пустого значения выпадающего списка для поля "location_code" формы "Контрагент": `Город`'
)
],
'readonly' => $is_readonly,
'disabled' => $disabled,
'pluginOptions' => [
'placeholder' => Yii::t(
'abiturient/questionary/block-address-data',
'Подпись пустого значения выпадающего списка для поля "location_code" формы "Контрагент": `Город`'
),
'loadingText' => Yii::t(
'common/widgets/contractor-field',
'Подпись загружающегося поля "location_code" формы "Контрагент": `Загрузка ...`'
),
'allowClear' => true,
'multiple' => false,
'ajax' => [
'url' => Url::to(['/contractor/location']),
'method' => 'post',
'delay' => '500',
'dataType' => 'json',
'data' => new JsExpression("function(params) {
return {
q:params.term,
page: params.page || 1
};
}")
],
'dropdownParent' => "#{$wrapper_id}"
],
'pluginEvents' => [
'depdrop:change' => "
function(event, id, value, count) {
$(this).prop('disabled', false);
}
"
]
]
); ?>
</div>
<div class="location-not-found" style="display: none;">
<?php echo $form->field($new_contractor, 'location_name')->textInput([
'readonly' => $is_readonly,
'disabled' => $disabled,
'placeholder' => Yii::t(
'abiturient/questionary/block-address-data',
'Подпись пустого значения выпадающего списка для поля "location_code" формы "Контрагент": `Город`'
)
]); ?>
</div>
</div>
<div class="form-group">
<?php echo $form->field($new_contractor, 'location_not_found', ['template' => '{input}'])
->checkbox([
'class' => 'contractor-location-not-found',
'readonly' => $is_readonly,
'disabled' => $disabled,
'id' => $config['locationNotFoundInputId'] ?? ContractorField::getIdentifier($model, 'location_not_found', $keynum),
'data' => [
'block-id' => $blockIdNotFound
]
]); ?>
</div>
</div>
<?php if ($moderator_allowed_to_edit): ?>
<div class="form-group">
<label for="not_found">
<?php echo Yii::t(
'common/widgets/contractor-field',
'Подпись для поля "not_found" формы "Контрагент": `Не нашел организацию`'
); ?>
</label>
<?php
echo Html::checkbox(Html::getInputName($model, $notFoundAttribute), false, [
'id' => $config['notFoundCheckboxInputId'],
'class' => 'select-widget-not-found',
'readonly' => $is_readonly,
'disabled' => $disabled,
'data-block-id-found' => $blockIdFound,
'data-block-id-not-found' => $blockIdNotFound,
]);
?>
</div>
<?php endif; ?>
<?php if ($need_approve && $moderator_allowed_to_edit) : ?>
<div class="form-group">
<?php echo Html::a(Yii::t('common/widgets/contractor-field', 'Кнопка проверки контрагента: `Проверить`'), '#approveContragent', [
'data-modal-id' => $config['approveModalId'],
'class' => 'approve-modal-btn'
]); ?>
</div>
<?php echo $this->render('_approveModal', [
'model' => $model,
'attribute' => $attribute,
'contractor' => $item_selected[0] ?? new Contractor(),
'config' => $config,
'contractor_type_input_id' => $contractor_type_input_id,
'keynum' => $keynum,
'contractor_type_ref_uid' => $contractor_type_ref_uid,
'mask_subdivision_code' => $mask_subdivision_code,
'found_block_id' => $blockIdFound,
]); ?>
<?php endif; ?>
</div>