public function get_county_stock_level_new($commodity_id = null, $category_id = null, $district_id = null, $facility_code = null, $option = null, $report_type = null, $tracer = null) { //reset the values here $tracer = isset($tracer) ? $tracer : null; $report_type = isset($report_type) ? $report_type : null; $commodity_id = $commodity_id == "NULL" ? null : $commodity_id; $district_id = $district_id == "NULL" ? null : $district_id; $option = $option == "NULL" ? null : $option; $category_id = $category_id == "NULL" ? null : $category_id; $facility_code = $facility_code == "NULL" ? null : $facility_code; $option = $option == "NULL" || $option == "null" ? null : $option; $county_id = $this->session->userdata('county_id'); $county_name = counties::get_county_name($county_id); $category_data = $series_data = $series_data_ = $graph_data = $data = array(); $title = ''; $year = date('Y'); $month_ = date('M d'); if ($option == "mos" && $report_type == '1') { return $this->load_stock_level_graph($district_id, $county_id, $facility_code, $commodity_id, $report_type, $tracer); } //check if the district is set $district_data = isset($district_id) && $district_id > 0 ? districts::get_district_name($district_id)->toArray() : null; $district_name_ = isset($district_data) ? " :" . $district_data[0]['district'] . " subcounty" : null; $option_new = isset($option) ? $option : "Ksh"; $option_title = isset($option) ? $option : "Ksh"; $facility_code_ = isset($facility_code) ? facilities::get_facility_name_($facility_code)->toArray() : null; $facility_name = $facility_code_[0]['facility_name']; $commodity_name = isset($commodity_id) ? Commodities::get_details($commodity_id)->toArray() : null; $category_name_ = @$commodity_name[0]['commodity_name']; $commodity_name = isset($category_name_) ? " for " . $category_name_ : null; $title = isset($facility_code) && isset($district_id) ? "{$district_name_} : {$facility_name}" : (isset($district_id) && !isset($facility_code) ? "{$district_name_}" : "{$county_name['county']} county"); $commodity_array = facility_stocks::get_county_drug_stock_level_new($facility_code, $district_id, $county_id, $category_id, $commodity_id, $option_new, $report_type); $mos_array = facility_stocks_temp::get_months_of_stock($district_id, $county_id, $facility_code, $commodity_id, $report_type, $tracer); //echo "<pre>";print_r($commodity_array);echo "</pre>";exit; foreach ($commodity_array as $data) { if ($report_type == "table_data") { if ($commodity_id > 0) { array_push($series_data, array($data['district'], $data["facility_name"], $data["facility_code"], (int) $data['total'])); } else { array_push($series_data, array($data["commodity_name"], $data["facility_name"], $data["name"], (int) $data['total'])); } } else { $series_data = array_merge($series_data, array((int) $data['total'])); $series_data_ = array_merge($series_data_, array(array($data['district'], $data["facility_name"], $data["facility_code"], $data["commodity_name"], (int) $data['total']))); $category_data = array_merge($category_data, array($data["commodity_name"])); } } if ($report_type == "table_data") { if ($commodity_id > 0) { $category_data = array(array("Sub-county", "Facility Name", "Mfl", "TOTAL " . $option_new)); } else { array_push($category_data, array("Commodity Name", "Facility Name", "Sub-county Name", "stocks worth in {$option_title} ")); } $graph_data = array_merge($graph_data, array("table_id" => 'dem_graph_')); $graph_data = array_merge($graph_data, array("table_header" => $category_data)); $graph_data = array_merge($graph_data, array("table_body" => $series_data)); $data['table'] = $this->hcmp_functions->create_data_table($graph_data); $data['table_id'] = "dem_graph_"; return $this->load->view("shared_files/report_templates/data_table_template_v", $data); } elseif ($report_type == "csv_data") { $excel_data = array('doc_creator' => $this->session->userdata('full_name'), 'doc_title' => "Stock level {$commodity_name} {$title} {$month_} {$year}", 'file_name' => "Stock_level_{$commodity_name_}{$title_}{$month_}{$year}"); $row_data = array(); $column_data = array("Sub-county Name", "Facility Name", "MFL Code", "Commodity Name", "stocks worth in {$option_title} "); $excel_data['column_data'] = $column_data; $row_data = array_merge($row_data, $series_data_); //echo "<pre>";print_r($mos_array);echo "</pre>";exit; $excel_data['row_data'] = $row_data; $this->hcmp_functions->create_excel($excel_data); } else { //echo "<pre>";print_r($category_data);echo "</pre>";exit; $graph_type = 'bar'; $graph_data = array_merge($graph_data, array("graph_id" => 'dem_graph_')); $graph_data = array_merge($graph_data, array("graph_title" => "Stock Level {$commodity_name} for {$title} as at {$month_} {$year}")); $graph_data = array_merge($graph_data, array("graph_type" => $graph_type)); $graph_data = array_merge($graph_data, array("graph_yaxis_title" => "Commodity Stock level in {$option_title}")); $graph_data = array_merge($graph_data, array("graph_categories" => $category_data)); $graph_data = array_merge($graph_data, array("series_data" => array('total' => $series_data))); //echo $category_data; $data['graph_id'] = 'dem_graph_'; $data['high_graph'] = $this->hcmp_functions->create_high_chart_graph($graph_data); return $this->load->view("shared_files/report_templates/high_charts_template_v", $data); } }
public static function get_tracer_items_report_new($facility_code, $district_id, $county_id, $category_id, $commodity_id, $option, $from, $to, $graph_type = null, $tracer = null, $option = NULL) { $selection_for_a_month = (!isset($facility_code) || $facility_code == "ALL") && $district_id > 0 || $category_id > 0 ? " f.facility_name as name," : ($commodity_id == "ALL" && isset($facility_code) ? " d.commodity_name as name," : (isset($county_id) && $district_id == "ALL" ? " di.district as name," : $graph_type == 'table_data' && $commodity_id > 0 ? " di.district , f.facility_name, f.facility_code, " : 1)); // echo $option;exit; if ($selection_for_a_month == 1) { $seconds_diff = $to - $from; $date_diff = floor($seconds_diff / 3600 / 24); $selection_for_a_month = $date_diff <= 30 ? "DATE_FORMAT(fs.date_issued,'%d %b %y') as date," : "DATE_FORMAT(fs.date_issued,'%b %y') as date ,"; } $to = date('Y-m-d', $to); $from = date('Y-m-d', $from); switch ($option) { case 'ksh': $computation = "ifnull((SUM(ROUND(fs.qty_issued/ d.total_commodity_units)))*d.unit_cost ,0) AS total,d.id as commodity_id,d.commodity_code,d.unit_size,d.total_commodity_units,d.commodity_name as commodity"; break; case 'units': $computation = "ifnull(CEIL(SUM(fs.qty_issued)),0) AS total,d.id as commodity_id,d.commodity_code,d.unit_size,d.total_commodity_units,d.commodity_name as commodity"; break; case 'packs': $computation = "ifnull(SUM(ROUND(fs.qty_issued/d.total_commodity_units)),0) AS total,d.id as commodity_id,d.commodity_code,d.unit_size,d.total_commodity_units,d.commodity_name as commodity"; break; case 'mos': $r = facility_stocks_temp::get_months_of_stock($district_id, $county_id, $facility_code); return $r; exit; break; default: $computation = "ifnull((SUM(ROUND(fs.qty_issued/ d.total_commodity_units)))*d.unit_cost ,0) AS total,d.id as commodity_id,d.commodity_code,d.unit_size,d.total_commodity_units,d.commodity_name as commodity"; break; } $and_data .= isset($category_id) && $category_id > 0 ? "AND d.commodity_sub_category_id = '{$category_id}'" : null; $and_data = isset($from) && isset($to) ? "AND fs.date_issued between '{$from}' and '{$to}'" : null; $and_data .= isset($commodity_id) && $commodity_id > 0 ? "AND d.id = '{$commodity_id}'" : null; $and_data .= isset($district_id) && $district_id > 0 ? "AND di.id = '{$district_id}'" : null; $and_data .= isset($facility_code) && $facility_code > 0 ? " AND f.facility_code = '{$facility_code}'" : null; $and_data .= $county_id > 0 ? " AND di.county='{$county_id}'" : null; $and = isset($tracer) && $tracer > 0 ? " AND d.tracer_item = 1" : null; $group_by_a_month = isset($facility_code) && isset($district_id) || isset($category_id) ? " GROUP BY fs.commodity_id having total>0" : ($district_id > 0 && !isset($facility_code) ? " GROUP BY f.facility_code having total>0" : " GROUP BY d.id having total>0"); $group_by_a_month = ($facility_code == "ALL" || !isset($facility_code)) && $district_id > 0 ? " GROUP BY f.facility_code having total>0" : $commodity_id == "ALL" && isset($facility_code) ? " GROUP BY fs.commodity_id having total>0" : isset($county_id) && $district_id == "ALL" ? " GROUP BY d.id having total>0" : ($graph_type == 'table_data' && $commodity_id > 0 ? " GROUP BY d.id, f.facility_code having total>0 order by di.district asc, f.facility_name asc" : 1); if ($group_by_a_month == 1) { $group_by_a_month = $date_diff <= 30 ? "GROUP BY DATE_FORMAT(fs.date_issued,'%d %b %y')" : " GROUP BY DATE_FORMAT(fs.date_issued,'%b %y')"; } elseif ($tracer = 1) { $group_by_a_month = $date_diff <= 30 ? "GROUP BY commodity" : $group_by_a_month; } $group_by_a_month = isset($tracer) && $group_by_a_month ? " GROUP BY commodity" : $group_by_a_month; $inserttransaction = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll("SELECT {$selection_for_a_month} {$computation}\n\t\t\tFROM facility_issues fs, facilities f, commodities d, districts di\n\t\t\tWHERE fs.facility_code = f.facility_code\n\t\t\tAND f.district = di.id\n\t\t\tAND fs.qty_issued >0\n\t\t\t{$and} \n\t\t\tAND d.id = fs.commodity_id\n\t\t\t{$and_data}\n\t\t\t{$group_by_a_month}\n\t\t\t"); // echo "SELECT $computation";exit; return $inserttransaction; }