]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Убираем синхронизацию ЗП
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Sat, 1 Nov 2025 11:37:13 +0000 (14:37 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Sat, 1 Nov 2025 11:37:13 +0000 (14:37 +0300)
erp24/records/Admin.php
erp24/records/EmployeePosition.php

index 940cee397ff7894df170a843f47357872eba64a2..bd108177e987697418a0e1f614959100c835f44d 100755 (executable)
@@ -752,60 +752,4 @@ class Admin extends ActiveRecord implements IdentityInterface
 
         return false;
     }
-
-    /**
-     * {@inheritdoc}
-     * Синхронизирует зарплату из employee_position в employee_payment при назначении должности
-     */
-    public function afterSave($insert, $changedAttributes)
-    {
-        parent::afterSave($insert, $changedAttributes);
-
-        // Если изменился employee_position_id, синхронизируем зарплату
-        if (array_key_exists('employee_position_id', $changedAttributes) && !empty($this->employee_position_id)) {
-            $employeePosition = EmployeePosition::findOne($this->employee_position_id);
-            if (!empty($employeePosition) && !empty($employeePosition->salary)) {
-                // Обновляем или создаем запись в employee_payment
-                $today = date('Y-m-d');
-                
-                // Проверяем, есть ли уже запись на сегодня или позже
-                $existingPayment = EmployeePayment::find()
-                    ->where(['admin_id' => $this->id])
-                    ->andWhere(['>=', 'date', $today])
-                    ->orderBy(['date' => SORT_DESC])
-                    ->one();
-
-                if (!empty($existingPayment)) {
-                    // Обновляем существующую запись
-                    $existingPayment->monthly_salary = $employeePosition->salary;
-                    $existingPayment->save(false);
-                } else {
-                    // Если нет записи на сегодня, создаем новую
-                    $latestPayment = EmployeePayment::find()
-                        ->where(['admin_id' => $this->id])
-                        ->orderBy(['date' => SORT_DESC])
-                        ->one();
-
-                    if (!empty($latestPayment)) {
-                        // Берем daily_payment из последней записи
-                        $newPayment = new EmployeePayment();
-                        $newPayment->admin_id = $this->id;
-                        $newPayment->monthly_salary = $employeePosition->salary;
-                        $newPayment->daily_payment = $latestPayment->daily_payment ?? 0;
-                        $newPayment->date = $today;
-                        $newPayment->save(false);
-                    } else {
-                        // Если записей нет вообще, создаем с нулевым daily_payment
-                        $newPayment = new EmployeePayment();
-                        $newPayment->admin_id = $this->id;
-                        $newPayment->monthly_salary = $employeePosition->salary;
-                        $newPayment->daily_payment = 0;
-                        $newPayment->date = $today;
-                        $newPayment->save(false);
-                    }
-                }
-            }
-        }
-    }
-
-}
\ No newline at end of file
+}
index d9a2874ee7d6003e12baec336bfca285adeb6bd0..404e4c58293bae0cb2d0e078f7aefbb080dcb953 100755 (executable)
@@ -114,78 +114,4 @@ class EmployeePosition extends \yii\db\ActiveRecord
         return $this->hasOne(\yii_app\records\AdminGroup::class, ['id' => 'group_id']);
     }
 
-    /**
-     * Синхронизирует зарплату из employee_position в employee_payment для всех администраторов с этой должностью
-     * @return void
-     */
-    public function syncSalaryToEmployeePayments(): void
-    {
-        if (empty($this->salary)) {
-            return;
-        }
-
-        // Находим всех администраторов с этой должностью
-        $adminsWithPosition = Admin::find()
-            ->select(['id'])
-            ->where(['employee_position_id' => $this->id])
-            ->column();
-
-        if (empty($adminsWithPosition)) {
-            return;
-        }
-
-        // Обновляем или создаем записи в employee_payment для каждого администратора
-        $today = date('Y-m-d');
-        foreach ($adminsWithPosition as $adminId) {
-            // Проверяем, есть ли уже запись на сегодня или позже
-            $existingPayment = EmployeePayment::find()
-                ->where(['admin_id' => $adminId])
-                ->andWhere(['>=', 'date', $today])
-                ->orderBy(['date' => SORT_DESC])
-                ->one();
-
-            if (!empty($existingPayment)) {
-                // Обновляем существующую запись
-                $existingPayment->monthly_salary = $this->salary;
-                $existingPayment->save(false);
-            } else {
-                // Если нет записи на сегодня, создаем новую
-                $latestPayment = EmployeePayment::find()
-                    ->where(['admin_id' => $adminId])
-                    ->orderBy(['date' => SORT_DESC])
-                    ->one();
-
-                if (!empty($latestPayment)) {
-                    // Берем daily_payment из последней записи
-                    $newPayment = new EmployeePayment();
-                    $newPayment->admin_id = $adminId;
-                    $newPayment->monthly_salary = $this->salary;
-                    $newPayment->daily_payment = $latestPayment->daily_payment ?? 0;
-                    $newPayment->date = $today;
-                    $newPayment->save(false);
-                } else {
-                    // Если записей нет вообще, создаем с нулевым daily_payment
-                    $newPayment = new EmployeePayment();
-                    $newPayment->admin_id = $adminId;
-                    $newPayment->monthly_salary = $this->salary;
-                    $newPayment->daily_payment = 0;
-                    $newPayment->date = $today;
-                    $newPayment->save(false);
-                }
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function afterSave($insert, $changedAttributes)
-    {
-        parent::afterSave($insert, $changedAttributes);
-
-        // Если изменилась зарплата, синхронизируем для всех администраторов
-        if (array_key_exists('salary', $changedAttributes) || $insert) {
-            $this->syncSalaryToEmployeePayments();
-        }
-    }
 }