public function view_report($report = "consumption") { $data['title'] = "System Reports"; $data['content_view'] = "reports_view"; if ($report == "consumption") { redirect("consumption_management"); } if ($report == "issues") { redirect("vaccine_issues_management"); } if ($report == "district_stock_outs") { redirect("district_stock_out"); } //Code for getting the Store summaries at the various vaccine store around the country if ($report == "store_summaries") { $data['quick_link'] = "store_summaries"; $regions = Regions::getAllRegions(); $vaccines = Vaccines::getAll_Minified(); $national_values = array(); $regional_values = array(); $this_month = date('m'); for ($month = 1; $month <= $this_month; $month++) { foreach ($vaccines as $vaccine) { $timestamp = date("U", mktime(0, 0, 0, $month, 1, date("Y"))); $national_balance = Disbursements::getNationalPeriodBalance($vaccine->id, $timestamp); $national_values[$month][$vaccine->id] = $national_balance; //Get the balance at that time foreach ($regions as $region) { $regional_balance = Disbursements::getRegionalPeriodBalance($region->id, $vaccine->id, $timestamp); $regional_values[$month][$region->id][$vaccine->id] = $regional_balance; //Get the Balance at that time } } } $data['national_values'] = $national_values; $data['regional_values'] = $regional_values; $data['regional_stores'] = $regions; } else { if ($report == "store_tallies") { $post = $this->input->post(); if ($post) { $login_level = $this->session->userdata('user_group'); $vaccines = Vaccines::getAll_Minified(); $from = strtotime($this->input->post('from')); $to = strtotime($this->input->post('to')); $this->session->set_userdata(array("store_tallies_from" => $from, "store_tallies_to" => $to)); $items = 20; $order_by = "Quantity"; $order = "DESC"; $offset = 0; $district_or_region_id = $this->session->userdata('district_province_id'); $tallies = null; if ($login_level == 1) { //National Level foreach ($vaccines as $vaccine) { $tallies[$vaccine->id] = Disbursements::getNationalRecipientTally($vaccine->id, $from, $to, $offset, $items, $order_by, $order); } } if ($login_level == 2) { //Regional Level foreach ($vaccines as $vaccine) { $tallies[$vaccine->id] = Disbursements::getRegionalRecipientTally($district_or_region_id, $vaccine->id, $from, $to, $offset, $items, $order_by, $order); } } $data['tallies'] = $tallies; } $data['quick_link'] = "store_tallies"; } else { if ($report == "vaccine_movement") { $post = $this->input->post(); if ($post) { $login_level = $this->session->userdata('user_group'); $vaccines = Vaccines::getAll_Minified(); $from = strtotime($this->input->post('from')); $to = strtotime($this->input->post('to')); $items = 20; $order_by = "Quantity"; $order = "DESC"; $offset = 0; $district_or_region_id = $this->session->userdata('district_province_id'); $received = null; $issued = null; $beginning_balance = null; $current_balance = null; if ($login_level == 1) { //National Level foreach ($vaccines as $vaccine) { $received[$vaccine->id] = Disbursements::getNationalReceiptsTotals($vaccine->id, $from, $to); $issued[$vaccine->id] = Disbursements::getNationalIssuesTotals($vaccine->id, $from, $to); $beginning_balance[$vaccine->id] = Disbursements::getNationalPeriodBalance($vaccine->id, $from); $current_balance[$vaccine->id] = Disbursements::getNationalPeriodBalance($vaccine->id, $to); } } if ($login_level == 2) { //Regional Level /*foreach($vaccines as $vaccine){ $tallies[$vaccine->id] = Disbursements::getRegionalRecipientTally($district_or_region_id,$vaccine->id,$from,$to,$offset,$items,$order_by,$order); }*/ } $data['received'] = $received; $data['issued'] = $issued; $data['beginning_balance'] = $beginning_balance; $data['current_balance'] = $current_balance; } $data['quick_link'] = "vaccine_movement"; } } } $data['report'] = $report; $this->base_params($data); }
function download_forecast($vaccine = 0, $year = "0", $national = 0, $region = 0, $district = 0) { $population = 0; if ($year == "0") { $year = date('Y'); } $title = ""; if ($national > 0) { $title = "Consumption vs. Forecast at Central Vaccine Store"; $population = regional_populations::getNationalPopulation($year); } if ($region > 0) { $region_object = Regions::getRegion($region); $title = "Consumption vs. Forecast at " . $region_object->name; $population = Regional_Populations::getRegionalPopulation($region, $year); } if ($district > 0) { $district_object = Districts::getDistrict($district); $title = "Consumption vs. Forecast at " . $district_object->name . " District Store"; $population = District_Populations::getDistrictPopulation($district, $year); } $population = str_replace(",", "", $population); $vaccines = Vaccines::getAll_Minified(); $date = date("m/d/Y"); $months_required = array(); $data_buffer = "\n\t\t\t<style>\n\t\t\ttable.data-table {\n\t\t\ttable-layout: fixed;\n\t\t\twidth: 700px;\n\t\t\tborder-collapse:collapse;\n\t\t\tborder:1px solid black;\n\t\t\t}\n\t\t\ttable.data-table td, th {\n\t\t\twidth: 100px;\n\t\t\tborder: 1px solid black;\n\t\t\t}\n\t\t\t.leftie{\n\t\t\t\ttext-align: left !important;\n\t\t\t}\n\t\t\t.center{\n\t\t\t\ttext-align: center !important;\n\t\t\t}\n\t\t\t.right{\n\t\t\t\ttext-align: right !important;\n\t\t\t}\n\t\t\t</style> \n\t\t\t"; $data_buffer .= "<table class='data-table'>"; $data_buffer .= $this->echoTitles(); //Get the start and end dates for all the quarters $quarter_one_start = date("U", mktime(0, 0, 0, 1, 1, $year)); $quarter_one_end = date("U", mktime(0, 0, 0, 3, 31, $year)); $quarter_two_start = date("U", mktime(0, 0, 0, 4, 1, $year)); $quarter_two_end = date("U", mktime(0, 0, 0, 6, 30, $year)); $quarter_three_start = date("U", mktime(0, 0, 0, 7, 1, $year)); $quarter_three_end = date("U", mktime(0, 0, 0, 9, 30, $year)); $quarter_four_start = date("U", mktime(0, 0, 0, 10, 1, $year)); $quarter_four_end = date("U", mktime(0, 0, 0, 12, 31, $year)); foreach ($vaccines as $vaccine_object) { $months_of_stock = array(); $now = date('U'); //Get the consumption for each of the quarters //Set the maximum value $max_value = 0; //Get the consumption for each of the quarters if ($national > 0) { $quarter_one_consumption = Disbursements::getNationalIssuesTotals($vaccine_object->id, $quarter_one_start, $quarter_one_end); $quarter_two_consumption = Disbursements::getNationalIssuesTotals($vaccine_object->id, $quarter_two_start, $quarter_two_end); $quarter_three_consumption = Disbursements::getNationalIssuesTotals($vaccine_object->id, $quarter_three_start, $quarter_three_end); $quarter_four_consumption = Disbursements::getNationalIssuesTotals($vaccine_object->id, $quarter_four_start, $quarter_four_end); } if ($region > 0) { $quarter_one_consumption = Disbursements::getRegionalIssuesTotals($vaccine_object->id, $quarter_one_start, $quarter_one_end, $region); $quarter_two_consumption = Disbursements::getRegionalIssuesTotals($vaccine_object->id, $quarter_two_start, $quarter_two_end, $region); $quarter_three_consumption = Disbursements::getRegionalIssuesTotals($vaccine_object->id, $quarter_three_start, $quarter_three_end, $region); $quarter_four_consumption = Disbursements::getRegionalIssuesTotals($vaccine_object->id, $quarter_four_start, $quarter_four_end, $region); } if ($district > 0) { $quarter_one_consumption = Disbursements::getDistrictIssuesTotals($district, $vaccine_object->id, $quarter_one_start, $quarter_one_end); $quarter_two_consumption = Disbursements::getDistrictIssuesTotals($district, $vaccine_object->id, $quarter_two_start, $quarter_two_end); $quarter_three_consumption = Disbursements::getDistrictIssuesTotals($district, $vaccine_object->id, $quarter_three_start, $quarter_three_end); $quarter_four_consumption = Disbursements::getDistrictIssuesTotals($district, $vaccine_object->id, $quarter_four_start, $quarter_four_end); } $monthly_requirement = ceil($vaccine_object->Doses_Required * $population * $vaccine_object->Wastage_Factor / 12); $quarterly_consumption = $monthly_requirement * 3; $data_buffer .= "<tr><td class='leftie'>" . $vaccine_object->Name . "</td><td class='right'>" . number_format($quarterly_consumption) . "</td><td class='right'>" . number_format($quarter_one_consumption) . "</td><td class='right'>" . number_format($quarterly_consumption - $quarter_one_consumption) . "</td><td class='right'>" . number_format($quarter_two_consumption) . "</td><td class='right'>" . number_format($quarterly_consumption - $quarter_two_consumption) . "</td><td class='right'>" . number_format($quarter_three_consumption) . "</td><td class='right'>" . number_format($quarterly_consumption - $quarter_three_consumption) . "</td><td class='right'>" . number_format($quarter_four_consumption) . "</td><td class='right'>" . number_format($quarterly_consumption - $quarter_four_consumption) . "</td></tr>"; } $data_buffer .= "</table>"; $this->generatePDF($data_buffer, $year, $title); echo $data_buffer; }