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;
 }