/workflow/engine/methods/cases/cases_Scheduler_Edit.php

https://bitbucket.org/ferOnti/processmaker · PHP · 135 lines · 70 code · 20 blank · 45 comment · 18 complexity · 33c6b14cba425ed946908ecbb52a786f MD5 · raw file

  1. <?php
  2. /**
  3. * cases_SchedulerNew.php
  4. *
  5. * ProcessMaker Open Source Edition
  6. * Copyright (C) 2004 - 2010 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. /*
  27. switch ($RBAC->userCanAccess('PM_FACTORY'))
  28. {
  29. case -2:
  30. G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
  31. G::header('location: ../login/login');
  32. die;
  33. break;
  34. case -1:
  35. G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
  36. G::header('location: ../login/login');
  37. die;
  38. break;
  39. }
  40. */
  41. require_once 'classes/model/CaseScheduler.php';
  42. require_once 'classes/model/Process.php';
  43. require_once 'classes/model/Task.php';
  44. // $G_MAIN_MENU = 'processmaker';
  45. // $G_ID_MENU_SELECTED = 'CASES';
  46. $G_PUBLISH = new Publisher();
  47. G::LoadClass( 'case' );
  48. /* Prepare page before to show */
  49. $oCaseScheduler = new CaseScheduler();
  50. $aFields = $oCaseScheduler->load( $_GET['SCH_UID'] );
  51. $aFields['UID_SCHEDULER'] = "scheduler";
  52. // load according the scheduler option selected daily/weekly/monthly/one time
  53. $nOpt = $aFields['SCH_OPTION'];
  54. switch ($nOpt) {
  55. case 1:
  56. $aStartDay = explode( '|', $aFields['SCH_DAYS_PERFORM_TASK'] );
  57. if ($aStartDay[0] != 3) {
  58. $aFields['SCH_DAYS_PERFORM_TASK'] = $aStartDay[0];
  59. } else {
  60. $aFields['SCH_DAYS_PERFORM_TASK'] = $aStartDay[0];
  61. $aFields['SCH_DAYS_PERFORM_TASK_OPT_3'] = $aStartDay[1];
  62. }
  63. break;
  64. case 2:
  65. $aFields['SCH_WEEK_DAYS_2'] = $aFields['SCH_WEEK_DAYS'];
  66. break;
  67. case 3: // $nStartDay = $aFields['SCH_START_DAY'];
  68. $aStartDay = explode( '|', $aFields['SCH_START_DAY'] );
  69. if ($aStartDay[0] == 1) {
  70. $aFields['SCH_START_DAY_OPT_1'] = $aStartDay[1];
  71. } else {
  72. $aFields['SCH_START_DAY_OPT_2_WEEKS'] = $aStartDay[1];
  73. $aFields['SCH_START_DAY_OPT_2_DAYS_WEEK'] = $aStartDay[2];
  74. }
  75. $aFields['SCH_START_DAY'] = $aStartDay[0];
  76. $aFields['SCH_MONTHS_2'] = $aFields['SCH_MONTHS'];
  77. $aFields['SCH_MONTHS_3'] = $aFields['SCH_MONTHS'];
  78. break;
  79. case 4:
  80. break;
  81. }
  82. $aFields['SCH_START_TIME'] = date( 'H:i', strtotime( $aFields['SCH_START_TIME'] ) );
  83. $aFields['PREV_SCH_START_TIME'] = $aFields['SCH_START_TIME'];
  84. $aFields['SCH_START_DATE'] = date( 'Y-m-d', strtotime( $aFields['SCH_START_DATE'] ) );
  85. $aFields['PREV_SCH_START_DATE'] = $aFields['SCH_START_DATE'];
  86. if (! empty( $aFields['SCH_END_DATE'] )) {
  87. $aFields['SCH_END_DATE'] = date( 'Y-m-d', strtotime( $aFields['SCH_END_DATE'] ) );
  88. $aFields['PREV_SCH_END_DATE'] = date( 'Y-m-d', strtotime( $aFields['SCH_END_DATE'] ) );
  89. }
  90. if ($aFields['SCH_REPEAT_STOP_IF_RUNNING'] == 0 || $aFields['SCH_REPEAT_STOP_IF_RUNNING'] == null) {
  91. $aFields['SCH_REPEAT_STOP_IF_RUNNING'] = null;
  92. } else {
  93. $aFields['SCH_REPEAT_STOP_IF_RUNNING'] = 'On';
  94. }
  95. $aFields['SCH_USER_NAME'] = $aFields['SCH_DEL_USER_NAME'];
  96. $aFields['SCH_USER_PASSWORD'] = 'DefaultPM';
  97. $aFields['SCH_USER_UID'] = $aFields['SCH_DEL_USER_UID'];
  98. $aFields['SCH_START_DATE'] = date( "Y-m-d", strtotime( $aFields['SCH_START_DATE'] ) );
  99. // validating if any of the advanced fields is non empty
  100. // var_dump($aFields['SCH_END_DATE']);
  101. // var_dump($aFields['SCH_REPEAT_EVERY']);
  102. // die();
  103. if ($aFields['SCH_END_DATE'] != null || trim( $aFields['SCH_REPEAT_EVERY'] ) != '') {
  104. $aFields['SCH_ADVANCED'] = 'true';
  105. } else {
  106. $aFields['SCH_ADVANCED'] = 'false';
  107. }
  108. $aFields['PRO_UID_TMP'] = isset( $_GET['PRO_UID'] ) ? $_GET['PRO_UID'] : $_SESSION['PROCESS'];
  109. $aFields['PHP_START_DATE'] = date( 'Y-m-d' );
  110. $aFields['PHP_END_DATE'] = date( 'Y-m-d', mktime( 0, 0, 0, date( 'm' ), date( 'd' ), date( 'Y' ) + 5 ) );
  111. $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Scheduler_Edit.xml', '', $aFields, 'cases_Scheduler_Update' );
  112. G::RenderPage( 'publishBlank', 'blank' );
  113. } catch (Exception $oException) {
  114. die( $oException->getMessage() );
  115. }