flowModel.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. class flowClassModel extends Model
  3. {
  4. public $flow = null;
  5. public function initflow($num,$mid=null, $isqx=true)
  6. {
  7. $this->flow = m('flow:'.$num.'');
  8. $this->flow->initdata($num);
  9. if($mid != null)$this->flow->loaddata($mid, $isqx);
  10. return $this->flow;
  11. }
  12. public function opt($act,$num,$mid,$cs1='',$cs2='',$cs3='',$cs4='')
  13. {
  14. $this->initflow($num, $mid);
  15. return $this->flow->$act($cs1, $cs2, $cs3, $cs4);
  16. }
  17. public function getdatalog($num, $mid, $lx)
  18. {
  19. return $this->opt('getdatalog', $num, $mid, $lx);
  20. }
  21. public function submit($num, $mid, $na='', $sm='')
  22. {
  23. $this->initflow($num,$mid, false);
  24. return $this->flow->submit($na, $sm);
  25. }
  26. public function deletebill($num, $mid, $sm='', $dlqx=true)
  27. {
  28. $this->initflow($num,$mid, false);
  29. return $this->flow->deletebill($sm, $dlqx);
  30. }
  31. public function zuofeibill($num, $mid, $sm='')
  32. {
  33. $this->initflow($num,$mid, false);
  34. return $this->flow->zuofeibill($sm);
  35. }
  36. public function getoptmenu($num, $mid, $lx=0)
  37. {
  38. $this->initflow($num,$mid, false);
  39. return $this->flow->getoptmenu($lx);
  40. }
  41. public function optmenu($num, $mid, $optid, $zt, $sm)
  42. {
  43. $this->initflow($num,$mid, false);
  44. return $this->flow->optmenu($optid, $zt, $sm);
  45. }
  46. public function getdataedit($num, $mid)
  47. {
  48. return $this->opt('getdataedit', $num, $mid);
  49. }
  50. public function addlog($num, $mid,$na,$barr=array())
  51. {
  52. $darr = array(
  53. 'name' => $na
  54. );
  55. foreach($barr as $k=>$v)$darr[$k]=$v;
  56. return $this->opt('addlog', $num, $mid, $darr);
  57. }
  58. public function printexecl($num, $event)
  59. {
  60. return $this->opt('printexecl', $num, null, $event);
  61. }
  62. public function repipei($whe='')
  63. {
  64. $srows = $this->db->getrows('[Q]flow_set','status=1 and isflow>0 '.$whe.'','`num`,`name`,`table`,id,`where`','sort');
  65. $str = '';
  66. $dbs = m('flow_bill');
  67. foreach($srows as $k=>$rs){
  68. $where = $rs['where'];
  69. if(!isempt($where)){
  70. $where = $this->rock->covexec($where);
  71. $where = "and $where";
  72. }
  73. $flow = $this->initflow($rs['num']);
  74. $rows = $this->db->getrows('[Q]'.$rs['table'].'','status not in(1,5) and isturn=1 '.$where.'');
  75. $hshu = 0;
  76. $yics = 0;
  77. foreach($rows as $k1=>$rs1){
  78. $flow->loaddata($rs1['id'], false);
  79. $bar = $flow->getflow(true);
  80. $hshu+=$this->db->row_count();
  81. if(isempt($bar['nowcheckid']))$yics++;
  82. }
  83. if($hshu>0)$str.=''.$rs['name'].'匹配('.$hshu.')条;';
  84. if($yics>0)$str.=''.$rs['name'].'<font color=red>('.$yics.')条没审核人</font>;';
  85. }
  86. if($str=='')$str = '无从新匹配记录';
  87. $rows = $this->db->getall("select a.`id`,b.`name`,b.`deptname` from `[Q]flow_bill` a left join `[Q]admin` b on a.`uid`=b.`id` where b.`id` is not null and (ifnull(a.uname,'')='' or ifnull(a.udeptname,'')='')");
  88. foreach($rows as $k=>$rs){
  89. $dbs->update(array(
  90. 'uname' => $rs['name'],
  91. 'udeptname' => $rs['deptname'],
  92. ), $rs['id']);
  93. }
  94. $dbs->update('`isturn`=1','`status`=1');
  95. return $str;
  96. }
  97. /**
  98. * 往一个模块新增单据数据
  99. * 返回单据id
  100. * 调用方法m('flow')->querydata('模块编号', array());
  101. */
  102. public function querydata($num, $cans, $sm='')
  103. {
  104. $flow = $this->initflow($num);
  105. $allfields = $this->db->getallfields('[Q]'.$flow->mtable.'');
  106. if(in_array('uid', $allfields) && !isset($cans['uid']))$cans['uid'] = $this->adminid;
  107. if(in_array('optid', $allfields))$cans['optid'] = $this->adminid;
  108. if(in_array('createid', $allfields))$cans['createid'] = $this->adminid;
  109. if(in_array('createname', $allfields))$cans['createname'] = $this->adminname;
  110. if(in_array('optname', $allfields))$cans['optname'] = $this->adminname;
  111. if(in_array('optdt', $allfields))$cans['optdt'] = $this->rock->now;
  112. if(in_array('createdt', $allfields))$cans['createdt'] = $this->rock->now;
  113. if(in_array('adddt', $allfields))$cans['adddt'] = $this->rock->now;
  114. if(in_array('applydt', $allfields) && !isset($cans['applydt']))$cans['applydt'] = $this->rock->date;
  115. if(in_array('status', $allfields) && !isset($cans['status']))$cans['status'] = 0;
  116. if(in_array('isturn', $allfields) && !isset($cans['isturn']))$cans['isturn'] = 1;//是否提交
  117. if(isset($cans['uid'])){
  118. $urs = $flow->adminmodel->getone($cans['uid']);
  119. in_array('uname', $allfields) and $cans['uname'] = $urs['name'];
  120. in_array('applyname', $allfields) and $cans['applyname'] = $urs['name'];
  121. in_array('applydeptname', $allfields) and $cans['applydeptname'] = $urs['deptname'];
  122. }
  123. foreach($cans as $k=>$v)if(!in_array($k, $allfields))unset($cans[$k]);
  124. $mid = $flow->insert($cans);
  125. $isturn = isset($cans['isturn']) ? $cans['isturn'] : 1;
  126. $na = '';
  127. if($isturn==0)$na = '保存';
  128. $flow->loaddata($mid, false);
  129. $flow->submit($na, $sm);
  130. return $mid;
  131. }
  132. }
粤ICP备19079148号