Files
luos/workflow/engine/methods/setup/workPeriodGraph.php
2011-09-05 12:47:25 -04:00

102 lines
3.3 KiB
PHP
Executable File

<?php
/**
* workPeriodGraph.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
if (($RBAC_Response=$RBAC->userCanAccess("PM_SETUP"))!=1) return $RBAC_Response;
Header("Content-type: image/jpeg");
G::LoadClass( "workPeriod" );
$dbc = new DBConnection;
$ses = new DBSession( $dbc );
$obj = new workPeriod( $dbc );
$row = $obj->Load ();
$initPeriod1 = $row['initPeriod1']/ 60;
$endPeriod1 = $row['endPeriod1'] / 60;
$initPeriod2 = $row['initPeriod2']/ 60;
$endPeriod2 = $row['endPeriod2'] / 60;
$noWorkingDays = $row['noWorkingDays'];
$cant = 7;
$w = 660;
$h = $cant*18 + 20;
$im= ImageCreate($w, $h);
$width = $w;
$height = $h;
$center_x = intval($width / 2);
$center_y = intval($height / 2);
$bgcolor = ImageColorAllocate($im, 250, 250, 255);
$plomo = ImageColorAllocate($im, 220, 220, 220);
$orange = ImageColorAllocate($im, 255, 64, 64);
$gris = ImageColorAllocate($im, 150, 150, 155);
$white = ImageColorAllocate($im, 255, 255, 255);
$red = ImageColorAllocate($im, 255, 0, 0);
$brown = ImageColorAllocate($im, 160, 80, 0);
$black = ImageColorAllocate($im, 0,0,0);
ImageFilledRectangle($im, 0, 0, $width-1, $height-1, $bgcolor);
ImageRectangle ($im, 0, 0, $width-1, $height-1, $black);
$x = 10; $y = 20;
$x1 = 78;
$x2 = $x1 + 2*6;
$weekday[0] = 'Sunday';
$weekday[1] = 'Monday';
$weekday[2] = 'Tuesday';
$weekday[3] = 'Wednesday';
$weekday[4] = 'Thursday';
$weekday[5] = 'Friday';
$weekday[6] = 'Saturday';
for ( $day = 0; $day < count ($weekday ); $day ++ ) {
ImageString($im, 2, $x, $y, $weekday[$day], $black);
for ($i = 0; $i < 24*6; $i++) {
ImageRectangle($im, $x1+$i* 4, $y, $x1+ ($i+1)*4, $y+12, $plomo );
if ( $i >= $initPeriod1 * 6 && $i < $endPeriod2 * 6 && ( $i < $endPeriod1 * 6 || $i >= $initPeriod2 * 6 ) )
$color = $orange;
else
$color = $white;
if ( isset ( $noWorkingDays[ $day ]) && $noWorkingDays[ $day ] ) $color = $white;
ImageFillToBorder($im, $x1+$i*4+1, $y+1, $plomo, $color );
}
$y+=18;
}
$y = 20;
for ($i = 0; $i <= 24; $i++) {
ImageLine($im, $x1+$i* 4*6, $y-5, $x1+ $i*4*6, $y-5+18*$cant, $gris);
if ( $i < 24 ) {
ImageLine($im, $x2+$i* 4*6, $y-5, $x2+ $i*4*6, $y-5+18*$cant, $plomo);
ImageString($im, 1, $x1+$i* 4*6, $y-10, $i, $black);
}
}
//ImageString($im, 2, 5, 5, $initPeriod1*6 . ", $endPeriod1, $initPeriod2, $endPeriod2 ", $black);
ImageJpeg($im);
?>