Exemplo n.º 1
0
 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;
 }