Beispiel #1
0
function create_chart_data_object($type, $y_values_array)
{
    switch ($type) {
        case 'line':
            $data_object = new OFC_Charts_Line();
            if (array_var($y_values_array, 'color')) {
                $data_object->set_colour(array_var($y_values_array, 'color'));
            }
            if (array_var($y_values_array, 'dot_size')) {
                $data_object->set_dot_size(array_var($y_values_array, 'dot_size'));
            }
            if (array_var($y_values_array, 'halo_size')) {
                $data_object->set_halo_size(array_var($y_values_array, 'halo_size'));
            }
            if (array_var($y_values_array, 'text')) {
                $data_object->set_key(array_var($y_values_array, 'text', ''), array_var($y_values_array, 'text_size', 10));
            }
            if (array_var($y_values_array, 'width')) {
                $data_object->set_width(array_var($y_values_array, 'width'));
            }
            $values_data = array_var($y_values_array, 'values', array());
            break;
        case 'bar':
            $data_object = new OFC_Charts_Bar_3d();
            if (array_var($y_values_array, 'color')) {
                $data_object->set_colour(array_var($y_values_array, 'color'));
            }
            if (array_var($y_values_array, 'tooltip')) {
                $data_object->set_tooltip(array_var($y_values_array, 'tooltip'));
            }
            if (array_var($y_values_array, 'text')) {
                $data_object->set_key(array_var($y_values_array, 'text', ''), array_var($y_values_array, 'text_size', 10));
            }
            if (array_var($y_values_array, 'alpha')) {
                $data_object->set_alpha(array_var($y_values_array, 'alpha'));
            }
            $values_data = array_var($y_values_array, 'values', array());
            break;
        case 'bar-stack':
            $data_object = new OFC_Charts_Bar_Stack();
            if (array_var($y_values_array, 'color')) {
                $data_object->set_colour(array_var($y_values_array, 'color'));
            }
            if (array_var($y_values_array, 'colors')) {
                $data_object->{'colours'} = array_var($y_values_array, 'colors');
            }
            if (array_var($y_values_array, 'keys')) {
                $data_object->{'keys'} = array_var($y_values_array, 'keys');
            }
            if (array_var($y_values_array, 'tooltip')) {
                $data_object->set_tooltip(array_var($y_values_array, 'tooltip'));
            }
            if (array_var($y_values_array, 'text')) {
                $data_object->set_key(array_var($y_values_array, 'text', ''), array_var($y_values_array, 'text_size', 10));
            }
            if (array_var($y_values_array, 'alpha')) {
                $data_object->set_alpha(array_var($y_values_array, 'alpha'));
            }
            $data = array_var($y_values_array, 'values', array());
            foreach ($data as $d) {
                $data_object->append_stack($d);
            }
            break;
        default:
            continue;
    }
    if (isset($values_data)) {
        $data_object->set_values($values_data);
    }
    return $data_object;
}
<?php

require_once(OFC_LIBRARY_PATH . '/lib/OFC/OFC_Chart.php');

$title = new OFC_Elements_Title( date("D M d Y") );

$bar_stack = new OFC_Charts_Bar_Stack();
$bar_stack->append_stack( array( 2.5, 5 ) );
$bar_stack->append_stack( array( 7.5 ) );
$bar_stack->append_stack( array( 5, new OFC_Charts_Bar_Stack_Value(5, '#ff0000') ) );
$bar_stack->append_stack( array( 2, 2, 2, 2, new OFC_Charts_Bar_Stack_Value(2, '#ff00ff') ) );

$y = new OFC_Elements_Axis_Y();
$y->set_range( 0, 14, 7 );

$x = new OFC_Elements_Axis_X();
$x->set_labels( array( 'a', 'b', 'c', 'd' ) );

$chart = new OFC_Chart();
$chart->set_title( $title );
$chart->add_element( $bar_stack );
$chart->set_x_axis( $x );
$chart->add_y_axis( $y );

echo $chart->toPrettyString();
 /**
  * @Route("/{anno}/{mes}/{assigned_user_id}/{width}/panel_detalle_discovery_metas_in_progress_data.json", name="panel_detalle_discovery_metas_in_progress_data", defaults={"anno"="2013","mes"="01"}, options={"expose"=true})
  */
 public function panelDetalleDiscoveryMetasPorAgenteDataAction($anno, $mes, $assigned_user_id, $width)
 {
     include_once __DIR__ . "/../Util/OFC/OFC_Chart.php";
     $title = new \OFC_Elements_Title('STATUS DE LAS REUNIONES V/S METAS DEL AGENTE ');
     $bar = new \OFC_Charts_Bar_Stack();
     $sql = "SELECT CONCAT(users.user_name,' ',users.first_name,' ', users.last_name) as owner, meetings.assigned_user_id, (SELECT count(*) FROM meetings m WHERE parent_type = 'Accounts' AND m.deleted = 0 AND YEAR(m.date_start) = 2015 AND m.assigned_user_id = meetings.assigned_user_id ) as meetings,(SELECT count(*) FROM meetings m2 INNER JOIN accounts_opportunities ON m2.parent_id = accounts_opportunities.opportunity_id  WHERE parent_type = 'Opportunities' AND 1 AND m2.deleted = 0 AND YEAR(m2.date_start) = " . $anno . " ) as meetings_opportunities FROM meetings INNER JOIN users ON users.id = meetings.assigned_user_id AND meetings.deleted = 0 AND meetings.assigned_user_id = '" . $assigned_user_id . "' GROUP BY assigned_user_id HAVING (meetings + meetings_opportunities) > 0;";
     $stmt = $this->container->get('doctrine')->getManager()->getConnection()->prepare($sql);
     $stmt->execute();
     //Valores
     $valor = 0;
     foreach ($stmt->fetchAll() as $data) {
         $valor = (int) $data['meetings'] + (int) $data['meetings_opportunities'];
         $bar->append_stack(array(new \OFC_Charts_Bar_Stack_Value((int) $data['meetings'], '#ff0000'), new \OFC_Charts_Bar_Stack_Value((int) $data['meetings_opportunities'], '#1240AB')));
     }
     //Metas
     $sql = "SELECT sem_1_c, sem_2_c FROM cammr_metasreuniones INNER JOIN cammr_metasreuniones_cstm ON cammr_metasreuniones_cstm.id_c = cammr_metasreuniones.id WHERE deleted = 0 AND anno_c = '" . $anno . "' AND user_id_c = '" . $assigned_user_id . "';";
     $stmt = $this->container->get('doctrine')->getManager()->getConnection()->prepare($sql);
     $stmt->execute();
     $meta = 0;
     foreach ($stmt->fetchAll() as $data) {
         $meta = $data['sem_1_c'] + $data['sem_2_c'];
         $bar->append_stack(array(new \OFC_Charts_Bar_Stack_Value((int) $data['sem_1_c'], '#ff0000'), new \OFC_Charts_Bar_Stack_Value((int) $data['sem_2_c'], '#1240AB')));
     }
     $y = new \OFC_Elements_Axis_Y();
     $max = round(max($valor, $meta) * 1.15, 0);
     $y->set_range(0, $max, round($max, -3));
     $x = new \OFC_Elements_Axis_X();
     $x->set_labels_from_array(array('Reuniones', 'Metas'));
     $chart = new \OFC_Chart();
     $chart->set_bg_colour('#FFFFFF');
     $chart->set_title($title);
     $chart->add_element($bar);
     $chart->set_x_axis($x);
     $chart->add_y_axis($y);
     $response = new Response($chart->toPrettyString());
     $response->headers->set('Content-Type', 'application/json');
     return $response;
 }