100], [['gender'], 'string', 'max' => 10], [['phone'], 'string', 'max' => 20], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'code' => 'Mã nhân viên', 'name' => 'Tên nhân viên', 'card_number' => 'Số thẻ', 'department_id' => 'Phòng ban', 'gender' => 'Giới tính', 'birthday' => 'Ngày sinh', 'email' => 'Email', 'phone' => 'Điện thoại', 'date_in' => 'Ngày bắt đầu làm việc', 'address' => 'Địa chỉ', 'created_at' => 'Thời gian tạo', 'modified_at' => 'Thời gian sửa', 'card_register_time' => 'Ngày đăng ký thẻ', 'time_in' => "Thời gian vào", 'time_out' => "Thời gian ra", 'man_hour' => "Giờ công", 'man_day' => "Ngày công", 'schedule' => "Lịch trình", 'doors' => "Cửa" ]; } public static $genderArray = ["M" => "Nam", "F" => "Nữ"]; public function create($data) { $r = $this->load([ "code" => $data["Code"], "name" => $data["Name"], "card_number" => $data["CardNumber"] != "" ? $data["CardNumber"] : 0, "department_id" => $data["Department"], "gender" => $data["Gender"], "birthday" => date_format(date_create_from_format('d/m/Y', $data["BirthDay"]), 'U'), "email" => $data["Email"], "phone" => $data["Phone"], "date_in" => date_format(date_create_from_format('d/m/Y', $data["DateIn"]), 'U'), "address" => $data["Address"], "created_at" => time(), "modified_at" => time(), "card_register_time" => time(), "image" => $data['Image'] ], ''); if ($r) { try { $this->save(); return $this->id; } catch (\Exception $ex) { return false; } } } public function multiCreate($datas) { $field = ['code', 'name', 'card_number', 'department_id', 'gender', 'birthday', 'email', 'phone', 'date_in', 'address', 'created_at', 'modified_at', 'card_register_time']; static::getDb()->createCommand()->batchInsert($this->tableName(), $field, $datas)->execute(); return; } public function checkStatusImport($data) { if ($this->findOne(["code" => $data["A"]])) return ["status" => false, "description" => "Mã nhân viên đã tồn tại"]; if ($this->findOne(["card_number" => $data["C"]])) return ["status" => false, "description" => "Số thẻ đã tồn tại"]; if (!Department::findOne(["name" => $data["D"]])) return ["status" => true, "description" => "Phòng ban không tồn tại"]; return ["status" => true, "description" => ""]; } public static function staffArray() { $lists = self::find()->andWhere(["card_number" => 0])->all(); $results = []; foreach ($lists as $key => $value) { $results[$value->id] = $value->code . "-" . $value->name; } return $results; } public function getDoors() { $doors = []; if ($this->door_access) { $ls = json_decode($this->door_access, true); foreach ($ls as $key => $value) { $dInfo = Door::findOne($value); if ($dInfo) $doors[] = $dInfo->name; } } return implode(", ", $doors); } }