From: Alexander Smirnov Date: Thu, 26 Sep 2024 14:00:27 +0000 (+0300) Subject: [ERP-187] Подсчёт персонала с производственным календарём X-Git-Tag: 1.6~38^2~4 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=5d096bdbbb4e801d9bd6e34b5fa05688453c9a8c;p=erp24_rep%2Fyii-erp24%2F.git [ERP-187] Подсчёт персонала с производственным календарём --- diff --git a/erp24/helpers/HtmlHelper.php b/erp24/helpers/HtmlHelper.php index 8cb0d7bf..0d68bcb2 100755 --- a/erp24/helpers/HtmlHelper.php +++ b/erp24/helpers/HtmlHelper.php @@ -5,6 +5,7 @@ namespace yii_app\helpers; use DateTime; use yii\helpers\ArrayHelper; use yii_app\records\Admin; +use yii_app\records\ProductionCalendar; class HtmlHelper { @@ -150,7 +151,7 @@ class HtmlHelper } - public static function getWorkDays($m, $y): int + public static function getWorkDaysOld($m, $y): int { $lastDay = date("t",mktime(0, 0, 0, $m, 1, $y)); $weekdays = 0; @@ -162,6 +163,18 @@ class HtmlHelper return $weekdays+20; } + public static function getWorkDays($m, $y): int + { + $firstDay = date($y . "-" . $m . '-01'); + $lastDay = date($y . "-" . $m . '-t', strtotime($firstDay)); + $cntWorkDays = 0; + while ($firstDay <= $lastDay) { + $productionCalendar = ProductionCalendar::findOne(['date' => $firstDay]); + $cntWorkDays += $productionCalendar ? $productionCalendar->work : 1; + $firstDay = date("Y-m-d", strtotime("+1 day", strtotime($firstDay))); + } + return $cntWorkDays == 0 ? self::getWorkDaysOld($m, $y) : $cntWorkDays; + } public static function getAdministratorWorkDays($month, $year): int {