Merged in victorsl/processmaker/PM-832 (pull request #1121)
PM-832 "Comportamiento Case Sheduler del tipo Monthly y Weekly" SOLVED
This commit is contained in:
@@ -620,6 +620,8 @@ class CaseScheduler extends BaseCaseScheduler
|
||||
{
|
||||
$nActualDate = $currentDate . " " . $sActualTime;
|
||||
$dEstimatedDate = '';
|
||||
$sWeeks = trim($sWeeks, "|");
|
||||
|
||||
switch ($sOption) {
|
||||
case '1':
|
||||
switch ($sValue) {
|
||||
@@ -644,27 +646,27 @@ class CaseScheduler extends BaseCaseScheduler
|
||||
case '2':
|
||||
if (strlen( $sWeeks ) > 0) {
|
||||
//die($sActualTime);
|
||||
$nDayOfTheWeek = date( 'w', strtotime( $sActualTime ) );
|
||||
$nDayOfTheWeek = (int)(date("w", strtotime($sActualTime)));
|
||||
//$nDayOfTheWeek = 1;
|
||||
//echo "*".$nDayOfTheWeek."*";
|
||||
$aWeeks = explode( '|', $sWeeks );
|
||||
$nFirstDay = $aWeeks[0];
|
||||
$nFirstDay = (int)($aWeeks[0]) - 1;
|
||||
$aDaysWeek = array ('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
|
||||
$nFirstDay = $nFirstDay - 1;
|
||||
//echo "¨¨".$nFirstDay."¨¨";
|
||||
$nDayOfTheWeek = ($nDayOfTheWeek == 0) ? 7 : $nDayOfTheWeek;
|
||||
//echo $nDayOfTheWeek;
|
||||
$day = 0;
|
||||
$nSW = 0;
|
||||
$nNextDay = 0;
|
||||
$flagIsTheSameDay = false;
|
||||
|
||||
foreach ($aWeeks as $value) {
|
||||
if ($value > $nDayOfTheWeek) {
|
||||
$nNextDay = $value - 1;
|
||||
if ($nDayOfTheWeek <= (int)($value)) {
|
||||
$day = (int)($value) - 1;
|
||||
$nSW = 1;
|
||||
$flagIsTheSameDay = $nDayOfTheWeek == (int)($value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($nSW == 1) {
|
||||
$dEstimatedDate = date( 'Y-m-d', strtotime( "$nActualDate next " . $aDaysWeek[$nNextDay] ) ) . ' ' . date( 'H:i:s', strtotime( $sActualTime ) );
|
||||
$dEstimatedDate = date("Y-m-d", strtotime("$nActualDate " . (($flagIsTheSameDay)? "this" : "next") . " " . $aDaysWeek[$day])) . " " . date("H:i:s", strtotime($sActualTime));
|
||||
} else {
|
||||
$nEveryDays = $sDaysPerformTask;
|
||||
// $nEveryDays = '1';
|
||||
|
||||
@@ -158,19 +158,19 @@ try {
|
||||
$sValue = $nStartDay;
|
||||
break;
|
||||
}
|
||||
echo "<br>sOption: " . $sOption;
|
||||
|
||||
if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) {
|
||||
if ($sStartDay == '') {
|
||||
$sStartDay = date( 'Y-m-d' );
|
||||
}
|
||||
// echo $sOption."*". $sValue."*". $nActualTime."*". $sDaysPerformTask."*". $sWeeks."*". $sStartDay ."*". $sMonths."<br>";
|
||||
$dCurrentDay = date( "d" );
|
||||
$dCurrentMonth = date( "m" );
|
||||
|
||||
$dCurrentMonth = (int)(date("m"));
|
||||
$dCurrentDay = (int)(date("d"));
|
||||
$aStartDay = explode( "|", $aData['SCH_START_DAY'] );
|
||||
if ($sOption == '3' && $aStartDay[0] == '1') {
|
||||
$monthsArray = explode( "|", $sMonths );
|
||||
foreach ($monthsArray as $row) {
|
||||
if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) {
|
||||
if ((int)($row) == $dCurrentMonth && $dCurrentDay <= (int)($aStartDay[1])) {
|
||||
$startTime = $_POST['form']['SCH_START_TIME'] . ":00";
|
||||
$aData['SCH_TIME_NEXT_RUN'] = date( 'Y' ) . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime;
|
||||
break;
|
||||
@@ -181,8 +181,6 @@ try {
|
||||
} else {
|
||||
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp );
|
||||
}
|
||||
// print_r ($aData['SCH_TIME_NEXT_RUN']);
|
||||
// die;
|
||||
} else {
|
||||
if ($sOption == '4') {
|
||||
$aData['SCH_END_DATE'] = $aData['SCH_START_TIME'];
|
||||
|
||||
Reference in New Issue
Block a user