<?php


$a_colores[] = "blueviolet";
$a_colores[] = "mediumpurple";
$a_colores[] = "thistle";

$a_colores[] = "AntiqueWhite1";
$a_colores[] = "bisque1";
$a_colores[] = "navajowhite2";
$a_colores[] = "greenyellow";
$a_colores[] = "sienna";
$a_colores[] = "yellow2";
$a_colores[] = "gray5";
$a_colores[] = "violetred4";
$a_colores[] = "plum3";

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);
if(myUser::getUser()->getRoleId() == "sys.ope"){
	$o_ColaboradorBean_Temp = new ColaboradorBean();
  	$o_ColaboradorBean_Temp->setIdColaborador(myUser::getUser()->getIdColaborador()); 
  	$o_ColaboradorBL_Temp = new ColaboradorBL();
  	$o_ColaboradorBeanResult = $o_ColaboradorBL_Temp->busquedaColaborador($o_ColaboradorBean_Temp);
  	$idAdministrador = $o_ColaboradorBeanResult[0]->getIdPadre();
}else{
	$o_ColaboradorBean->setIdPadre(myUser::getUser()->getIdColaborador());
}

$o_ColaboradorBean->setIdRol('sys.ope');


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_PrestamoBean = new PrestamoBean();
				$o_PrestamoBean->setIdColaboradorPrestamo($idColaborador);
				$o_PrestamoBean->setFechaCancelacion($fechaFor);
				$o_PrestamoBean->setFechaCancelacionFin($fechaFor);
				$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
				$a_prestamo = $o_PrestamoDP->selectUtilidades($tipoPeriodo);
				/*echo "<pre>";
				print_r($a_prestamo);
				echo "</pre>";*/
				//exit;
				if(is_array($a_prestamo)){
					foreach ($a_prestamo as $key_b => $a_prestamo_tem){
						$a_totales[$key_b][$fechaFor] = $a_prestamo_tem['total'];
						$a_cantidades[$key_b][$fechaFor] = $a_prestamo_tem['cantidad'];
					}
				}else{
					$a_totales[$idColaborador][$fechaFor] = 0;
					$a_cantidades[$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';
			while($fechaFor <= $fechaFinal){
				$fechaForFinalTemp = date('Y-m-d',strtotime($fechaFor.'+ 1 months'));
				$fechaForFinal = date('Y-m-d',strtotime($fechaForFinalTemp.'- 1 day'));
				$o_PrestamoBean = new PrestamoBean();
				$o_PrestamoBean->setIdColaboradorPrestamo($idColaborador);
				$o_PrestamoBean->setFechaCancelacion($fechaFor);
				$o_PrestamoBean->setFechaCancelacionFin($fechaForFinal);
				$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
				$a_prestamo 	= $o_PrestamoDP->selectUtilidades($tipoPeriodo);
				
				if(is_array($a_prestamo)){
					foreach ($a_prestamo as $key_b => $a_prestamo_tem){
						$a_totales[$key_b][substr($fechaFor,0,7)] += $a_prestamo_tem['total'];
						$a_cantidades[$key_b][substr($fechaFor,0,7)] += $a_prestamo_tem['cantidad'];
						
					}
				}else{
					$a_totales[$idColaborador][substr($fechaFor,0,7)] += 0;
					$a_cantidades[$idColaborador][substr($fechaFor,0,7)] += 0;
				}
				$fechaFor = date('Y-m-d',strtotime($fechaFor .' +1 months'));
				
				
			}
		}
		
	}
}


if(is_array($a_totales)){
	foreach ($a_totales as $IdSucursal => $a_dia_valor) {
		$a_colaboradores[] = $a_NombreColaborador[$IdSucursal];
		$a_fecha = null;
		$a_datos = null;
		$a_datos2 = null;
		foreach ($a_dia_valor as $fecha => $dato){
			$a_fecha[$fecha] = $fecha;
			$a_datos[] = $dato;
			$a_datos2[] = $a_cantidades[$IdSucursal][$fecha];
		}
		$a_conjunto_fechas[] = $a_fecha;
		$a_conjunto_datos[] = $a_datos;
		$a_conjunto_datos2[] = $a_datos2;
	}
}


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

$width_x = 30;

$borde_sup = 15;

if(count($a_fecha) == "1"){
	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;
	}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(2000,1000);	
$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->SetValuePos('center');

	$b1plot->value->Show();
	$b1plot->value->SetFont(FF_FONT0,FS_NORMAL);
	
	$a_b1plotT[$key] = $b1plot;
	
	
}
/*
echo "<pre>";
print_r($a_datos);
echo "</pre>";*/

foreach ($a_conjunto_datos2 as $key => $a_datos2){
	$b2plot = new BarPlot($a_datos2);
	$b2plot->SetFillColor("green");
	$b2plot->SetValuePos('center');
	$b2plot->value->Show();
	$b2plot->value->SetFont(FF_FONT0,FS_NORMAL);
		
	
	$a_b1plot[] = new AccBarPlot(array($a_b1plotT[$key],$b2plot));
	
}
/*
echo "<pre>";
print_r($a_datos2);
echo "</pre>";*/




// Create the grouped bar plot
//$gbplot = new GroupBarPlot($a_b1plot,$a_b21plot);
$gbplot = new GroupBarPlot($a_b1plot);
$gbplot->SetWidth(0.75);

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

$graph->title->Set("Indice de Utilidades (".$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_b1plotT as $key => $b1plot){
	$b1plot->SetValuePos('center');
	$b1plot->SetWidth('120');
	$b1plot->SetWeight('1');
	$b1plot->SetAbsWidth('120');
	$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();





?>