]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-187] Подсчёт персонала с производственным календарём
authorAlexander Smirnov <fredeom@mail.ru>
Thu, 26 Sep 2024 14:00:27 +0000 (17:00 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Thu, 26 Sep 2024 14:00:27 +0000 (17:00 +0300)
erp24/helpers/HtmlHelper.php

index 8cb0d7bf71a56a75596eb7d6819c0bff0252025f..0d68bcb2758139801498d917a094ea43b2620987 100755 (executable)
@@ -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
     {