Yii framework

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
/**
* Добавление/обновление номера мобильного телефона
* @param int $user_id - ID пользователя
* @param string $sms_phone - Мобильный телефон сотрудника
* @return bool
*/
function SaveSmsPhone($user_id,$sms_phone){
$count_rows = Yii::app()->db->createCommand()->update("users", array("sms_phone"=>$sms_phone),"id = ".$user_id);
if($count_rows>0)
return $count_rows;
else
return false;
}
/**
* Информация о пользователе
* @param int $user_id
* @param string $sel_month
* @return array
*/
public function GetUserMonthLog($user_id = NULL, $sel_month = NULL)
{
if (is_null($sel_month) || !$sel_month)
return;
$cache = Yii::app()->cache;
$reader = $this->call("GetUserMonthLog", $user_id, $sel_month);
$ulogin = "";
/**
* @var array $output Выходной массив с данными
*/
$output = array();
/**
* @var int $all_time Время отработанное за месяц
*/
$all_time = 0;
foreach ($reader as $row) {
$start_date = explode(" ", $row["job_start"]);
$finish_date = explode(" ", $row["job_finish"]);
//$cur_day = explode(".", $start_date);
//обработаем время для дальнейшего сложения
$job_time = explode(":", $row["job_time"]);
$ud = explode(".", $start_date[0]);
$ulogin = $row["ulogin"];
$output["list_months"][$ulogin][$ud[0]] = array(
"date" => $start_date[0],
"start" => $start_date[1],
"finish" => $finish_date[1],
"job_time" => $row["job_time"],
);
$all_time += $job_time[0] * 3600 + $job_time[1] * 60 + $job_time[2];
}
$output["all_time"][$ulogin] = number_format($all_time / 3600, 0, ".", "");
return $output;
}
/**
* Возвращает информацию за текущий месяц выбранного сотрудника
* @param int $user_id
* @return array
*/
public function CurMonthByUser($user_id = NULL, $month)
{
if (is_null($user_id))
return;
$cache = Yii::app()->cache;
$reader = $this->call("GetCurrMonthLog", $user_id, $month, NULL, NULL);
$ulogin = "";
/**
* @var array $output Выходной массив с данными
*/
$output = array();
/**
* @var int $all_time Время отработанное за месяц
*/
$all_time = 0;
foreach ($reader as $row) {
if(!isset($output["user_info"])){
$output["user_info"] = array(
"groupid" => $row["groupid"],
"grouptitle" => $row["grouptitle"],
"ulogin" => $row["ulogin"],
"userfullname" => $row["userfullname"],
"userid" => $row["userid"]
);
}
$start_date = explode(" ", $row["job_start"]);
$finish_date = explode(" ", $row["job_finish"]);
//обработаем время для дальнейшего сложения
$job_time = explode(":", $row["job_time"]);
$ud = explode(".", $start_date[0]);
$ulogin = $row["ulogin"];
$output["list_months"][$ulogin][$ud[0]] = array(
"date" => $start_date[0],
"start" => $start_date[1],
"finish" => $finish_date[1],
"job_time" => $row["job_time"],
);
$all_time += $job_time[0] * 3600 + $job_time[1] * 60 + $job_time[2];
}
$output["all_time"][$ulogin] = number_format($all_time / 3600, 0, ".", "");
return $output;
}