'未上报', 'checking' => '审核中', 'checked' => '完成', 'checkno' => '不通过'), $statusArray2 = array('uncheck' => '', 'checking' => '审批中', 'checked' => '审批通过', 'checkno' => '审批不通过');
public function beforeRun($resource, $action)
{
if (!isset($_SESSION['auid'])) {
return Doo::conf()->APP_URL . 'manage';
}
}
public function __construct()
{
$this->users = new AUsers();
$this->user = new AUser();
$this->userz = new Users();
$this->profile = new Profile();
$this->mailer = new Mailer();
$this->ph = new PasswordHash(8, FALSE);
$this->am = new Ameasure();
$this->ama = new AmeasureAudit();
$this->af = new Afileup();
$this->an = new Anumofper();
$this->project = new Project();
$this->cc = new Contractact();
$this->attfile = new attFile();
$this->data['rootUrl'] = Doo::conf()->APP_URL;
}
public function index()
{
if(isset($_POST['type']) && isset($_POST['pid'])){
if($_POST['type'] == 'del'){
$num = $this->cc->getNumRow($_POST['pid']);
if($num > 0){
die(json_encode(array('status' => 1)));
}else{
die(json_encode(array('status' => 2)));
}
}
if($_POST['type'] == "delpro"){
$this->project->del($_POST['pid']);
die(json_encode(array('status' => 'ok')));
}
}
$pArray = $this->project->getAll();
if(!empty($pArray)){
foreach($pArray as $k => $v){
$pArray[$k]['mnum'] = $this->cc->getNumRow($v['pid']);
$userfile = $this->profile->getProWithUid($v['uid']);
$company = !empty($userfile['company']) ? '-'.$userfile['company'] : '';
$pArray[$k]['uname'] = $userfile['name'].$company;
}
}
$this->data['pArray'] = $pArray;
$this->data['menu'] = 5;
$this->render('admin-project', $this->data, TRUE);
}
public function section()
{
if(isset($_POST['type'])){
if($_POST['type'] == 'del' && isset($_POST['stid'])){
$num = $this->am->getRowNum($_POST['stid']);
if($num > 0){
die(json_encode(array('status' => 1)));
}else{
die(json_encode(array('status' => 2)));
}
}
if($_POST['type'] == 'delpro' && isset($_POST['stid'])){
$this->cc->del($_POST['stid']);
die(json_encode(array('status' => 'ok')));
}
if($_POST['type'] == 'delmcheck' && isset($_POST['pmid'])){
$num = $this->an->getLastNew2($_POST['pmid']);
if(isset($num['numpname']) && !empty($num['numpname']) && $num['numpname'] != 1 && $num['times'] != 1){
die(json_encode(array('status' => 1)));
}else{
die(json_encode(array('status' => 2)));
}
}
if($_POST['type'] == 'delmpro' && isset($_POST['pmid'])){
$this->am->del($_POST['pmid']);
//删除该标段下第1期#1所有审批人列表
$anmsg = $this->an->getLastNew2($_POST['pmid']);
if(!empty($anmsg)){
$muaudits = $this->ama->getAuditsByMpid($anmsg['mpid']);
if(!empty($muaudits)){
foreach($muaudits as $k => $v){
$this->ama->del($v['maid']);
}
}
$this->an->del($anmsg['mpid']);
//文件列也要删除,不然软件报错
$this->attfile->delAllTimesFile2($anmsg['mpid']);
}
die(json_encode(array('status' => 'ok')));
}
}
$typeArray = $this->cc->getRowByPid($this->params['pid']);
if(!empty($typeArray)){
foreach($typeArray as $k => $v){
$datarows = $this->am->getRowswith($v['stid']);
if(!empty($datarows)){
foreach($datarows as $dk => $dv){
$userfile = $this->profile->getProWithUid($dv['uid']);
$datarows[$dk]['name'] = $userfile['name'];
$company = !empty($userfile['company']) ? '-'.$userfile['company'] : '';
$datarows[$dk]['company'] = $company;
//获取第几期和审核状态
$countNum = $this->an->getLastNew2($dv['pmid'])['numpname'];
if (!isset($countNum)) {
$countNum = 0;
}
$lastStatusArray = $this->an->getMaxStatusTimes($dv['pmid'], $countNum);
$datarows[$dk]['num'] = $countNum;
$datarows[$dk]['status'] = $countNum != 0 ? $this->statusArray[$lastStatusArray['currstatus']] : '';
}
}
$typeArray[$k]['datarows'] = $datarows;
}
}
$this->data['pid'] = $this->params['pid'];
$this->data['typeArray'] = $typeArray;
$this->data['menu'] = 5;
$this->render('admin-section', $this->data, TRUE);
}
public function period(){
if(isset($_POST['op'])){
if($_POST['op'] == 'pass' && isset($_POST['maid'])){
$mamsg = $this->ama->getRowData($_POST['maid']);
if(!empty($mamsg)){
$mumsg = $this->an->getRowByMpid($mamsg['mpid']);
//修改期数状态
if(!empty($mumsg)){
$nextmumsg = $this->ama->getAuditByMpidStatus($mamsg['mpid'],'uncheck');
if(!empty($nextmumsg)){
$this->ama->updateStatus($nextmumsg['maid'],'checking',2,0);
}else{
$this->an->updateAuditStatus($mamsg['mpid'],'checked');
}
}
//修改状态为checked
$this->ama->updateStatus($_POST['maid'],'checked');
$this->attfile->updateHash($mumsg['pmid'], $mumsg['numpname'], $mumsg['times']);
}
die(json_encode(array('status' => 'ok')));
}
if($_POST['op'] == 'unpass' && isset($_POST['maid'])){
$mamsg = $this->ama->getRowData($_POST['maid']);
if(!empty($mamsg)){
$mumsg = $this->an->getRowByMpid($mamsg['mpid']);
//修改期数状态
if(!empty($mumsg)){
$this->an->updateAuditStatus($mamsg['mpid'],'checkno');
}
//修改状态为checkno
$this->ama->updateStatus($_POST['maid'],'checkno');
$this->attfile->updateHash($mumsg['pmid'], $mumsg['numpname'], $mumsg['times']);
}
die(json_encode(array('status' => 'ok')));
}
if($_POST['op'] == 'checking' && isset($_POST['maid'])){
$mamsg = $this->ama->getRowData($_POST['maid']);
if(!empty($mamsg)){
$mumsg = $this->an->getRowByMpid($mamsg['mpid']);
//修改期数状态
if(!empty($mumsg) && $mumsg['currstatus'] != 'checking'){
$this->an->updateAuditStatus($mamsg['mpid'],'checking');
}
//修改上一审状态为uncheck,下一审状态为checking
$lastmamsg = $this->ama->getAuditByMpidStatus($mamsg['mpid'],'checking');
$this->ama->updateStatus($lastmamsg['maid'],'uncheck',2,0);
$this->ama->updateStatus($_POST['maid'],'checking',2,0);
//查看当前审批人附件是否存在,存在则删除
$attfile = $this->attfile->getMyAttFile($mumsg['pmid'], $mumsg['numpname'], $mumsg['times'],$mamsg['auditoruid']);
if(!empty($attfile)){
$this->attfile->delMyAttFile($mumsg['pmid'], $mumsg['numpname'], $mumsg['times'],$mamsg['auditoruid']);
//更新最后一个附件为最新 isnew=2
$lastaid = $this->attfile->getLastFileAid($mumsg['pmid'], $mumsg['numpname'], $mumsg['times']);
if(!empty($lastaid)){
$this->attfile->updateIsNew2($lastaid);
}
}
// $this->attfile->updateHash($mumsg['pmid'], $mumsg['numpname'], $mumsg['times']);
}
die(json_encode(array('status' => 'ok')));
}
if($_POST['op'] == 'delete' && isset($_POST['numpname']) && isset($_POST['times'])){
//删除该期审批人列表
$muaudits = $this->ama->getAuditsByPmidNumTimes($this->params['pmid'],$_POST['numpname'],$_POST['times']);
if(!empty($muaudits)){
foreach($muaudits as $k => $v){
$this->ama->del($v['maid']);
}
}
$mumsg = $this->an->getMsgByPmidNumTimes($this->params['pmid'],$_POST['numpname'],$_POST['times']);
if(!empty($mumsg)){
$this->an->del($mumsg['mpid']);
//文件列也要删除,不然软件报错
$this->attfile->delAllTimesFile2($mumsg['mpid']);
}
die(json_encode(array('status' => 'ok')));
}
}
$pmArray = $this->an->getGroupByLastOne2($this->params['pmid']);
//判断是否有获取未上报的数据,如果有则置顶;
$nopm = $this->ama->getLastAuditMsgByPmid($this->params['pmid']);
$this->data['pmid'] = $this->params['pmid'];
if(!empty($pmArray)){
$this->data['pid'] = $pmArray[0]['pid'];
$this->data['keymax'] = $pmArray[0]['numpname'];
if($nopm['numpname'] == $pmArray[0]['numpname'] && $nopm['times'] != $pmArray[0]['times']){
$nopmArray = array();
$nopmArray['mpid'] = $nopm['mpid'];
$nopmArray['numpname'] = $nopm['numpname'];
$nopmArray['times'] = $nopm['times']+1;
$audits2 = $this->ama->getAuditsByPmidNumTimes($nopm['pmid'],$nopm['numpname'],$nopm['times']);
$numaudits2 = $this->ama->getNumAuditsByPmidNumTimes($nopm['pmid'],$nopm['numpname'],$nopm['times']);
if(!empty($audits2)){
foreach($audits2 as $ak => $av){
$audits2[$ak]['numaudit'] = $numaudits2-$ak;
$audits2[$ak]['status'] = $this->statusArray2[$av['mastatus']];
$audits2[$ak]['auditcontent'] = !empty($av['auditcontent']) ? $av['auditcontent'] : '';
$userfile = $this->profile->getProWithUid($av['auditoruid']);
$company = !empty($userfile['company']) ? '-'.$userfile['company'] : '';
$audits2[$ak]['name'] = $userfile['name'];
$audits2[$ak]['company'] = $company;
$audits2[$ak]['enable'] = 3;
}
}
$nopmArray['audits'] = $audits2;
$this->data['nopmArray'] = $nopmArray;
}
foreach($pmArray as $k => $v){
$pmArray[$k]['times'] = $v['times']+1;
$audits = $this->ama->getAuditsByPmidNumTimes($v['pmid'],$v['numpname'],$v['times']);
$numaudits = $this->ama->getNumAuditsByPmidNumTimes($v['pmid'],$v['numpname'],$v['times']);
if(!empty($audits)){
foreach($audits as $ak => $av){
$audits[$ak]['numaudit'] = $numaudits-$ak;
$audits[$ak]['status'] = $this->statusArray2[$av['mastatus']];
$audits[$ak]['auditcontent'] = !empty($av['auditcontent']) ? $av['auditcontent'] : '';
$userfile = $this->profile->getProWithUid($av['auditoruid']);
$company = !empty($userfile['company']) ? '-'.$userfile['company'] : '';
$audits[$ak]['name'] = $userfile['name'];
$audits[$ak]['company'] = $company;
$audits[$ak]['enable'] = 3;
if($audits[0]['mastatus'] == 'checked'){
$audits[0]['enable'] = 2;
}else{
if($av['mastatus'] == "checking"){
$audits[$ak]['enable'] = 1;
}
if(($ak > 0 && $audits[$ak-1]['mastatus'] == "checking") || $av['mastatus'] == "checkno"){
$audits[$ak]['enable'] = 2;
}
}
}
}
$pmArray[$k]['audits'] = $audits;
}
}
$this->data['isnopm'] = isset($nopmArray) && !empty($nopmArray) ? 1 : 0;
$this->data['pmArray'] = $pmArray;
$this->data['menu'] = 5;
$this->render('admin-period', $this->data, TRUE);
}
}