From: vladfo Date: Tue, 6 Aug 2024 12:51:03 +0000 (+0300) Subject: add vacation sum X-Git-Tag: 1.4~35^2~19 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=8ee10ead2263654dc9ef821bf5725153a01579c9;p=erp24_rep%2Fyii-erp24%2F.git add vacation sum --- diff --git a/erp24/actions/motivation/GetSalaryAction.php b/erp24/actions/motivation/GetSalaryAction.php index 4c238a88..fcfb743a 100644 --- a/erp24/actions/motivation/GetSalaryAction.php +++ b/erp24/actions/motivation/GetSalaryAction.php @@ -16,7 +16,7 @@ class GetSalaryAction extends Action public function run() { $request = Yii::$app->request; - $store_id = $request->get('store_id', 1); + $store_id = $request->get('store_id', 2); $date = $request->get('date', '2024-08-05'); $records = []; @@ -29,6 +29,7 @@ public function run() if (!$model->hasErrors()) { $records = MotivationService::getRecordsByDateAndStore($date, $store_id); + $vacationSum = MotivationService::getVacationsSum($date, $store_id); } // Определяем начало недели и номер недели в месяце $currentDate = new DateTime($model->date); @@ -43,6 +44,7 @@ public function run() 'startOfWeek' => $startOfWeek, 'endOfWeek' => $endOfWeek, 'weekNumberInMonth' => $weekNumberInMonth, + 'vacation'=> $vacationSum, ]); } } diff --git a/erp24/actions/motivation/SumSalaryAction.php b/erp24/actions/motivation/SumSalaryAction.php index 3cef88ff..f6946f15 100644 --- a/erp24/actions/motivation/SumSalaryAction.php +++ b/erp24/actions/motivation/SumSalaryAction.php @@ -31,7 +31,7 @@ class SumSalaryAction extends \yii\base\Action $store_id = $motivation->store_id; $date = $currentDate->format('Y-m-d'); $records = MotivationService::getRecordsByDateAndStore($date, $store_id); - + $vacationSum = MotivationService::getVacationsSum($date, $store_id); $totalSalary = 0; foreach ($records as $record) { @@ -46,7 +46,7 @@ class SumSalaryAction extends \yii\base\Action } } - $results[$store_id] = $totalSalary; + $results[$store_id] = $totalSalary + $vacationSum; } // Определяем начало недели и номер недели в месяце diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index c897569f..1447894d 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -11,6 +11,11 @@ use yii_app\records\MotivationCostsItem; use yii_app\records\TimetableFactModel; use DateTime; +use yii\helpers\ArrayHelper; +use yii_app\records\Timetable; +use yii_app\records\EmployeePayment; + + class MotivationService { @@ -348,6 +353,39 @@ class MotivationService return $records; } + + public static function getVacationsSum($currentDate, $store_id) + { + // Преобразуем дату в объект DateTime + $dateTime = new DateTime($currentDate); + + // Определяем номер недели в месяце и начало недели + $weekOfMonth = self::getWeekOfMonth($dateTime); + $startOfWeek = self::getStartOfWeek($dateTime, $weekOfMonth); + + // Делаем запрос к таблице Timetable для получения записей с slot_type_id = 2 + $records = Timetable::find() + ->where(['store_id' => $store_id]) + ->andWhere(['between', 'date', $startOfWeek->format('Y-m-d'), $dateTime->format('Y-m-d')]) + ->andWhere(['slot_type_id' => 2]) + ->all(); + + // Получаем массив admin_id + $adminIds = ArrayHelper::getColumn($records, 'admin_id'); + + // Делаем запрос к таблице EmployeePayment для получения daily_payment + $payments = EmployeePayment::find() + ->where(['admin_id' => $adminIds]) + ->all(); + + // Получаем массив стоимости каждого дня отпуска + $dailyPayments = ArrayHelper::getColumn($payments, 'daily_payment'); + + // Вычисляем сумму отпускных выплат + $vacationsSum = array_sum($dailyPayments); + + return $vacationsSum; + } private static function getWeekOfMonth($dateTime) { diff --git a/erp24/views/motivation/records.php b/erp24/views/motivation/records.php index 54416c16..5c014acc 100644 --- a/erp24/views/motivation/records.php +++ b/erp24/views/motivation/records.php @@ -10,6 +10,7 @@ use yii\base\DynamicModel; /** @var $startOfWeek string */ /** @var $endOfWeek string */ /** @var $weekNumberInMonth int */ +/** @var $vacation float */ $this->title = 'Записи'; ?> @@ -85,6 +86,7 @@ $this->title = 'Записи';

Всего смен:

ЗП за весь период:

+

Отпускные:

Период: с по

Номер недели в месяце: