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:
Julio Cesar Laura Avendaño
2014-10-31 16:11:03 -04:00
2 changed files with 17 additions and 17 deletions

View File

@@ -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';

View File

@@ -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'];