verify.php 4.6 KB

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