public static function facilityLevelsArr() { $arr = array(); foreach (FacilityLevel::all() as $fl) { $arr[$fl->id] = $fl->facility_level; } return $arr; }
public function show($time = "") { if (empty($time)) { $time = date("Y"); } $regions = Region::regionsArr(); $districts = District::districtsArr(); $facility_levels = FacilityLevel::facilityLevelsArr(); $count_positives = Sample::countPositives($time); $av_positivity = Sample::avPositivity($time); $count_positives_arr = Sample::countPositives2($time); $av_positivity_arr = Sample::avPositivity2($time); return view('db/show', compact("time", "regions", "districts", "facility_levels", "count_positives", "av_positivity", "count_positives_arr", "av_positivity_arr")); }
public static function niceCounts($year = "", $postives = "", $art_inits = "", $grpby_fclts = "") { if (empty($year)) { $year = date("Y"); } $res = Sample::leftjoin("batches AS b", "b.id", "=", "s.batch_id")->leftjoin("facilities AS f", "f.id", "=", "b.facility_id")->leftjoin("districts AS d", "d.id", "=", "f.districtID")->select(\DB::raw("d.regionID,f.facilityLevelID,f.facility,f.districtID,b.facility_id,month(date_results_entered) AS mth, count(s.id) AS number"))->from("dbs_samples AS s")->whereYear('s.date_results_entered', '=', $year); $res = $postives == 1 ? $res->where('s.accepted_result', '=', 'POSITIVE') : $res; $res = $art_inits == 1 ? $res->where('s.f_ART_initiated', '=', 'YES') : $res; $res = $grpby_fclts == 1 ? $res->groupby("facility_id") : $res->groupby('facilityLevelID', 'regionID', 'districtID', 'mth'); $res = $res->get(); $levels = FacilityLevel::facilityLevelsArr(); $months = \MyHTML::initMonths(); $regs = Location\District::districtsByRegions(); $ret = []; if ($grpby_fclts == 1) { foreach ($res as $row) { $ret[$row->facility_id] = ["facility_id" => $row->facility_id, "facility_name" => $row->facility, "district_id" => $row->districtID, "region_id" => $row->regionID, "level_id" => $row->facilityLevelID, "value" => $row->number]; } } else { foreach ($levels as $lvl_id => $level) { foreach ($regs as $reg_id => $dists) { foreach ($dists as $dist_id => $dist) { $ret[$lvl_id][$reg_id][$dist_id] = $months; } } } foreach ($res as $rw) { $ret[$rw->facilityLevelID][$rw->regionID][$rw->districtID][$rw->mth] = $rw->number; } unset($ret[""]); unset($ret[0]); } return $ret; }