use Yii;
use yii\data\ActiveDataProvider;
+use yii\helpers\ArrayHelper;
use yii_app\records\Admin;
use yii_app\records\EmployeePayment;
use yii_app\forms\EmployeePaymentSearch;
*/
public function actionCreate($admin_id = null)
{
- // $model = new EmployeePayment(['scenario' => 'create']);
$model = new EmployeePayment();
// Если передан admin_id, устанавливаем его в модели
if ($admin_id !== null) {
$model->admin_id = $admin_id;
+ } else {
+ // Если admin_id не передан, выбираем пользователей без записи в EmployeePayment
+ $admins = Admin::find()
+ ->where(['NOT IN', 'id', EmployeePayment::find()->select('admin_id')])
+ ->all();
+
+ // Преобразуем данные пользователей для использования в Select2
+ $adminList = ArrayHelper::map($admins, 'id', 'name');
}
if ($this->request->isPost) {
$model->date = date('Y-m-d');
}
+
return $this->render('create', [
'model' => $model,
+ 'adminList' => $adminList ?? [],
]);
}
/* @var $this yii\web\View */
/* @var $model yii_app\records\EmployeePayment */
/* @var $form yii\widgets\ActiveForm */
+/* @var $adminList array */
+
?>
<div class="employee-payment-form">
<?php $form = ActiveForm::begin(); ?>
- <?= $form->field($model, 'admin_id')->hiddenInput()->label(false) ?>
- <?= $form->field($model, 'admin_name')->textInput([
- 'value' => $model->admin->name,
- 'readonly' => true,
- 'disabled' => true,
- ])->label('Сотрудник') ?>
+ <?php if (!empty($adminList)): ?>
+ <?= $form->field($model, 'admin_id')->widget(Select2::classname(), [
+ 'data' => $adminList,
+ 'options' => ['placeholder' => 'Выберите сотрудника...'],
+ 'pluginOptions' => [
+ 'allowClear' => true,
+ ],
+ ])->label('Сотрудник') ?>
+ <?php else: ?>
+ <?= $form->field($model, 'admin_id')->hiddenInput()->label(false) ?>
+
+ <?= $form->field($model, 'admin_name')->textInput([
+ 'value' => $model->admin ? $model->admin->name : 'Неизвестный сотрудник',
+ 'readonly' => true,
+ 'disabled' => true,
+ ])->label('Сотрудник') ?>
+ <?php endif; ?>
+
<?= $form->field($model, 'date')->textInput(['type' => 'date']) ?>
<?= $form->field($model, 'monthly_salary')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'daily_payment')->textInput(['maxlength' => true]) ?>
<?php ActiveForm::end(); ?>
-</div>
+</div>
\ No newline at end of file
<div class="employee-payment-index p-4">
<h1><?= Html::encode($this->title) ?></h1>
-
+ <?= Html::a('Добавить нового сотрудника', ['create'], ['class' => 'btn btn-success mb-4']) ?>
<?php Pjax::begin(); ?>
<?php echo $this->render('_search', ['model' => $searchModel]); ?>