/workflow/engine/methods/users/users_DeleteReassign.php

https://bitbucket.org/ferOnti/processmaker · PHP · 165 lines · 136 code · 7 blank · 22 comment · 14 complexity · 4ed69fc6e14fdc69a1ff28670f3a1e4b MD5 · raw file

  1. <?php
  2. /**
  3. * cases_ReassignByUser.php
  4. *
  5. * ProcessMaker Open Source Edition
  6. * Copyright (C) 2004 - 2008 Colosa Inc.23
  7. *
  8. * This program is free software: you can redistribute it and/or modify
  9. * it under the terms of the GNU Affero General Public License as
  10. * published by the Free Software Foundation, either version 3 of the
  11. * License, or (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU Affero General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Affero General Public License
  19. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  20. *
  21. * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  22. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
  23. */
  24. try {
  25. global $RBAC;
  26. switch ($RBAC->userCanAccess( 'PM_REASSIGNCASE' )) {
  27. case - 2:
  28. G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
  29. G::header( 'location: ../login/login' );
  30. die();
  31. break;
  32. case - 1:
  33. G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
  34. G::header( 'location: ../login/login' );
  35. die();
  36. break;
  37. }
  38. if (! isset( $_GET['USR_UID'] )) {
  39. $_GET['USR_UID'] = '';
  40. }
  41. $G_MAIN_MENU = 'processmaker';
  42. $G_SUB_MENU = 'users';
  43. $G_ID_MENU_SELECTED = 'USERS';
  44. $G_ID_SUB_MENU_SELECTED = 'USERS';
  45. $G_PUBLISH = new Publisher();
  46. if ($_GET['USR_UID'] != '') {
  47. $c = 0;
  48. $oTemplatePower = new TemplatePower( PATH_TPL . 'users/users_DeleteReassign.html' );
  49. $oTemplatePower->prepare();
  50. G::LoadClass( 'tasks' );
  51. G::LoadClass( 'groups' );
  52. $oTasks = new Tasks();
  53. $oGroups = new Groups();
  54. $oUser = new Users();
  55. G::LoadClass( 'case' );
  56. $oCases = new Cases();
  57. $USR_UID = $_GET['USR_UID'];
  58. list ($oCriteriaToDo, $sXMLFile) = $oCases->getConditionCasesList( 'to_do', $_GET['USR_UID'] );
  59. list ($oCriteriaDraft, $sXMLFile) = $oCases->getConditionCasesList( 'draft', $_GET['USR_UID'] );
  60. if (ApplicationPeer::doCount( $oCriteriaToDo ) == 0 && ApplicationPeer::doCount( $oCriteriaDraft ) == 0)
  61. ;
  62. G::header( 'location: users_Delete?USR_UID=' . $USR_UID );
  63. $oDataset = ApplicationPeer::doSelectRS( $oCriteriaToDo );
  64. $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
  65. $oDataset->next();
  66. while ($aRow = $oDataset->getRow()) {
  67. $c ++;
  68. $oTemplatePower->newBlock( 'cases' );
  69. $aKeys = array_keys( $aRow );
  70. foreach ($aKeys as $sKey) {
  71. $oTemplatePower->assign( $sKey, $aRow[$sKey] );
  72. }
  73. $aUsers = array ($_GET['USR_UID']
  74. );
  75. $aAux1 = $oTasks->getGroupsOfTask( $aRow['TAS_UID'], 1 );
  76. foreach ($aAux1 as $aGroup) {
  77. $aAux2 = $oGroups->getUsersOfGroup( $aGroup['GRP_UID'] );
  78. foreach ($aAux2 as $aUser) {
  79. if (! in_array( $aUser['USR_UID'], $aUsers )) {
  80. $aUsers[] = $aUser['USR_UID'];
  81. $aData = $oUser->load( $aUser['USR_UID'] );
  82. $oTemplatePower->newBlock( 'users' );
  83. $oTemplatePower->assign( 'USR_UID', $aUser['USR_UID'] );
  84. $oTemplatePower->assign( 'USR_FULLNAME', $aData['USR_FIRSTNAME'] . ' ' . $aData['USR_LASTNAME'] . ' (' . $aData['USR_USERNAME'] . ')' );
  85. }
  86. }
  87. }
  88. $aAux1 = $oTasks->getUsersOfTask( $aRow['TAS_UID'], 1 );
  89. foreach ($aAux1 as $aUser) {
  90. if (! in_array( $aUser['USR_UID'], $aUsers )) {
  91. $aUsers[] = $aUser['USR_UID'];
  92. $aData = $oUser->load( $aUser['USR_UID'] );
  93. $oTemplatePower->newBlock( 'users' );
  94. $oTemplatePower->assign( 'USR_UID', $aUser['USR_UID'] );
  95. $oTemplatePower->assign( 'USR_FULLNAME', $aData['USR_FIRSTNAME'] . ' ' . $aData['USR_LASTNAME'] . ' (' . $aData['USR_USERNAME'] . ')' );
  96. }
  97. }
  98. $oTemplatePower->gotoBlock( 'cases' );
  99. $oTemplatePower->assign( 'ID_STATUS', G::LoadTranslation( 'ID_TO_DO' ) );
  100. $oTemplatePower->assign( 'ID_NO_REASSIGN', G::LoadTranslation( 'ID_NO_REASSIGN' ) );
  101. $oDataset->next();
  102. }
  103. $oDataset = ApplicationPeer::doSelectRS( $oCriteriaDraft );
  104. $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
  105. $oDataset->next();
  106. while ($aRow = $oDataset->getRow()) {
  107. $c ++;
  108. $oTemplatePower->newBlock( 'cases' );
  109. $aKeys = array_keys( $aRow );
  110. foreach ($aKeys as $sKey) {
  111. $oTemplatePower->assign( $sKey, $aRow[$sKey] );
  112. }
  113. $aUsers = array ($_GET['USR_UID']
  114. );
  115. $aAux1 = $oTasks->getGroupsOfTask( $aRow['TAS_UID'], 1 );
  116. foreach ($aAux1 as $aGroup) {
  117. $aAux2 = $oGroups->getUsersOfGroup( $aGroup['GRP_UID'] );
  118. foreach ($aAux2 as $aUser) {
  119. if (! in_array( $aUser['USR_UID'], $aUsers )) {
  120. $aUsers[] = $aUser['USR_UID'];
  121. $aData = $oUser->load( $aUser['USR_UID'] );
  122. $oTemplatePower->newBlock( 'users' );
  123. $oTemplatePower->assign( 'USR_UID', $aUser['USR_UID'] );
  124. $oTemplatePower->assign( 'USR_FULLNAME', $aData['USR_FIRSTNAME'] . ' ' . $aData['USR_LASTNAME'] . ' (' . $aData['USR_USERNAME'] . ')' );
  125. }
  126. }
  127. }
  128. $aAux1 = $oTasks->getUsersOfTask( $aRow['TAS_UID'], 1 );
  129. foreach ($aAux1 as $aUser) {
  130. if (! in_array( $aUser['USR_UID'], $aUsers )) {
  131. $aUsers[] = $aUser['USR_UID'];
  132. $aData = $oUser->load( $aUser['USR_UID'] );
  133. $oTemplatePower->newBlock( 'users' );
  134. $oTemplatePower->assign( 'USR_UID', $aUser['USR_UID'] );
  135. $oTemplatePower->assign( 'USR_FULLNAME', $aData['USR_FIRSTNAME'] . ' ' . $aData['USR_LASTNAME'] . ' (' . $aData['USR_USERNAME'] . ')' );
  136. }
  137. }
  138. $oTemplatePower->gotoBlock( 'cases' );
  139. $oTemplatePower->assign( 'ID_STATUS', G::LoadTranslation( 'ID_DRAFT' ) );
  140. $oTemplatePower->assign( 'ID_NO_REASSIGN', G::LoadTranslation( 'ID_NO_REASSIGN' ) );
  141. $oDataset->next();
  142. }
  143. $oTemplatePower->gotoBlock( '_ROOT' );
  144. $oTemplatePower->assign( 'ID_NUMBER', '#' );
  145. $oTemplatePower->assign( 'ID_CASE', G::LoadTranslation( 'ID_CASE' ) );
  146. $oTemplatePower->assign( 'ID_TASK', G::LoadTranslation( 'ID_TASK' ) );
  147. $oTemplatePower->assign( 'ID_PROCESS', G::LoadTranslation( 'ID_PROCESS' ) );
  148. $oTemplatePower->assign( 'ID_STATUS', G::LoadTranslation( 'ID_STATUS' ) );
  149. $oTemplatePower->assign( 'ID_REASSIGN_TO', G::LoadTranslation( 'ID_REASSIGN_TO' ) );
  150. $oTemplatePower->assign( 'ID_REASSIGN', G::LoadTranslation( 'ID_REASSIGN' ) );
  151. $oTemplatePower->assign( 'USR_UID', $_GET['USR_UID'] );
  152. $oTemplatePower->assign( 'CONT', $c );
  153. $G_PUBLISH->AddContent( 'template', '', '', '', $oTemplatePower );
  154. }
  155. G::RenderPage( 'publish' );
  156. } catch (Exception $oException) {
  157. die( $oException->getMessage() );
  158. }