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; }