verify.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?php
  2. Doo::loadCore('db/DooModel');
  3. class verify extends DooModel {
  4. public $vid;
  5. public $description;
  6. public $staff;
  7. public $subordinate;
  8. public $_table = 'CLD_verify';
  9. public $_primarykey = 'vid';
  10. public $_fields = array('vid', 'description', 'staff','subordinate');
  11. /**
  12. * 获得所有审批组
  13. */
  14. function getVerifyByAll(){
  15. Doo::loadModel ( "role" );
  16. $role = new role ();
  17. $veList = $this->find ( array (
  18. 'asArray' => true
  19. ) );
  20. foreach ( $veList as $key => $value ) {
  21. $v = json_decode ( $value ['staff'] );
  22. $list = array ();
  23. foreach ( $v as $n => $m ) {
  24. if ($m ['1'] == 'ROLE') {
  25. $roleInfo = $role->getOne ( array (
  26. 'where' => 'rid=' . $m [0],
  27. 'asArray' => true
  28. ) );
  29. $v [$n] [1] = $roleInfo ['name'];
  30. array_push ( $list, $roleInfo ['name'] );
  31. } else {
  32. array_push ( $list, $v [$n] [1] );
  33. }
  34. }
  35. $veList [$key] ['staff'] = implode ( '>', $list );
  36. }
  37. return $veList;
  38. }
  39. function getVerifyBySubordinate($subordinate='',$subordinate2=''){
  40. if (empty($subordinate)){
  41. return array();
  42. }
  43. $con='subordinate like "%'.$subordinate.'%"';
  44. if (!empty($subordinate2)){
  45. $con='subordinate like "%'.$subordinate.'%" or subordinate like "%'.$subordinate2.'%"';
  46. }
  47. $veList = $this->find ( array (
  48. 'where'=>$con,
  49. 'asArray' => true
  50. ) );
  51. Doo::loadModel ( "role" );
  52. $role = new role ();
  53. foreach ( $veList as $key => $value ) {
  54. $v = json_decode ( $value ['staff'] );
  55. $list = array ();
  56. foreach ( $v as $n => $m ) {
  57. if ($m ['1'] == 'ROLE') {
  58. $roleInfo = $role->getOne ( array (
  59. 'where' => 'rid=' . $m [0],
  60. 'asArray' => true
  61. ) );
  62. $v [$n] [1] = $roleInfo ['name'];
  63. array_push ( $list, $roleInfo ['name'] );
  64. } else {
  65. array_push ( $list, $v [$n] [1] );
  66. }
  67. }
  68. $veList [$key] ['staff'] = implode ( '>', $list );
  69. }
  70. return $veList;
  71. }
  72. /**
  73. * 获得某费用单的审批信息
  74. */
  75. function getVerifyByRid($rid=0){
  76. if (empty($rid))
  77. return array();
  78. // 获得审批组
  79. Doo::loadModel ( 'role' );
  80. $role = new role ();
  81. Doo::loadModel ( 'loanReceipt' );
  82. $loanReceipt = new loanReceipt ();
  83. Doo::loadModel ( 'staff' );
  84. $staff = new staff ();
  85. Doo::loadModel ( 'receipt' );
  86. $receipt = new receipt ();
  87. $receiptDetail = $receipt->getReceiptByRid ( $rid );
  88. $loanList = $loanReceipt->find ( array (
  89. 'where' => 'rid=' . $receiptDetail ['loanRid'],
  90. 'desc' => 'rid',
  91. 'asArray' => true
  92. ) );
  93. if ($receiptDetail ['status'] == 3 || $receiptDetail ['status'] == 1 || $receiptDetail ['status'] == 8 || $receiptDetail ['status'] == 9) {
  94. if ($receiptDetail ['status'] == 8 && $receiptDetail ['Rtype'] == 1)
  95. $verifyList ['staff'] = $loanList [0] ['verifyBreakup'];
  96. else
  97. $verifyList ['staff'] = $receiptDetail ['verifyBreakup'];
  98. } else {
  99. $verifyList = $this->getOne ( array (
  100. 'where' => 'vid=' . $receiptDetail ['verify'],
  101. 'asArray' => true
  102. ) );
  103. }
  104. $verifyList = json_decode ( $verifyList ['staff'], true );
  105. $verifyStaff = json_decode ( $receiptDetail ['verifyStaff'], true );
  106. $roleArrayCopy = array ();
  107. $flag = true;
  108. foreach ( $verifyList as $k => $v ) {
  109. if ($v [1] == 'ROLE') {
  110. $roleVerify = json_decode ( $v [3], true );
  111. $roleKey = $k;
  112. $roleArray = array ();
  113. $rolename = $role->getOne ( array (
  114. 'where' => 'rid=' . $v [0],
  115. 'asArray' => true
  116. ) );
  117. foreach ( $roleVerify as $o => $p ) {
  118. $staffID = explode ( '_', $p );
  119. $staffInfo = $staff->getOne ( array (
  120. 'where' => 'sid=' . $staffID [0],
  121. 'asArray' => true
  122. ) );
  123. $exp = array (
  124. 0 => $staffInfo ['sid'],
  125. 1 => $staffID [1],
  126. 2 => $staffInfo ['avatar'],
  127. 'date' => '',
  128. 'date' => '',
  129. 'opinion' => '',
  130. 'status' => '',
  131. 'rolename' => $rolename ['name']
  132. );
  133. array_push ( $roleArray, $exp );
  134. }
  135. $roleArrayCopy [$v [0]] = $roleArray;
  136. }
  137. $verifyList [$k] ['date'] = "";
  138. $verifyList [$k] ['opinion'] = "";
  139. $verifyList [$k] ['status'] = "";
  140. if (empty ( $verifyStaff )) {
  141. $verifyList [$k] ['date'] = "";
  142. $verifyList [$k] ['opinion'] = "";
  143. if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
  144. $verifyList [$k] ['status'] = 4;
  145. $flag = false;
  146. }
  147. } else {
  148. foreach ( $verifyStaff as $m => $u ) {
  149. if ($v [0] == $m) {
  150. $verifyList [$k] ['date'] = $u ['date'];
  151. $verifyList [$k] ['opinion'] = $u ['opinion'];
  152. $verifyList [$k] ['status'] = $u ['status'];
  153. $flag = false;
  154. break;
  155. }
  156. }
  157. }
  158. }
  159. foreach ( $roleArrayCopy as $P => $A ) {
  160. foreach ( $A as $MKI => $AVL ) {
  161. foreach ( $verifyStaff as $m => $u ) {
  162. $AVLFK = $AVL [0] . '_R';
  163. if (strcmp ( $AVLFK, $m ) == 0) {
  164. $roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
  165. $roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
  166. $roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
  167. break;
  168. }
  169. }
  170. }
  171. }
  172. foreach ( $roleArrayCopy as $k => $v ) {
  173. foreach ( $verifyList as $m => $n ) {
  174. if ($n [0] == $k) {
  175. array_splice ( $verifyList, $m, 1, $v );
  176. }
  177. }
  178. }
  179. return $verifyList;
  180. }
  181. }
  182. ?>