<?php // content="text/plain; charset=utf-8"

$a_colores[] = "orange";
$a_colores[] = "blue";
$a_colores[] = "gray";
$a_colores[] = "yellow1";
$a_colores[] = "pink";
$a_colores[] = "violetred4";
$a_colores[] = "plum3";
$a_colores[] = "gray5";
$a_colores[] = "silver";
$a_colores[] = "yellow2";
$a_colores[] = "silver";
$a_colores[] = "red";
$a_colores[] = "green";
$a_colores[] = "greenyellow";
$a_colores[] = "sienna";
$a_colores[] = "brown";
$a_colores[] = "maroon";
$a_colores[] = "purple";
$a_colores[] = "orange1";
$a_colores[] = "orange1";
$a_colores[] = "salmon4";
$a_colores[] = "gold1";
$a_colores[] = "azure4";
$a_colores[] = "violet";
$a_colores[] = "lightpink";
$a_colores[] = "blueviolet";
$a_colores[] = "mediumpurple";
$a_colores[] = "thistle";
$a_colores[] = "magenta";
$a_colores[] = "AntiqueWhite1";
$a_colores[] = "bisque1";
$a_colores[] = "navajowhite2";


ViewResponse::getInstance()->setMethodAjax();
if($cboSucursal){
	$o_SucursalBean = new SucursalBean();
	$o_SucursalBean->setIdSucursal($cboSucursal);
	$o_SucursalBL = new SucursalBL();
	$a_Sucursal = $o_SucursalBL->busquedaSucursal($o_SucursalBean);
	foreach($a_Sucursal as $key => $o_sucursal){
		$idAdministrador = $o_sucursal->getIdAdministrador();
	}
	
}else{
	$idAdministrador = myUser::getUser()->getIdColaborador();
}
$o_ColaboradorBean = new ColaboradorBean();
$o_ColaboradorBean->setIdPadre($idAdministrador);
$o_ColaboradorBean->setIdRol('sys.ope');
$o_ColaboradorBean->setEstado('A');
if($cboColaborador){
	$o_ColaboradorBean->setIdColaborador($cboColaborador);
}
$o_ColaboradorBL = new ColaboradorBL();

$a_Colaborador = $o_ColaboradorBL->busquedaColaborador($o_ColaboradorBean);


if(is_array($a_Colaborador)){
	foreach($a_Colaborador as $key => $o_colaborador){
		$idColaborador = $o_colaborador->getIdColaborador();
		$a_NombreColaborador[$idColaborador] = $o_colaborador->getNombreCompleto();
				
		if($tipoPeriodo == 'diario'){
			$fechaActual = date('Y-m-d');
			$t_periodo = "Fechas";
			$fechaFinal = date('Y-m-d',strtotime($txtFechaInicial .' +'.($intervalodias-1).' days'));
			if($fechaFinal > $fechaActual){
				$fechaFinal = $fechaActual;
			}
			//Calculo de datos por cada dia 
			$fechaFor = $txtFechaInicial;
			while($fechaFor <= $fechaFinal){
				
				$o_BalanceDiaBean = new BalanceDiaBean();
				$o_BalanceDiaBean->setIdColaborador($idColaborador);
				$o_BalanceDiaBean->setFechaBalance($fechaFor);
				$o_BalanceDiaBean->setFechaBalanceFinal($fechaFor);
				$o_BalanceDiaDP = new BalanceDiaDP($o_BalanceDiaBean);
				$a_o_balance = $o_BalanceDiaDP->select();
				if(is_array($a_o_balance)){
					foreach ($a_o_balance as $key_b => $o_balance){
						$a_totalBG[$idColaborador][$fechaFor] = $o_balance->getIndicePagos();
					}
				}else{
					$a_totalBG[$idColaborador][$fechaFor] = 0;
				}
				$fechaFor = date('Y-m-d',strtotime($fechaFor .' +1 days'));
				
				
			}
			
		}
		
		if($tipoPeriodo == 'mensual'){
			$t_periodo = "Periodo";
			$fechaActual = date('Y-m-d');
			
			$fechaFinal = date('Y-m-d',strtotime($periodoInicial.'-01 +'.($intervalomeses-1).' months'));
			if($fechaFinal > $fechaActual){
				$fechaFinal = $fechaActual;
			}
			//Calculo de datos por cada dia 
			$fechaFor = $periodoInicial.'-01';
			$fechaForFinal = date('Y-m-d',strtotime($fechaFor.'+ 1 months'));
			$i = (strtotime($fechaForFinal)-strtotime($fechaFor))/86400;
			while($fechaFor <= $fechaFinal){
				$fechaForFinalTemp = date('Y-m-d',strtotime($fechaFor.'+ 1 months'));
				$fechaForFinal = date('Y-m-d',strtotime($fechaForFinalTemp.'- 1 day'));
				$o_BalanceDiaBean = new BalanceDiaBean();
				$o_BalanceDiaBean->setIdColaborador($idColaborador);
				$o_BalanceDiaBean->setFechaBalance($fechaFor);
				$o_BalanceDiaBean->setFechaBalanceFinal($fechaForFinal);
				$o_BalanceDiaDP = new BalanceDiaDP($o_BalanceDiaBean);
				$a_o_balance = $o_BalanceDiaDP->select();
				if(is_array($a_o_balance)){
					foreach ($a_o_balance as $key_b => $o_balance){
						$a_totalBG[$idColaborador][substr($fechaFor,0,7)] += $o_balance->getIndicePagos();
					}
				}else{
					$a_totalBG[$idColaborador][substr($fechaFor,0,7)] += 0;
				}
				$fechaFor = date('Y-m-d',strtotime($fechaFor .' +1 months'));
				
				
			}
		}
		
	}
}


