예제 #1
0
 function grafico($codigo = '', $mes = '', $anio = '')
 {
     $this->load->library('Graph');
     if (empty($mes) and empty($anio)) {
         return;
     }
     $fechad = $anio . str_pad($mes, 2, "0", STR_PAD_LEFT) . '01';
     $fechah = $anio . str_pad($mes, 2, "0", STR_PAD_LEFT) . '31';
     $mSQL = "SELECT DATE_FORMAT(fecha, '%d')as fecha, codigo, sum(cantidad) cantidad, IF(sum(cantidad)<=salcant,sum(cantidad),salcant)*(salcant>0)as salcant \n\t\tFROM costos \n\t\tWHERE codigo='{$codigo}' AND fecha>='{$fechad}' AND fecha<='{$fechah}' AND origen='3I'\n\t\tGROUP BY fecha HAVING cantidad>0";
     echo $mSQL;
     $maxval = 0;
     $query = $this->db->query($mSQL);
     foreach ($query->result() as $row) {
         if ($row->cantidad > $maxval) {
             $maxval = $row->cantidad;
         }
         $fecha[] = $row->fecha;
         $codigo = $row->codigo;
         $data_1[] = $row->cantidad;
         $data_2[] = $row->salcant;
     }
     $fechadd = dbdate_to_human($fechad);
     $fechahh = dbdate_to_human($fechah);
     $nombre = $this->datasis->dameval("SELECT descrip FROM sinv WHERE codigo='{$codigo}'");
     $om = 1;
     while ($maxval / $om > 100) {
         $om = $om * 10;
     }
     $bar_1 = new bar_glass(55, '#D54C78', '#C31812');
     $bar_1->key('Ventas', 10);
     $bar_2 = new line_dot(3, 5, '#0066CC', 'Downloads', 10);
     $bar_2->key('Existencias', 10);
     for ($i = 0; $i < count($data_1); $i++) {
         $bar_1->add_data_tip($data_1[$i] / $om, graph::esc(number_format($data_1[$i], 2, ',', '.')));
         $bar_2->add_data_tip($data_2[$i] / $om, graph::esc(number_format($data_2[$i], 2, ',', '.')));
         //  $bar_1->links[]= site_url("/inventario/gproductos/mensuales/$anio/".str_replace('/',':slach:',$proveed[$i]));
         //  $bar_1->links[]= site_url("/inventario/gproductos/mensuales/$anio/".raencode($proveed[$i]));
     }
     $g = new graph();
     $g->set_is_decimal_separator_comma(1);
     if ($maxval > 0) {
         $g->title('Grafico de ' . $nombre . ' Desde ' . $fechadd . ' Hasta ' . $fechahh, '{font-size: 16px; color:#0F3054}');
         $g->data_sets[] = $bar_1;
         $g->data_sets[] = $bar_2;
         $g->set_x_labels($fecha);
         $g->set_x_label_style(10, '#000000', 2, 1);
         $g->set_x_axis_steps(10);
         $g->set_x_legend('Fecha', 14, '#004381');
         $g->bg_colour = '#FFFFFF';
         $g->set_tool_tip('#key#<br>Fecha: #x_label# <br>Cantidad: #tip#');
         $g->set_y_max(ceil($maxval / $om));
         $g->y_label_steps(5);
         //$g->set_y_legend('Ventas x '.number_format($om,0,'','.').' (Bs)', 16, '#004381' );
     } else {
         $g->title('No existen datos con la informacion seleccionada', '{font-size:18px; color: #d01f3c}');
     }
     $g->bg_colour = '#FFFFFF';
     echo utf8_encode($g->render());
 }