hyarra = array('正常','会议中','结束','取消'); $this->ytarra = array('待进行','待进行','进行中','已结束'); $this->hyarrb = array('green','blue','#ff6600','#888888'); $this->dbobj = c('date'); $this->reatearr = array( 'd' => '每天', 'w1' => '每周一', 'w2' => '每周二', 'w3' => '每周三', 'w4' => '每周四', 'w5' => '每周五', 'w6' => '每周六', 'w7' => '每周日', 'm' => '每月', 'y' => '每年', ); } //子表数据替换处理$lx=0编辑时,1展示时 protected function flowsubdata($rows, $lx=0){ for ($i = 0; $i < count($rows); $i++) { if (isset($rows[$i]['topic_state']) && !empty($rows[$i]['topic_state'])) { $index = $rows[$i]['topic_state'] ?? 1; $rows[$i]['topic_state'] = $this->ytarra[$index]; } else { $id = isset($rows[$i]['id']); m('meeting_topics')->update(['topic_state'=>1], "id={$id}"); } } return $rows; } // 初始化单据可替换其他属性,$lx,0默认,1详情展示,2列表显示,3打印页,4外部详情页 public function flowrsreplace($rs, $lx=0) { // m('log')->addlog('会议单据', json_encode($rs, true)); $zt = $rs['state']; $is_hand = $rs['is_hand']; $nzt = $zt; $time = time(); $stime = strtotime($rs['meeting_time']); $etime = strtotime($rs['end_time']); if($is_hand != 2){ if($etime < $time){ $nzt = 2; } else if ($stime > $time){ $nzt = 0; } else { $nzt = 1; $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state', 'sort'); if (isset($topic['id']) && $topic['topic_state']<2) { m('meeting')->firstMeetingTopicStart($this->id); } } } if ($stime <= $time && $nzt != 2) { $nzt = 1; } // 更新数据状态 if($zt != $nzt){ $this->update('state='.$nzt.'', $rs['id']); $zt = $nzt; } // 将id转换为文字 $rs['state'] = $this->getstatezt($zt); return $rs; } public function getstatezt($zt) { if (isset($this->hyarrb[$zt])) { $html = ''.$this->hyarra[$zt].''; return $html; } else { return null; } } // $ors当前单据操作信息,$crs提交过来的信息 public function flowoptmenu($ors, $crs) { // 切换会议议题 if ($ors['num'] == 'changeTopic') { $topics = $this->db->getall("select * from `[Q]meeting_topics` where mid = {$this->id} order by sort"); for ($i = 0; $i < count($topics); $i++) { if(isset($topics[$i]['topic_state']) && $topics[$i]['topic_state'] == 2) { $id = $topics[$i]['id']; $data = ['topic_state'=>$topics[$i]['topic_state']+1]; m('meeting_topics')->update($data, "id={$id}"); if (isset($topics[$i+1]['topic_state'])) { $id = $topics[$i+1]['id']; $data = ['topic_state'=>2]; m('meeting_topics')->update($data, "id={$id}"); } break; } } if (isset($topics[count($topics) - 1]) && $topics[count($topics) - 1]['topic_state'] == 2) { m('meeting')->update(['is_hand'=>2,'state'=>2], "id={$this->id}"); } } else if ($ors['num'] == 'enableMeeting') { $time = time(); $stime = strtotime($this->rs['meeting_time']); $etime = strtotime($this->rs['end_time']); if ($stime < $time){ $data = [ 'state'=>1, 'is_hand'=>2 ]; } else if ($stime >= $time) { $data = [ 'state'=>0, 'is_hand'=>2 ]; } m('meeting')->update($data, "id={$this->id}"); $topic = m('meeting_topics')->getone("mid={$this->id}", "id", 'sort desc'); if (isset($topic['id'])) { m('meeting_topics')->update(['topic_state'=>'2'], 'id='.$topic['id']); } } else if ($ors['num'] == 'enableMeeting') { } } //删除单据时调用 public function flowdeletebill($sm) { // m('meet_sys')->deleteMeetingRoom($this->rs); } //流程全部完成后调用 public function flowcheckfinsh($sm) { // 会议议题状态全部设置为1 // m('meeting_topics')->update(['topic_state'=>'1'], 'mid='.$this->id); } //提交时调用 protected function flowsubmit($na, $sm) { if ($this->id == null) { return ; } } }