if(is_array($a_totalBG)){
	foreach ($a_totalBG as $IdSucursal => $a_dia_valor) {
		$a_colaboradores[] = $a_NombreColaborador[$IdSucursal];
		$a_fecha = null;
		$a_datos = null;
		foreach ($a_dia_valor as $fecha => $dato){
			if($tipoPeriodo == 'mensual'){
              	$dato = $dato/$i;
			}
			$a_fecha[$fecha] = $fecha;
			$a_datos[] = $dato;
		}
		$a_conjunto_fechas[] = $a_fecha;
		$a_conjunto_datos[] = $a_datos;
	}
}


// Create the graph. These two calls are always required

$width_x = 30;

$borde_sup = 15;
$ancho_gp = '0.95';
if(count($a_fecha) == "1"){
	$ancho_gp = '0.50';
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 7000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 3500/(count($a_colaboradores)*count($a_fecha));
		$borde_sup = 45;
		$ancho_gp = '0.35';
	}elseif(count($a_colaboradores) >= 6 && count($a_colaboradores) <= 8){
		$width = 14000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 7000/(count($a_colaboradores)*count($a_fecha));
		$borde_sup = 45;
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) < 11){
		$width = 15000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 7500/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 40000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 30000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}elseif(count($a_fecha) == "2"){
	$borde_sup = 50;
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 1900/(count($a_colaboradores)*count($a_fecha));
		$heigth = 900/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) <= 11){
		$borde_sup = 21;
		$width = 30000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 15000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 40000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 30000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}elseif(count($a_fecha) == "4"){
	$borde_sup = 45;
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 3500/(count($a_colaboradores)*count($a_fecha));
		$heigth = 1700/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) < 11){
		$borde_sup = 23;
		$width = 62000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 31000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 82000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 40000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}elseif(count($a_fecha) == "5"){
	$borde_sup = 45;
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 3500/(count($a_colaboradores)*count($a_fecha));
		$heigth = 1700/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) < 11){
		$borde_sup = 21;
		$width = 90000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 46000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 40000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 30000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}elseif(count($a_fecha) == "6"){
	
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 4000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 2300/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) < 11){
		$borde_sup = 23;
		$width = 70000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 36000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 40000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 30000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}elseif(count($a_fecha) == "3"){
	$borde_sup = 40;
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 6000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 2000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) < 11){
		$borde_sup = 21;
		$width = 30000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 15000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 40000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 30000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}elseif(count($a_fecha) == "2"){
	if(count($a_colaboradores) >= 1 && count($a_colaboradores) <= 5){
		$width = 2500/(count($a_colaboradores)*count($a_fecha));
		$heigth = 2500/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 9 && count($a_colaboradores) < 11){
		$width = 30000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 15000/(count($a_colaboradores)*count($a_fecha));
	}elseif(count($a_colaboradores) >= 11 && count($a_colaboradores) <= 15){
		$width = 40000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 30000/(count($a_colaboradores)*count($a_fecha));
	}else{
		$width = 37000/(count($a_colaboradores)*count($a_fecha));
		$heigth = 20000/(count($a_colaboradores)*count($a_fecha));
	}
}else{
	$width = 80000/(count($a_colaboradores)*count($a_fecha));
	$heigth = 40000/(count($a_colaboradores)*count($a_fecha));
}

$graph = new Graph(950,500);
$graph->SetScale("textlin");
$graph->SetShadow();

$graph->img->SetMargin(60,60,$borde_sup*count($a_colaboradores),60);

foreach ($a_conjunto_datos as $key => $a_datos){
	$b1plot = new BarPlot($a_datos);
	$b1plot->SetFillColor($a_colores[$key]);
	$b1plot->value->Show();
	$b1plot->value->SetFont(FF_FONT0,FS_NORMAL);
	$a_b1plot[] = $b1plot;
}
// Create the grouped bar plot
$gbplot = new GroupBarPlot($a_b1plot);
$gbplot->SetWidth($ancho_gp);

// ...and add it to the graPH
$graph->Add($gbplot);

$graph->title->Set("Indice de Pagos (".$tipoPeriodo.")");
$graph->yaxis->title->Set("X-Montos");
$graph->xaxis->title->Set("Y-".$tipoPeriodo);
$graph->yaxis->title->SetMargin(20);

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetTickLabels(array_values($a_fecha));


//Legends
foreach ($a_b1plot as $key => $b1plot){
	
	$b1plot->SetLegend($a_colaboradores[$key]);
}
$graph->legend->title;
$graph->legend->Pos("right","left","right","right");
//$graph->legend->SetTitle("Sucursales");
$graph->legend->SetShadow('darkgray@0.8');
$graph->legend->SetFillColor('lightblue@0.1');
// Display the graph
$graph->Stroke();



//Para Legenda

/*echo "<pre>";
print_r($a_sucursales);
echo "</pre>";

echo "<pre>";
print_r($a_conjunto_fechas);
echo "</pre>";


echo "<pre>";
print_r($a_conjunto_datos);
echo "</pre>";
*/

?>
