<?php


function name_in_post($_work_name,$personal_id,$intervalSt,$log,$arr_stats,$st_c,$view_personals){
    //FILE_LOG()->append('Получаем другие ФИО в ложности');

    $name_in_post = [];

    if (sizeof($view_personals)) foreach($view_personals as $rec_personal)
    {
        if(
            $_work_name == $rec_personal['_work_name']
            and $personal_id != $rec_personal['personal_id']
            and $rec_personal['_work_name'])

        { // Сравниваем параметры и исключаем текщуго пользователя
            $sum_b = getArrOrPerm($intervalSt,$rec_personal['personal_id'],$arr_stats); // Сумма балов в прмежутках для конкретного пользователя
            $count_b = getArrOrPerm($intervalSt,$rec_personal['personal_id'],$st_c); // Колличесиво баллов (Колличество смен в промежутке) в промежктке для конкретного пользователя
            $srBall = srBall(array_sum($sum_b),array_sum($count_b)); // Ср. по ФИО
            $user = array($rec_personal['personal_id'],$rec_personal['_work_name'],$srBall);
            array_push($name_in_post,$user);
        }
    }
    // Что должно быть на выходе
    /*
    Array
    (
        [0] => Array
            (
                [0] => 9474
                [1] => 02.11.01. Слесарь-ремонтник
                [2] => 4.4
            )
        [1] => Array
            (
                [0] => 9481
                [1] => 02.11.01. Слесарь-ремонтник
                [2] => 3.8
            )
        [n] => Array
            (
                [0] => ...
                [1] => ...
                [2] => ...
            )
    )*/

    return $name_in_post;
} // Получаем другие ФИО в ложности (Очень затратная функция, выпоняеться при сотавлении данных каждого пользователя)



function getArrOrPerm($intervalSt,$personal_id,$arr_data){
    //FILE_LOG()->append('Формируем массивы даных всех временных выборок индивидуально для каждого пользователя');
    $intervalSt = array_values($intervalSt);
    $users_arr = [];
    $r = 0;
    while ($r < count($intervalSt)){
        array_push($users_arr,   $arr_data[$intervalSt[$r]][$personal_id]);
        $r++;
    }
    return $users_arr;
} // Формируем массивы даных всех временных выборок индивидуально для каждого пользователя



function sr_b_allName($general_work_name){
    //FILE_LOG()->append('Средний бал всей должности без текщуго выбранного пользователя');
    $r = 0;
    $bal = [];
    while ($r < count($general_work_name)){
        if($general_work_name[$r][2]){
            array_push($bal,$general_work_name[$r][2]);
        }
        $r++;
    }

    $periods_sb = array_values(array_diff($bal, array(''))); // Периуды среднего балла, просто удаляем пустые элементы массива

    if(array_sum($periods_sb) > 0 and count($periods_sb) > 0){
        $end_b = array_sum($periods_sb) / count($periods_sb);

        return array(round($end_b,1), count($general_work_name));
    }
} // средний бал всей должности без текщуго выбранного пользователя, но не учитываються пользователи в этой должности без мед осмотров



function belowAverageScore($a,$b){
    //FILE_LOG()->append('Вычесляем балл ниже средних');
    $belowAverageScore = 0;
    if($a < 0 or $a < 1){
        $belowAverageScore++;
    }
    /*
    if($b < 0){
        $belowAverageScore++;
    }*/
    if($belowAverageScore !=0){
        return $belowAverageScore;
    }
} // Балл ниже средних



function graphicalDifference($value,$max,$min){
    if($value < 0){
        $width_red = 100 * abs($value);
        if($width_red > 100){
            $width_red = 100;
        }
        $pl = 100 - $width_red;
    }else{
        $width_blue = 100 * $value;
        if($width_blue > 100){
            $width_blue = 100;
        }
        $pr = 100 - $width_blue;
    }
    if($value !=0){
        $xml = $value;

    }else{
        $xml = $value;
    }

    return $xml;
} // Рисуем сигналы



function getData($day){
    $date = getdate(mktime(0, 0, 0, date('m'), date('d') - $day, date('Y')));
    return $date[0];
} // Получение даты в строковом зачении при вычитании несколких ней



function k_param($p1,$p2,$p4,$p8,$p16){
    //FILE_LOG()->append('Вычесляем параметр K');
    $sum = 0;
    if($p1<$p2){$sum++;}
    if($p2<$p4){$sum++;}
    if($p4<$p8){$sum++;}
    if($p8<$p16){$sum++;}
    return $sum;
} // Получаем параметр K



function srBall($x,$y){
    //FILE_LOG()->append('Вычесляем средний балл');
    if ($x and $y){
        return round($x / $y, 1);
    }else{
        if($y == 0){
            return '';
        }else{
            return '0';
        }
    }
} // Вычесляем средний балл с учётом оценки 0



function dropScore($p){
    //FILE_LOG()->append('Расчет бала падения');
    $dropScore = 0;
    $t = 0;
    while ($t < count($p)){
        if($p[$t] < $p[$t+1]){
            $dropScore++;
        }else{
            break;
        }
        $t++;
    }
    if($dropScore != 0){
        return $dropScore;
    }
} // Вычесляем Балл падения



function averageScoreArray($sum_b,$count_b){
    //FILE_LOG()->append('Формируем массив средних баллов по заданным промежуткам для одного пользователя');
    $sr_b = [];
    $r = 0;
    while ($r < count($sum_b)){
        array_push($sr_b,srBall($sum_b[$r],$count_b[$r]));
        $r++;
    }
    return $sr_b;
} // Формируем массив средних баллов по заданным промежуткам для одного пользователя



function overallScore($a,$b){
    //FILE_LOG()->append('Расчет общего балла');
    $overallScore = $a + $b;
    if($overallScore !=0){
        return $overallScore;
    }
} // Общий балл
