]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавил кнопку добавить сотрудника и функционал
authorvladfo <fvv2011@gmail.com>
Thu, 3 Oct 2024 06:55:28 +0000 (09:55 +0300)
committervladfo <fvv2011@gmail.com>
Thu, 3 Oct 2024 06:55:28 +0000 (09:55 +0300)
erp24/controllers/crud/EmployeePaymentController.php
erp24/views/crud/employee-payment/_form.php
erp24/views/crud/employee-payment/create.php
erp24/views/crud/employee-payment/index.php

index c234b29cce1a8e9e9c7bc64c91bc4f8a94e35dd3..7d64a6b8dd21b0141eb8a5de6a27e8018da75797 100755 (executable)
@@ -4,6 +4,7 @@ namespace yii_app\controllers\crud;
 
 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;
@@ -95,12 +96,19 @@ class EmployeePaymentController extends Controller
      */
     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) {
@@ -112,8 +120,10 @@ class EmployeePaymentController extends Controller
             $model->date = date('Y-m-d');
         }
 
+
         return $this->render('create', [
             'model' => $model,
+            'adminList' => $adminList ?? [],
         ]);
     }
 
index c34a0fcd0d9a3edadd126b2c6247cb67ff5b9944..628707efaed2a36974fd424235da266378235a31 100755 (executable)
@@ -7,18 +7,32 @@ use yii\widgets\ActiveForm;
 /* @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]) ?>
@@ -30,4 +44,4 @@ use yii\widgets\ActiveForm;
 
     <?php ActiveForm::end(); ?>
 
-</div>
+</div>
\ No newline at end of file
index f8bcc254b78a017f6ded57e631085e58e0d684d0..49fee77eef52aa24e375a71e55df058751b94427 100755 (executable)
@@ -15,6 +15,7 @@ $this->params['breadcrumbs'][] = $this->title;
 
     <?= $this->render('_form', [
         'model' => $model,
+        'adminList' => $adminList ?? [],
     ]) ?>
 
 </div>
index 7e7b41973fceeeb3c55f4fab299e735ff0fc2a42..c748cb30209e93763f8bb0b0ffd858708a3d343b 100755 (executable)
@@ -17,7 +17,7 @@ $this->params['breadcrumbs'][] = $this->title;
 <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]); ?>