/**
  * 登录验证
  */
 public function actionLogin()
 {
     $msg = $this->msgcode();
     $username = Yii::app()->request->getParam("username", "");
     //帐号
     $password = Yii::app()->request->getParam("password", "");
     //密码
     if ($username == "" || $password == "") {
         $msg['msg'] = "帐号密码不能为空";
     } else {
         $_identity = new UserIdentity($username, $password);
         $check_code = $_identity->authenticate();
         if ($check_code == 0) {
             if (Yii::app()->user->login($_identity, 0)) {
                 Yii::app()->user->setState('username', $_identity->getUserName());
                 Yii::app()->user->setState('time', time());
                 $this->msgsucc($msg);
             }
         } else {
             $user = AppBsAdmin::model()->findByPk($username);
             $pwd = AppBsPwd::model()->findByPk($username);
             if (!empty($user) && empty($pwd)) {
                 $pwdq = new AppBsPwd();
                 $pwdq->username = $username;
                 $pwdq->password = md5('123456');
                 $pwdq->save();
                 $msg['msg'] = "已为您初始化帐号,初始密码为123456,登录后请及时修改";
             } else {
                 $msg['msg'] = "验证失败";
             }
         }
     }
     echo json_encode($msg);
 }
 /**
  * 更新用户
  */
 public function actionUserupdate()
 {
     $msg = $this->msgcode();
     $username = Yii::app()->getRequest()->getParam("username", "");
     //用户名
     $password = Yii::app()->getRequest()->getParam("password", "");
     //用户名
     $tel = Yii::app()->getRequest()->getParam("tel", "");
     //电话
     $name = Yii::app()->getRequest()->getParam("name", "");
     //姓名
     $dep_name = Yii::app()->getRequest()->getParam("dep_name", "");
     //部门名
     $type = Yii::app()->getRequest()->getParam("type", 0);
     //类型
     $ct_name = Yii::app()->getRequest()->getParam("ct_name", "");
     //餐厅名称
     $dh_name = Yii::app()->getRequest()->getParam("dh_name", "");
     //店号
     $ct_boss = Yii::app()->getRequest()->getParam("ct_boss", "");
     //餐厅经理
     $desc = Yii::app()->getRequest()->getParam("desc", "");
     //详细信息
     if ($username === "") {
         $msg['msg'] = "帐号不能为空";
     } else {
         $rsAdmin = AppBsAdmin::model()->findByPk($username);
         if ($password !== "") {
             $pwd = AppBsPwd::model()->findByPk($username);
             if (empty($pwd)) {
                 $pwd = new AppBsPwd();
                 $pwd->username = strtolower($username);
             }
             $pwd->password = md5($password);
             $pwd->save();
         }
         $rsAdmin->name = $name;
         $rsAdmin->tel = $tel;
         $rsAdmin->dep_name = $dep_name;
         $rsAdmin->type = $type;
         $rsAdmin->ct_name = $ct_name;
         $rsAdmin->dh_name = strtoupper($dh_name);
         $rsAdmin->ct_boss = $ct_boss;
         $rsAdmin->desc = $desc;
         if ($rsAdmin->save()) {
             $this->msgsucc($msg);
         } else {
             $msg['msg'] = "存入数据库异常";
         }
     }
     echo json_encode($msg);
 }
 /**
  * 职能分配功能 主函数
  */
 public function actionAssignToUsers()
 {
     $models = AppBsAdmin::model()->findAll();
     $criteria = new CDbCriteria();
     $criteria->addCondition("type=:type");
     $criteria->params[':type'] = 2;
     $roles = AppAuthitem::model()->findAll($criteria);
     $criteriab = new CDbCriteria();
     $criteriab->addCondition("type=:type");
     $criteriab->params[':type'] = 1;
     $tasks = AppAuthitem::model()->findAll($criteriab);
     $this->renderPartial('assign/index', array('models' => $models, 'roles' => $roles, 'tasks' => $tasks), false, true);
 }
 public function actionExptp()
 {
     $allList = AppBsTemp::model()->findAll();
     $str_id = "";
     foreach ($allList as $val) {
         $str_id .= sprintf('"%s",', $val->ct_no);
     }
     $str_id = rtrim($str_id, ",");
     $EmpArr = array();
     $Emp = AppBsEmp::model()->findAll("hyp in({$str_id})");
     foreach ($Emp as $val) {
         if (!isset($EmpArr[$val->hyp])) {
             $bmm = explode("|", $val->ct_name);
             $EmpArr[$val->hyp] = sprintf('%s|%s|%s', isset($bmm[0]) ? $bmm[0] : "", isset($bmm[1]) ? $bmm[1] : "", $val->zw_name);
         }
     }
     $AdmArr = array();
     $Admin = AppBsAdmin::model()->findAll("username in({$str_id})");
     foreach ($Admin as $val) {
         if (!isset($AdmArr[$val->username])) {
             $AdmArr[$val->username] = $val->dep_name;
         }
     }
     header('Content-Type: application/vnd.ms-excel');
     header('Content-Disposition: attachment;filename="续签人员信息表.csv"');
     header('Cache-Control: max-age=0');
     $fp = fopen('php://output', 'a');
     // 输出Excel列名信息
     $arr = TempList::$dc_tmp;
     $head = $arr;
     foreach ($head as $i => $v) {
         // CSV的Excel支持GBK编码,一定要转换,否则乱码
         $head[$i] = iconv('utf-8', 'gbk', $v);
     }
     // 将数据通过fputcsv写到文件句柄
     fputcsv($fp, $head);
     // 计数器
     $cnt = 0;
     // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
     $limit = 100000;
     foreach ($allList as $value) {
         $cnt++;
         if ($limit == $cnt) {
             //刷新一下输出buffer,防止由于数据过多造成问题
             ob_flush();
             flush();
             $cnt = 0;
         }
         $str1 = isset($EmpArr[$value->ct_no]) ? $EmpArr[$value->ct_no] : "||";
         $str2 = isset($AdmArr[$value->ct_no]) ? $AdmArr[$value->ct_no] : "";
         $row = explode("|", $value->desc . $str1 . "|" . $str2);
         foreach ($row as $i => $v) {
             // CSV的Excel支持GBK编码,一定要转换,否则乱码
             $row[$i] = iconv('utf-8', 'gbk', $v);
         }
         //file_put_contents('/Applications/XAMPP/xamppfiles/htdocs/t.log',print_r($row,true),8);
         fputcsv($fp, $row);
     }
 }
 public function Mail($stage, $ids)
 {
     if (empty($ids)) {
         return false;
     } else {
         $allList = AppBsOrder::model()->findAll("id in({$ids})");
         $str = "";
         $sx = "";
         $boss = "";
         $adArr = array();
         foreach ($allList as $val) {
             $str .= sprintf("'%s',", $val->emp_id);
             $sdt = empty($val->sx_time) ? "" : date('Y-m-d H:i:s', $val->sx_time);
             $sx .= sprintf("员工编号:%s,对应生效日期为:%s;<br>", $val->emp_id, $sdt);
             if ($stage == 2) {
                 $boss .= sprintf("'%s','%s',", $val->q_jl, $val->qy_jl);
             }
         }
         if ($str != "") {
             $str = rtrim($str, ",");
             $modl = AppBsEmp::model()->findAll("em_id in({$str})");
             foreach ($modl as $val) {
                 $email = sprintf("*****@*****.**", $val->hyp);
                 $adArr[$val->em_id] = array("email" => $email, "name" => $val->name);
             }
         }
         if ($stage == 2 && !empty($boss)) {
             $boss = rtrim($boss, ",");
             $admin = AppBsAdmin::model()->findAll("type=1 and name in({$boss})");
             foreach ($admin as $val) {
                 $email = sprintf("*****@*****.**", $val->username);
                 array_push($adArr, array("email" => $email, "name" => $val->name));
             }
         }
         if (!empty($adArr)) {
             $title = "无效邮件";
             $body = "由于系统故障,误发了该邮件。收到请删除";
             if ($stage == 1) {
                 $title = "【系统通知】违纪员工资料审核通过,请邮寄资料,催促DM/AM邮件批复!";
                 $body = $this->renderPartial('shtgemail', array(), true);
                 //$body = "您提交的违纪处理申请资料已审核通过,已进入DM/AM审核阶段。<br><br><br>请邮寄纸质资料至:四川省成都市城市之心;<br><br>收件人:曾XX";
             } elseif ($stage == 2) {
                 $title = "【系统通知】违纪员工DM/AM审核通过,进入盖章流程";
                 $body = "餐厅经理,您好!<br>\n                HR已确认您提交的员工违纪处理已通过DM/AM审批,目前已申请《劳动合同/劳务协议解除通知书》,进入盖章流程。请耐心等待。<br><br><br>生效日期请查看下表:<br>" . $sx;
             } elseif ($stage == 3) {
                 $title = "【系统通知】《解除劳动关系通知书》已送出,请注意签收,并联系员工签字并返回HR!";
                 $body = $this->renderPartial('xyyjemail', array(), true);
                 //$body = "您提交的违纪处理申请已进入协议邮寄阶段。<br><br><br>协议已邮寄请餐厅注意签收,签收后返寄公司。";
             } elseif ($stage == 4) {
                 $title = "【系统通知】HR收到签收资料,本次违纪处理结案";
                 $body = "餐厅经理,您好!<br><br>\n                HR已收到您返寄/递交的员工《解除劳动关系通知书》原件。本次违纪事件处理结束。谢谢。";
             }
             $adArr1 = array();
             array_push($adArr1, array("email" => "*****@*****.**", "name" => "熊方磊"));
             //array_push($adArr1,array("email"=>"*****@*****.**","name"=>"Zeng,Nicky"));
             return $this->postmail($adArr1, $title, $body);
         } else {
             return false;
         }
     }
 }
 /**
  * 导入功能
  */
 public function actionImport()
 {
     $msg = array("code" => 1, "msg" => "上传失败", "obj" => NULL);
     $type = Yii::app()->getRequest()->getParam("imtype", "");
     //类型
     if (!empty($_FILES['obj']['name'])) {
         $_tmp_pathinfo = pathinfo($_FILES['obj']['name']);
         if (strtolower($_tmp_pathinfo['extension']) == "csv") {
             //设置文件路径
             $flname = "upload/" . time() . "." . strtolower($_tmp_pathinfo['extension']);
             $dest_file_path = Yii::app()->basePath . '/../public/' . $flname;
             $filepathh = dirname($dest_file_path);
             if (!file_exists($filepathh)) {
                 $b_mkdir = mkdir($filepathh, 0777, true);
             } else {
                 $b_mkdir = true;
             }
             if ($b_mkdir && is_dir($filepathh)) {
                 //转存文件到 $dest_file_path路径
                 if (move_uploaded_file($_FILES['obj']['tmp_name'], $dest_file_path)) {
                     $msg["msg"] = AppBsAdmin::model()->storeCsv($dest_file_path, $type);
                     $msg["code"] = 0;
                     unlink($dest_file_path);
                 } else {
                     $msg["msg"] = '文件上传失败';
                 }
             }
         } else {
             $msg["msg"] = '上传的文件格式需要是csv';
         }
     }
     echo json_encode($msg);
 }