public function dashboard($dashboard = "country_stock_view") { $year = date('Y'); $data['title'] = "Home Page::Dashboards"; $data['content_view'] = "home_view"; $data['vaccines'] = Vaccines::getAll(); $data['styles'] = array("jquery-ui.css", "tab.css"); $data['script_urls'] = array("http://maps.google.com/maps/api/js?sensor=false"); $data['scripts'] = array("FusionCharts/FusionCharts.js", "markerclusterer/src/markerclusterer.js", "markerclusterer/src/jsapi.js", "jquery-ui.js", "tab.js"); $data['dashboard'] = $dashboard; $from = date('U'); $national_balances = array(); $regional_balances = array(); $regional_stores = Regions::getAllRegions(); //Get Statistics for each of the vaccines. foreach ($data['vaccines'] as $vaccine) { $national_balances[$vaccine->id] = array(Disbursements::getNationalPeriodBalance($vaccine->id, $from), Regional_Populations::getNationalPopulation(date('Y'))); foreach ($regional_stores as $regional_store) { $regional_balances[$vaccine->id][$regional_store->id] = array(Disbursements::getRegionalPeriodBalance($regional_store->id, $vaccine->id, $from), Regional_Populations::getRegionalPopulation($regional_store->id, date('Y'))); } } $data['national_stocks'] = $national_balances; $data['regional_stocks'] = $regional_balances; $data['regional_stores'] = $regional_stores; $data['link'] = "home"; $this->load->view('template', $data); }
public function getBalances($phones) { $this->load->database(); $start_date = ""; $data_buffer = ""; $number = ""; @$start_date == date('m/d/y', strtotime('-30 days')); @($end_date = date('m/d/y')); $population = 0; $closing_balance = 0; $sql_consumption = ""; $vaccines = Vaccines::getAll_Minified(); //gets consumption as per every vaccine foreach ($vaccines as $vaccine) { $population = Regional_Populations::getNationalPopulation(date('Y')); $closing_balance = Disbursements::getNationalPeriodBalance($vaccine->id, strtotime($end_date)); $sql_consumption = "select (SELECT max(str_to_date(Date_Issued,'%m/%d/%Y')) FROM `disbursements` where Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_National = '0' and Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_National = '0' and Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"; $query = $this->db->query($sql_consumption); $vaccine_data = $query->row(); $monthly_requirement = ceil($vaccine->Doses_Required * $population * $vaccine->Wastage_Factor / 12); $space1 = urldecode("++++"); $space2 = urldecode("++"); $newline = urldecode("%0A"); $brace = urldecode('('); $brace2 = urldecode(')'); $messsage = urlencode($data_buffer .= $newline . $vaccine->Name . $space2 . number_format($closing_balance + 0) . $space1 . $brace . number_format($closing_balance / $monthly_requirement, 1) . 'MOS' . $brace2); } $this->Send_Balanaces($phones, $messsage); }
public function getBalances($from, $district_or_region, $region_name) # { $this -> load -> database(); $start_date = ""; $number = ""; @$end_date = date('m/d/y'); $closing_balance = 0; //calls the following function from the vaccines model. //the function c=selects data from the vaccines table then stores them in an array //the array is stored in the $vaccines variable $vaccines = Vaccines::getAll_Minified(); //gets consumption as per every vaccine @$message = ""; foreach ($vaccines as $vaccine) { //$district_or_region is the regions id number $region_object = Regions::getRegion($district_or_region); $name = urlencode($vaccine['Name']); $store = urlencode($region_object -> name); $closing_balance = Disbursements::getRegionalPeriodBalance($district_or_region, $vaccine -> id, strtotime($end_date)); $closing_balance_formatted = number_format($closing_balance); if ($closing_balance_formatted == 0) { // echo @$message.= "VACCINES+STOCK+OUTS++AT++%0A+*+DVI+-+SMT*"; $this -> get_phones($name,$district_or_region,$store); } } }
public function plot($vaccine) { // Initiate class $xml = new MY_Xml_writer(); $xml->setRootName('markers'); $xml->initiate(); $year = date('U'); $mapped_districts = Districts::getMappedDistricts(); $mapped_regions = Regions::getAllRegions(); foreach ($mapped_districts as $mapped_district) { //$stock = Disbursements::getDistrictStockAtHand($mapped_district->id,$vaccine); $stock = Disbursements::getDistrictPeriodBalance($mapped_district->id, $vaccine, $year); $xml->startBranch('marker', array('name' => $mapped_district->name . " District Store", 'lat' => $mapped_district->latitude, 'lng' => $mapped_district->longitude, 'facility_id' => $mapped_district->id, 'stock' => $stock)); // start branch 1-1 $xml->endBranch(); } foreach ($mapped_regions as $mapped_region) { // $stock = Disbursements::getRegionalStockAtHand($mapped_region->id,$vaccine); $stock = Disbursements::getRegionalPeriodBalance($mapped_region->id, $vaccine, $year); $xml->startBranch('marker', array('name' => $mapped_region->name, 'lat' => $mapped_region->latitude, 'lng' => $mapped_region->longitude, 'facility_id' => $mapped_region->id, 'stock' => $stock)); // start branch 1-1 $xml->endBranch(); } //$stock = Disbursements::getNationalStockAtHand($vaccine); $stock = Disbursements::getNationalPeriodBalance($vaccine, $year); $xml->startBranch('marker', array('name' => "Central Vaccine Store", 'lat' => "-1.304507", 'lng' => "36.806191", 'facility_id' => 0, 'stock' => $stock)); // start branch 1-1 $xml->endBranch(); // Print the XML to screen $xml->getXml(true); }
public function download() { $this->load->database(); $valid = $this->validate_form(); if ($valid) { $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.right{\n\t\t\t\ttext-align: right !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</style> \n\t\t\t"; $start_date = $this->input->post("start_date"); $end_date = $this->input->post("end_date"); $data_buffer .= "<table class='data-table'>"; $data_buffer .= $this->echoTitles(); $district_or_region = $this->session->userdata('district_province_id'); $identifier = $this->session->userdata('user_identifier'); $population = 0; $opening_balance = 0; $closing_balance = 0; $sql_consumption = ""; $store = ""; $vaccines = Vaccines::getAll_Minified(); foreach ($vaccines as $vaccine) { if ($identifier == 'provincial_officer') { $region_object = Regions::getRegion($district_or_region); $store = $region_object->name; $population = Regional_Populations::getRegionalPopulation($district_or_region, date('Y')); $opening_balance = Disbursements::getRegionalPeriodBalance($district_or_region, $vaccine->id, strtotime($start_date)); $closing_balance = Disbursements::getRegionalPeriodBalance($district_or_region, $vaccine->id, strtotime($end_date)); $owner = "R" . $district_or_region; $sql_consumption = "select (SELECT date_format(max(str_to_date(Date_Issued,'%m/%d/%Y')),'%d-%b-%Y') FROM `disbursements` where Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_Region = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\nstr_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_Region = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\nstr_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"; } else { if ($identifier == 'district_officer') { $district_object = Districts::getDistrict($district_or_region); $store = $district_object->name; $population = District_Populations::getDistrictPopulation($district_or_region, date('Y')); $opening_balance = Disbursements::getDistrictPeriodBalance($district_or_region, $vaccine->id, strtotime($start_date)); $closing_balance = Disbursements::getDistrictPeriodBalance($district_or_region, $vaccine->id, strtotime($end_date)); $owner = "D" . $district_or_region; $sql_consumption = "select (SELECT date_format(max(str_to_date(Date_Issued,'%m/%d/%Y')),'%d-%b-%Y') FROM `disbursements` where Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_District = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\nstr_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_District = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\nstr_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"; } else { if ($identifier == 'national_officer') { $store = "Central Vaccines Store"; $population = Regional_Populations::getNationalPopulation(date('Y')); $opening_balance = Disbursements::getNationalPeriodBalance($vaccine->id, strtotime($start_date)); $closing_balance = Disbursements::getNationalPeriodBalance($vaccine->id, strtotime($end_date)); $sql_consumption = "select (SELECT date_format(max(str_to_date(Date_Issued,'%m/%d/%Y')),'%d-%b-%Y') FROM `disbursements` where Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_National = '0' and Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\nstr_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_National = '0' and Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\nstr_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"; } } } $query = $this->db->query($sql_consumption); $vaccine_data = $query->row(); $monthly_requirement = ceil($vaccine->Doses_Required * $population * $vaccine->Wastage_Factor / 12); $data_buffer .= "<tr><td style='text-align:left;'>" . $vaccine->Name . "</td><td class='right'>" . number_format($opening_balance + 0) . "</td><td class='right'>" . number_format($vaccine_data->total_received + 0) . "</td><td class='right'>" . number_format($vaccine_data->total_issued + 0) . "</td><td class='right'>" . number_format($closing_balance - ($opening_balance + $vaccine_data->total_received - $vaccine_data->total_issued) + 0) . "</td><td class='right'>" . number_format($closing_balance + 0) . "</td><td class='center'>" . number_format($closing_balance / $monthly_requirement, 1) . "</td><td class='center'>" . $vaccine_data->last_stock_count . "</td></tr>"; } $data_buffer .= "</table>"; $this->generatePDF($data_buffer, $start_date, $end_date, $store); } else { $this->view_transactions_interface(); } }
public function Calculate_Disbursements($from) { $drugs = Vaccines::getThemAll(); foreach ($drugs as $drug) { //gets vaccine ID AND NAME $ID = $drug['id']; //Calcutaes stockouts $stockouts = Disbursements::getNationalPeriodBalance($ID, $from); $math = $stockouts; $this->flag_out($math, $ID); } }
public function getRegionCoverage($vaccine) { $months_of_stock = array(); $region = $this -> session -> userdata('district_province_id'); $year = date('Y'); $now = date('U'); $to = date("U", mktime(0, 0, 0, 1, 1, date("Y") + 1)); $from = date("U", mktime(0, 0, 0, 1, 1, date('Y'))); //Get National Data $population = regional_populations::getRegionalPopulation($region,$year); $population = str_replace(",", "", $population); $vaccine_object = Vaccines::getVaccine($vaccine); $yearly_requirement = ceil(($vaccine_object -> Doses_Required * $population * $vaccine_object -> Wastage_Factor)); $stock_receipts = Disbursements::getRegionalReceiptsTotals($region,$vaccine, $from, $to); $percentage_coverage = ceil(($stock_receipts/$yearly_requirement)*100); $chart = ' <chart caption="Estimated Coverage" palette="4" numberSuffix="%" decimals="0" enableSmartLabels="1" enableRotation="0" bgAlpha="40,100" bgRatio="0,100" bgAngle="360" showBorder="0" startingAngle="70"> <set label="Covered" value="' . $percentage_coverage . '" isSliced="1"/> <set label="Pending" value="' . (100-$percentage_coverage) . '"/> </chart>'; echo $chart; }
public function getBalances($from, $district_or_region, $region_name) { $this->load->database(); $start_date = ""; $number = ""; @($end_date = date('m/d/y')); $closing_balance = 0; $vaccines = Vaccines::getAll_Minified(); //gets consumption as per every vaccine @($message = ""); foreach ($vaccines as $vaccine) { $region_object = Regions::getRegion($district_or_region); $name = urlencode($vaccine['Name']); $store = urlencode($region_object->name); $closing_balance = Disbursements::getRegionalPeriodBalance($district_or_region, $vaccine->id, strtotime($end_date)); $closing_balance_formatted = number_format($closing_balance); if ($closing_balance_formatted == 0) { // echo @$message.= "VACCINES+STOCK+OUTS++AT++%0A+*+DVI+-+SMT*"; $this->get_phones($name, $district_or_region, $store); } } }
public function export_store_tallies($vaccine, $vaccine_name) { $from = $this->session->userdata("store_tallies_from"); $to = $this->session->userdata("store_tallies_to"); $district_or_region_id = $this->session->userdata('district_province_id'); $login_level = $this->session->userdata('user_group'); $items = 20; $order_by = "Quantity"; $order = "DESC"; $offset = 0; $headers = "Period Tally For " . $vaccine_name . "\t\nFirst Issued\t Issued To \t Total Amount(Doses)\t\n"; $data = ""; if ($login_level == 1) { //National Level $tallies = Disbursements::getNationalRecipientTally($vaccine, $from, $to, $offset, $items, $order_by, $order); } if ($login_level == 2) { //Regional Level $tallies = Disbursements::getRegionalRecipientTally($district_or_region_id, $vaccine, $from, $to, $offset, $items, $order_by, $order); } foreach ($tallies as $tally) { $data .= $tally->Date_Issued . "\t"; $issued_to = ""; if ($tally->Issued_To_Region != null) { $issued_to = $tally->Region_Issued_To->name; } else { if ($tally->Issued_To_District != null) { $issued_to = $tally->District_Issued_To->name; } } $data .= $issued_to . "\t" . $tally->Quantity . "\n"; } header("Content-type: application/vnd.ms-excel; name='excel'"); header("Content-Disposition: filename=store_tallies_export.xls"); // Fix for crappy IE bug in download. header("Pragma: "); header("Cache-Control: "); echo $headers . $data; }
public function printReport($from, $to) { @$this->load->database(); @($user_groups = User_groups::getAllGroups()); foreach ($user_groups as $user_group) { @($identifier = $user_group["Identifier"]); @($population = 0); @($opening_balance = 0); @($closing_balance = 0); @($sql_consumption = ""); @($store = ""); @($vaccines = Vaccines::getAll_Minified()); if ($identifier == 'provincial_officer') { @($provinces = Provinces::getAllProvinces()); foreach ($provinces as $province) { @($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.right{\n\t\t\t\ttext-align: right !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</style>\n\t\t\t "); @($start_date = $from); @($end_date = $to); @($data_buffer .= "<table class='data-table'>"); @($data_buffer .= $this->echoTitles()); foreach ($vaccines as $vaccine) { @($district_or_region = $province["id"]); @($region_object = Regions::getRegion($district_or_region)); @($store = $region_object->name); @($population = Regional_Populations::getRegionalPopulation($district_or_region, date('Y'))); @($opening_balance = Disbursements::getRegionalPeriodBalance($district_or_region, $vaccine->id, strtotime($start_date))); @($closing_balance = Disbursements::getRegionalPeriodBalance($district_or_region, $vaccine->id, strtotime($end_date))); @($owner = "R" . $district_or_region); @($sql_consumption = "select (SELECT max(str_to_date(Date_Issued,'%m/%d/%Y')) FROM `disbursements` where Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_Region = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_Region = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"); @($query = $this->db->query($sql_consumption)); @($vaccine_data = $query->row()); @($monthly_requirement = ceil($vaccine->Doses_Required * $population * $vaccine->Wastage_Factor / 12)); @($data_buffer .= "<tr><td>" . $vaccine->Name . "</td><td>" . number_format($opening_balance + 0) . "</td><td>" . number_format($vaccine_data->total_received + 0) . "</td><td>" . number_format($vaccine_data->total_issued + 0) . "</td><td>" . number_format($closing_balance - ($opening_balance + $vaccine_data->total_received - $vaccine_data->total_issued) + 0) . "</td><td>" . number_format($closing_balance + 0) . "</td><td>" . number_format($closing_balance / $monthly_requirement, 1) . "</td><td>" . $vaccine_data->last_stock_count . "</td></tr>"); } //end of foreach vaccines @($vals = 1); @($data_buffer .= "</table>"); @$this->generatePDF($data_buffer, $start_date, $end_date, $store, $district_or_region, $vals, $store); @($data_buffer = ""); } } if ($identifier == 'district_officer') { @($districts = Districts::getAllDistricts()); foreach ($districts as $district) { @($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.right{\n\t\t\t\ttext-align: right !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</style>\n\t\t\t "); @($start_date = $from); @($end_date = $to); @($data_buffer .= "<table class='data-table'>"); @($data_buffer .= $this->echoTitles()); foreach ($vaccines as $vaccine) { @($district_or_region = $district["id"]); @($district_object = Districts::getDistrict($district_or_region)); @($store = $district_object->name); @($population = District_Populations::getDistrictPopulation($district_or_region, date('Y'))); @($opening_balance = Disbursements::getDistrictPeriodBalance($district_or_region, $vaccine->id, strtotime($start_date))); @($closing_balance = Disbursements::getDistrictPeriodBalance($district_or_region, $vaccine->id, strtotime($end_date))); @($owner = "D" . $district_or_region); @($sql_consumption = "select (SELECT max(str_to_date(Date_Issued,'%m/%d/%Y')) FROM `disbursements` where Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_District = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_District = '" . $district_or_region . "' and Owner = '" . $owner . "' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"); @($query = $this->db->query($sql_consumption)); @($vaccine_data = $query->row()); @($monthly_requirement = ceil($vaccine->Doses_Required * $population * $vaccine->Wastage_Factor / 12)); @($data_buffer .= "<tr><td>" . $vaccine->Name . "</td><td>" . number_format($opening_balance + 0) . "</td><td>" . number_format($vaccine_data->total_received + 0) . "</td><td>" . number_format($vaccine_data->total_issued + 0) . "</td><td>" . number_format($closing_balance - ($opening_balance + $vaccine_data->total_received - $vaccine_data->total_issued) + 0) . "</td><td>" . number_format($closing_balance + 0) . "</td><td>" . number_format($closing_balance / $monthly_requirement, 1) . "</td><td>" . $vaccine_data->last_stock_count . "</td></tr>"); } //end of foreach vaccines @($vals = 2); @($data_buffer .= "</table>"); @$this->generatePDF($data_buffer, $start_date, $end_date, $store, $district_or_region, $vals, $store); @($data_buffer = ""); } } if ($identifier == 'national_officer') { @($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.right{\n\t\t\t\ttext-align: right !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</style>\n\t\t\t "); @($start_date = $from); @($end_date = $to); @($data_buffer .= "<table class='data-table'>"); @($data_buffer .= $this->echoTitles()); @($store = "Central Vaccines Store"); foreach ($vaccines as $vaccine) { @($population = Regional_Populations::getNationalPopulation(date('Y'))); @($opening_balance = Disbursements::getNationalPeriodBalance($vaccine->id, strtotime($start_date))); @($closing_balance = Disbursements::getNationalPeriodBalance($vaccine->id, strtotime($end_date))); @($sql_consumption = "select (SELECT max(str_to_date(Date_Issued,'%m/%d/%Y')) FROM `disbursements` where Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "' and total_stock_balance>0)as last_stock_count,(SELECT sum(Quantity)FROM `disbursements` where Issued_By_National = '0' and Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_issued,(SELECT sum(Quantity) FROM `disbursements` where Issued_To_National = '0' and Owner = 'N0' and str_to_date(Date_Issued,'%m/%d/%Y') between str_to_date('" . $start_date . "','%m/%d/%Y') and\n str_to_date('" . $end_date . "','%m/%d/%Y') and Vaccine_Id = '" . $vaccine->id . "')as total_received"); @($query = $this->db->query($sql_consumption)); @($vaccine_data = $query->row()); @($monthly_requirement = ceil($vaccine->Doses_Required * $population * $vaccine->Wastage_Factor / 12)); @($data_buffer .= "<tr><td>" . $vaccine->Name . "</td><td>" . number_format($opening_balance + 0) . "</td><td>" . number_format($vaccine_data->total_received + 0) . "</td><td>" . number_format($vaccine_data->total_issued + 0) . "</td><td>" . number_format($closing_balance - ($opening_balance + $vaccine_data->total_received - $vaccine_data->total_issued) + 0) . "</td><td>" . number_format($closing_balance + 0) . "</td><td>" . number_format($closing_balance / $monthly_requirement, 1) . "</td><td>" . $vaccine_data->last_stock_count . "</td></tr>"); } //end of foreach vaccines @($vals = 3); @($data_buffer .= "</table>"); @($district_or_region = ""); @$this->generatePDF($data_buffer, $start_date, $end_date, $store, $district_or_region, $vals, $store); @($data_buffer = ""); } } //end of foreach user_group }
public function get($type,$id,$vaccine) { $monthly_opening_stocks = array(); $year = date('Y'); $year_start = date("U", mktime(0, 0, 0, 1, 1, date('Y'))); $vaccine_object = Vaccines::getVaccine($vaccine); if($type == 0){ //Regional Store $population = regional_populations::getRegionalPopulation($id,$year); for($month = 1; $month<=12; $month++){ $to = date("U", mktime(0, 0, 0, $month, 1, date('Y'))); $monthly_opening_stocks[$month] = Disbursements::getRegionalReceiptsTotals($id, $vaccine,$year_start,$to); } } else if($type == 1){ //District Store $population = district_populations::getDistrictPopulation($id,$year); for($month = 1; $month<=12; $month++){ $to = date("U", mktime(0, 0, 0, $month, 1, date('Y'))); $monthly_opening_stocks[$month] = Disbursements::getDistrictReceiptsTotals($id, $vaccine,$year_start,$to); } } $population = str_replace(",","",$population); $monthly_requirement = ceil(($vaccine_object->Doses_Required*$population*$vaccine_object->Wastage_Factor)/12); $upper_limit = $monthly_requirement*2; $lower_limit = ceil($monthly_requirement/2); $chart = ' <chart caption="Monthly Stock at Hand Summary" subcaption="For the year '.$year.'" xAxisName="Month" yAxisName="Quantity" numberSuffix=" doses" showValues="0" alternateHGridColor="FCB541" alternateHGridAlpha="20" divLineColor="FCB541" divLineAlpha="50" canvasBorderColor="666666" baseFontColor="666666" lineColor="FCB541"> <categories> <category label="Jan"/> <category label="Feb"/> <category label="Mar"/> <category label="Apr"/> <category label="May"/> <category label="Jun"/> <category label="Jul"/> <category label="Aug"/> <category label="Sep"/> <category label="Oct"/> <category label="Nov"/> <category label="Dec"/> </categories> <dataset seriesName="Upper Limit" color="269600" anchorBorderColor="269600" anchorBgColor="269600">'; for($x=1;$x<=12;$x++){ $cumulative_value = $x * $upper_limit; $chart .= '<set value="'.$cumulative_value.'"/>'; } $chart .= '</dataset> <dataset seriesName="Receipts" color="0008FF" anchorBorderColor="0008FF" anchorBgColor="0008FF"> <set value="'.$monthly_opening_stocks[1].'"/> <set value="'.$monthly_opening_stocks[2].'"/> <set value="'.$monthly_opening_stocks[3].'"/> <set value="'.$monthly_opening_stocks[4].'"/> <set value="'.$monthly_opening_stocks[5].'"/> <set value="'.$monthly_opening_stocks[6].'"/> <set value="'.$monthly_opening_stocks[7].'"/> <set value="'.$monthly_opening_stocks[8].'"/> <set value="'.$monthly_opening_stocks[9].'"/> <set value="'.$monthly_opening_stocks[10].'"/> <set value="'.$monthly_opening_stocks[11].'"/> <set value="'.$monthly_opening_stocks[12].'"/> </dataset> <dataset seriesName="Lower Limit" color="FF0000" anchorBorderColor="FF0000" anchorBgColor="FF0000">'; for($x=1;$x<=12;$x++){ $cumulative_value = $x * $lower_limit; $chart .= '<set value="'.$cumulative_value.'"/>'; } $chart .= '</dataset> <styles> <definition> <style name="Anim1" type="animation" param="_xscale" start="0" duration="1"/> <style name="Anim2" type="animation" param="_alpha" start="0" duration="0.6"/> <style name="DataShadow" type="Shadow" alpha="40"/> </definition> <application> <apply toObject="DIVLINES" styles="Anim1"/> <apply toObject="HGRID" styles="Anim2"/> <apply toObject="DATALABELS" styles="DataShadow,Anim2"/> </application> </styles> </chart> '; echo $chart; }
public function download_mos_trend($selected_year = 0, $national = "", $region = "", $district = "") { $year = date('Y'); if ($selected_year != "0") { $year = $selected_year; } $counter = 2; $vaccine_objects = Vaccines::getAll(); $population = 0; $title = ""; if ($national > 0) { $title = "MOS Balance Trend at Central Vaccine Store"; $population = Regional_Populations::getNationalPopulation($year); } if ($region > 0) { $region_object = Regions::getRegion($region); $title = "MOS Balance Trend at " . $region_object->name; $population = Regional_Populations::getRegionalPopulation($region, $year); } if ($district > 0) { $district_object = Districts::getDistrict($district); $title = "MOS Balance Trend at " . $district_object->name . " District Store"; $population = District_Populations::getDistrictPopulation($district, $year); } $population = str_replace(",", "", $population); foreach ($vaccine_objects as $vaccine_object) { $monthly_requirement = ceil($vaccine_object->Doses_Required * $population * $vaccine_object->Wastage_Factor / 12); for ($month = 1; $month <= 36; $month++) { $mos_balance = 0; //Get the month $month_number = ceil($month / 3); //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 3 == 0) { $month_date = 28; } else { if ($month % 3 == 1) { $month_date = 7; } else { if ($month % 3 == 2) { $month_date = 21; } } } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); $stock_balance = 0; if ($national > 0) { $stock_balance = Disbursements::getNationalPeriodBalance($vaccine_object->id, $to); } if ($region > 0) { $stock_balance = Disbursements::getRegionalPeriodBalance($region, $vaccine_object->id, $to); } if ($district > 0) { $stock_balance = Disbursements::getDistrictPeriodBalance($district, $vaccine_object->id, $to); } //$stock_balance = 0; if ($stock_balance > 0) { $mos_balance = number_format($stock_balance / $monthly_requirement, 2); } $monthly_opening_stocks[$month][$vaccine_object->id]['stock_balance'] = number_format($stock_balance + 0); $monthly_opening_stocks[$month][$vaccine_object->id]['mos_balance'] = $mos_balance; $counter += 2; } } $data_buffer = "\n\t\t\t<style>\n\t\t\ttable.data-table {\n\t\t\ttable-layout: fixed;\n\t\t\twidth: 1000px;\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'>"; $counter = 2; $data_buffer .= $this->echoTitles($vaccine_objects); for ($month = 1; $month <= 36; $month++) { $data_buffer .= "<tr>"; $month_number = ceil($month / 3); //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 3 == 0) { $month_date = 28; } else { if ($month % 3 == 1) { $month_date = 7; } else { if ($month % 3 == 2) { $month_date = 21; } } } $date = date("M-d", mktime(0, 0, 0, $month_number, $month_date, $year)); $data_buffer .= "<td>" . $date . "</td>"; foreach ($vaccine_objects as $vaccine_object) { $data_buffer .= "<td class='center'>" . $monthly_opening_stocks[$month][$vaccine_object->id]['mos_balance'] . "</td><td class='right'>" . $monthly_opening_stocks[$month][$vaccine_object->id]['stock_balance'] . "</td>"; } $data_buffer .= "</tr>"; $counter += 2; } $data_buffer .= "</table>"; $this->generatePDF($data_buffer, $year, $title); // var_dump($monthly_opening_stocks); }
public function update_timestamps() { $disbursements = Disbursements::getAll(); foreach ($disbursements as $disbursement) { $current = $disbursement->Date_Issued; $converted = strtotime($current); $test = date("d/m/Y", $converted); echo $current . " becomes " . $converted . " which is " . $test . "<br>"; $disbursement->Date_Issued_Timestamp = $converted; $disbursement->save(); } }
public function index() { //Get the Earliest Disbursement Date and the Earliest Archive Date. Do the neccesary! $earliest_disbursement_date = Disbursements::getEarliestDisbursement(); $earliest_archive_date = Archive_Logs::getEarliestArchive(); if ($earliest_archive_date == null) { $earliest_archive_date = date('m/d/Y'); } $split_disbursement_date = explode('/', $earliest_disbursement_date); $split_archive_date = explode('/', $earliest_archive_date); var_dump($split_disbursement_date); var_dump($split_archive_date); $total_months = $split_archive_date[0] - $split_disbursement_date[0] + ($split_archive_date[2] - $split_disbursement_date[2]) * 12; $dates_to_archive = array(); for ($archive_month = 0; $archive_month < $total_months; $archive_month++) { $expected_month = $archive_month + $split_disbursement_date[0]; $year = $split_disbursement_date[2]; //echo $expected_month." and ".$year; if ($expected_month > 12) { $year += ceil(($expected_month - 12) / 12); $expected_month -= 12; } $archive_date = $expected_month . "/15/" . $year; $dates_to_archive[$archive_month] = $archive_date; } var_dump($dates_to_archive); //foreach($dates_to_archive as $date_to_archive){ //Check if this date's archive has been done. If not do it now! $expected_archive_date = "6/15/2011"; $expected_archive_timestamp = strtotime($expected_archive_date); $archive_exists = Archive_Logs::archiveExists($expected_archive_date); if (!$archive_exists) { echo "Creating Archive!"; //Loop through all vaccines $vaccines = Vaccines::getAll(); $regions = Regions::getAllRegions(); $districts = Districts::getAllDistricts(); foreach ($vaccines as $vaccine) { //National Archive First $national_archive = new Archives(); $national_archive->National_Store = "0"; $national_archive->Stock_At_Hand = Disbursements::getNationalStockAtHand($vaccine->id, $expected_archive_timestamp); $national_archive->Date_Of_Archive = $expected_archive_date; $national_archive->Vaccine_Id = $vaccine->id; $national_archive->save(); //Do archives for all the regions foreach ($regions as $region) { $regional_archive = new Archives(); $regional_archive->Regional_Store_Id = $region->id; $regional_archive->Stock_At_Hand = Disbursements::getRegionalStockAtHand($region->id, $vaccine->id, $expected_archive_timestamp); $regional_archive->Date_Of_Archive = $expected_archive_date; $regional_archive->Vaccine_Id = $vaccine->id; $regional_archive->save(); } //Do archives for all the districts. :-( foreach ($districts as $district) { $district_archive = new Archives(); $district_archive->District_Store_Id = $district->id; $district_archive->Stock_At_Hand = Disbursements::getDistrictStockAtHand($district->id, $vaccine->id, $expected_archive_timestamp); $district_archive->Date_Of_Archive = $expected_archive_date; $district_archive->Vaccine_Id = $vaccine->id; $district_archive->save(); } } $archive_log = new Archive_Logs(); $archive_log->Archive_Date = $expected_archive_date; $archive_log->Timestamp = date('U'); $archive_log->Save(); } else { echo "This archive already exists!"; } //} }
public function utilization($type, $year = "") { $total_occupied_capacity = array(); if ($year == "") { $year = date('Y'); } $year_start = date("U", mktime(0, 0, 0, 1, 1, $year)); $vaccines = Fridge_Compartments::getCompartmentVaccines($type); $counter = 2; $user_identifier = $this->session->userdata("user_identifier"); $district_province_id = $this->session->userdata("user_identifier"); $fridges = null; if ($user_identifier == "regional_officer") { //Regional Store for ($month = 1; $month <= 24; $month++) { //Get the month $month_number = $counter / 2; //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 2 == 0) { $month_date = 21; } else { $month_date = 7; } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); //Get the stock balances for each of the vaccines at this point in time $total_volume = 0; foreach ($vaccines as $vaccine) { $volume = $vaccine->Vaccine_Packed_Volume; $stock_balance = Disbursements::getRegionalPeriodBalance($district_province_id, $vaccine->id, $to); $volume_occupied = $volume * $stock_balance; $total_volume += $volume_occupied; } $total_occupied_capacity[$month] = $total_volume; $counter += 2; } //Get the Fridges of this store $fridges = Regional_Fridges::getRegionFridges($district_province_id); } else { if ($user_identifier == "district_officer") { //District Store for ($month = 1; $month <= 24; $month++) { //Get the month $month_number = $counter / 2; //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 2 == 0) { $month_date = 21; } else { $month_date = 7; } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); //Get the stock balances for each of the vaccines at this point in time $total_volume = 0; foreach ($vaccines as $vaccine) { $volume = $vaccine->Vaccine_Packed_Volume; $stock_balance = Disbursements::getDistrictPeriodBalance($district_province_id, $vaccine->id, $to); $volume_occupied = $volume * $stock_balance; $total_volume += $volume_occupied; } $total_occupied_capacity[$month] = $total_volume; $counter += 2; } //Get the Fridges of this store $fridges = District_Fridges::getDistrictFridges($district_province_id); } else { if ($user_identifier == "national_officer") { //National Store for ($month = 1; $month <= 24; $month++) { //Get the month $month_number = $counter / 2; //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 2 == 0) { $month_date = 21; } else { $month_date = 7; } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); //Get the stock balances for each of the vaccines at this point in time $total_volume = 0; foreach ($vaccines as $vaccine) { $volume = $vaccine->Vaccine_Packed_Volume; $stock_balance = Disbursements::getNationalPeriodBalance($vaccine->id, $to); $volume_occupied = $volume * $stock_balance; $total_volume += $volume_occupied; } $total_occupied_capacity[$month] = $total_volume; $counter += 2; } //Get the Fridges of this store $fridges = National_Fridges::getNationalFridges(); } } } $net_volume = 0; //loop through all the fridges to get the total capacity foreach ($fridges as $fridge) { if ($type == "freezer") { $net_volume += $fridge->Fridge_Equipment->Net_Vol_Minus_20deg; } else { if ($type == "fridge") { $net_volume += $fridge->Fridge_Equipment->Net_Vol_4deg; } } } //convert from m3 to cm3 $net_volume /= 1000; $chart = ' <chart caption="Annual Capacity Utilization" subcaption="For the year ' . $year . '" xAxisName="Month" yAxisName="Volume" numberSuffix="m3" showValues="0" alternateHGridColor="FCB541" alternateHGridAlpha="20" divLineColor="FCB541" divLineAlpha="50" canvasBorderColor="666666" baseFontColor="666666" lineColor="FCB541"> <categories> <category label="Jan"/> <category label=""/> <category label="Feb"/> <category label=""/> <category label="Mar"/> <category label=""/> <category label="Apr"/> <category label=""/> <category label="May"/> <category label=""/> <category label="Jun"/> <category label=""/> <category label="Jul"/> <category label=""/> <category label="Aug"/> <category label=""/> <category label="Sep"/> <category label=""/> <category label="Oct"/> <category label=""/> <category label="Nov"/> <category label=""/> <category label="Dec"/> <category label=""/> </categories> <dataset seriesName="Capacity Utilized" color="0008FF" anchorBorderColor="0008FF" anchorBgColor="0008FF"> <set value="' . $total_occupied_capacity[1] / 1000000 . '"/> <set value="' . $total_occupied_capacity[2] / 1000000 . '"/> <set value="' . $total_occupied_capacity[3] / 1000000 . '"/> <set value="' . $total_occupied_capacity[4] / 1000000 . '"/> <set value="' . $total_occupied_capacity[5] / 1000000 . '"/> <set value="' . $total_occupied_capacity[6] / 1000000 . '"/> <set value="' . $total_occupied_capacity[7] / 1000000 . '"/> <set value="' . $total_occupied_capacity[8] / 1000000 . '"/> <set value="' . $total_occupied_capacity[9] / 1000000 . '"/> <set value="' . $total_occupied_capacity[10] / 1000000 . '"/> <set value="' . $total_occupied_capacity[11] / 1000000 . '"/> <set value="' . $total_occupied_capacity[12] / 1000000 . '"/> <set value="' . $total_occupied_capacity[13] / 1000000 . '"/> <set value="' . $total_occupied_capacity[14] / 1000000 . '"/> <set value="' . $total_occupied_capacity[15] / 1000000 . '"/> <set value="' . $total_occupied_capacity[16] / 1000000 . '"/> <set value="' . $total_occupied_capacity[17] / 1000000 . '"/> <set value="' . $total_occupied_capacity[18] / 1000000 . '"/> <set value="' . $total_occupied_capacity[19] / 1000000 . '"/> <set value="' . $total_occupied_capacity[20] / 1000000 . '"/> <set value="' . $total_occupied_capacity[21] / 1000000 . '"/> <set value="' . $total_occupied_capacity[22] / 1000000 . '"/> <set value="' . $total_occupied_capacity[23] / 1000000 . '"/> <set value="' . $total_occupied_capacity[24] / 1000000 . '"/> </dataset> <dataset seriesName="Net Volume" color="FF0000" anchorBorderColor="FF0000" anchorBgColor="FF0000">'; for ($x = 1; $x <= 24; $x++) { $chart .= '<set value="' . $net_volume . '"/>'; } $chart .= '</dataset> <styles> <definition> <style name="Anim1" type="animation" param="_xscale" start="0" duration="1"/> <style name="Anim2" type="animation" param="_alpha" start="0" duration="0.6"/> <style name="DataShadow" type="Shadow" alpha="40"/> </definition> <application> <apply toObject="DIVLINES" styles="Anim1"/> <apply toObject="HGRID" styles="Anim2"/> <apply toObject="DATALABELS" styles="DataShadow,Anim2"/> </application> </styles> </chart> '; echo $chart; }
function download($national = "", $region = "", $district = "") { $title = ""; if ($national > 0) { $title = "MOS Available at Central Vaccine Store"; } if ($region > 0) { $region_object = Regions::getRegion($region); $title = "MOS Available at " . $region_object -> name; } if ($district > 0) { $district_object = Districts::getDistrict($district); $title = "MOS Available at " . $district_object -> name . " District Store"; } $vaccines = Vaccines::getAll_Minified(); $date = date("m/d/Y"); $months_required = array(); $data_buffer = " <style> table.data-table { table-layout: fixed; width: 700px; border-collapse:collapse; border:1px solid black; } table.data-table td, th { width: 100px; border: 1px solid black; } .leftie{ text-align: left !important; } .right{ text-align: right !important; } .center{ text-align: center !important; } </style> "; $data_buffer .= "<table class='data-table'>"; $data_buffer .= $this -> echoTitles(); foreach ($vaccines as $vaccine_object) { $months_of_stock = array(); $year = date('Y'); $now = date('U'); $population = 0; $stock_balance = 0; if ($national > 0) { $population = Regional_Populations::getNationalPopulation($year); $stock_balance = Disbursements::getNationalPeriodBalance($vaccine_object -> id, $now); } if ($region > 0) { $population = Regional_Populations::getRegionalPopulation($region, $year); $stock_balance = Disbursements::getRegionalPeriodBalance($region, $vaccine_object -> id, $now); } if ($district > 0) { $population = District_Populations::getDistrictPopulation($district, $year); $stock_balance = Disbursements::getDistrictPeriodBalance($district, $vaccine_object -> id, $now); } $population = str_replace(",", "", $population); $monthly_requirement = ceil(($vaccine_object -> Doses_Required * $population * $vaccine_object -> Wastage_Factor) / 12); $months_till_shipment = 0; if ($national > 0) { $months_of_stock = array(); $year = date('Y'); $now = date('U'); $expected_delivery = Provisional_Plan::getNextDelivery($vaccine_object -> id); if (isset($expected_delivery[0])) { $next_shipment = $expected_delivery[0]['next_shipment']; $days_till_shipment = $expected_delivery[0]['difference']; if (isset($days_till_shipment)) { $months_till_shipment = number_format(($days_till_shipment / 30), 1); } } } if ($region > 0) { $months_till_shipment = 3; $next_shipment = "N/A"; } if ($district > 0) { $months_till_shipment = 3; $next_shipment = "N/A"; } $doses_needed = "N/A"; if ($stock_balance > 0) { $months_left = number_format(($stock_balance / $monthly_requirement), 1); } if ($months_left > $months_till_shipment) { $doses_needed = "None"; } else { $doses_needed = number_format((($months_till_shipment - $months_left) * $monthly_requirement), 2); } $monthly_requirement = number_format($monthly_requirement + 0); $data_buffer .= "<tr><td class='leftie'>" . $vaccine_object -> Name . "</td><td class='right'>" . number_format($stock_balance) . "</td><td class='center'>" . $months_left . "</td><td class='center'>" . $next_shipment . "</td><td class='center'>" . $months_till_shipment . "</td><td class='right'>" . $monthly_requirement . "</td><td class='right'>" . $doses_needed . "</td></tr>"; } $data_buffer .= "</table>"; $this -> generatePDF($data_buffer, $title); //echo $data_buffer; }
public function export($type, $id, $vaccine) { //Retrieve the user identifier $from = $this -> session -> userdata('external_from'); $to = $this -> session -> userdata('external_to'); if ($to == false) { $to = date("U", mktime(0, 0, 0, 1, 1, date("Y") + 1)); } if ($from == false) { $from = date("U", mktime(0, 0, 0, 1, 1, date('Y'))); } $offset = 0; $items_per_page = 1000; $district = $this -> session -> userdata('external_district'); $region = $this -> session -> userdata('external_region'); $order_by = $this -> session -> userdata('external_order_by'); $order = $this -> session -> userdata('external_order'); $origin_region = $id; $origin_district = $id; $disbursements = null; $data = null; if ($type == "national_officer") {//National Level if ($order == 2) { $balance = Disbursements::getNationalPeriodBalance($vaccine, $from); } else if ($order == "DESC") { $balance = Disbursements::getNationalPeriodBalance($vaccine, $to); } $disbursements = Disbursements::getNationalDisbursements($vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balance); } else if ($type == 0) {//Regional Level if ($order == "ASC") { $balance = Disbursements::getRegionalPeriodBalance($origin_region, $vaccine, $from); } else if ($order == "DESC") { $balance = Disbursements::getRegionalPeriodBalance($origin_region, $vaccine, $to); } $disbursements = Disbursements::getRegionalDisbursements($origin_region, $vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balance); } else if ($type == 1) {//District Level if ($order == "ASC") { $balance = Disbursements::getDistrictPeriodBalance($origin_district, $vaccine, $from); } else if ($order == "DESC") { $balance = Disbursements::getDistrictPeriodBalance($origin_district, $vaccine, $to); } $disbursements = Disbursements::getDistrictDisbursements($origin_district, $vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balance); } $reducing_balance = $balance; $headers = "Balance From Previous Period: " . $balance . "\t\nDate Issued\t Vaccines To/From \t Amount Received\t Amount Issued \tStore Balance\t Voucher Number\t Batch Number\t Vaccine Expiry Date\t Recorded By\t\n"; foreach ($disbursements as $disbursement) { $data .= $disbursement -> Date_Issued . "\t"; //If the vaccines were issued to a Region, display the name if ($disbursement -> Issued_To_Region != null && $disbursement -> Issued_To_Region != $origin_region) { $data .= $disbursement -> Region_Issued_To -> name . "\t"; $data .= " \t" . $disbursement -> Quantity . "\t"; } //If the vaccines were received from a region (apart from ourselves ofcourse) display the name if ($disbursement -> Issued_By_Region != null && $disbursement -> Issued_By_Region != $origin_region) { $data .= $disbursement -> Region_Issued_By -> name . "\t"; $data .= $disbursement -> Quantity . "\t\t"; } //If the vaccines were issued to a District other than ourselves, display the name if ($disbursement -> Issued_To_District != null && $disbursement -> Issued_To_District != $origin_district) { $data .= $disbursement -> District_Issued_To -> name . "\t"; $data .= " \t" . $disbursement -> Quantity . "\t"; } //If the vaccines were received from a district (apart from ourselves ofcourse) display the name if ($disbursement -> Issued_By_District != null && $disbursement -> Issued_By_District != $origin_district) { $data .= $disbursement -> District_Issued_By -> name . "\t"; $data .= $disbursement -> Quantity . "\t\t"; } //If the vaccines were issued the Central store, Display UNICEF as the source if ($disbursement -> Issued_To_National == "0") { $data .= "UNICEF\t"; $data .= $disbursement -> Quantity . "\t\t"; } //If the vaccines were issued by Central store and if this is not the national store, Display National Store as the source if ($disbursement -> Issued_By_National == "0" && $type != 2) { $data .= "Central Vaccine Stores\t"; $data .= $disbursement -> Quantity . "\t\t"; } $data .= $disbursement -> Total_Stock_Balance . "\t"; $data .= $disbursement -> Voucher_Number . "\t"; $data .= $disbursement -> Batch_Number . "\t"; $data .= $disbursement -> Batch -> Expiry_Date . "\t"; $data .= $disbursement -> User -> Full_Name . "\t"; $data .= "\n"; } header("Content-type: application/vnd.ms-excel; name='excel'"); header("Content-Disposition: filename=stock_ledger_export.xls"); // Fix for crappy IE bug in download. header("Pragma: "); header("Cache-Control: "); echo $headers . $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; }
public function delete_batch($id) { if (isset($id)) { $batches_array = Batches::getBatch($id); $batch = $batches_array[0]; $batch->delete(); $disbursements_array = Disbursements::getBatchEntry($id); $disbursement = $disbursements_array[0]; $disbursement->delete(); $data['deleted'] = true; redirect("batch_management"); } else { redirect("batch_management"); } }
public function correct_date_timestamps() { $disbursements = Disbursements::getAll(); foreach ($disbursements as $disbursement) { if ($disbursement -> Date_Issued_Timestamp == null) { echo $disbursement -> Date_Issued . " changes to " . strtotime($disbursement -> Date_Issued) . " and back to " . date("m/d/y", strtotime($disbursement -> Date_Issued)) . "<br>"; $disbursement -> Date_Issued_Timestamp = strtotime($disbursement -> Date_Issued); $disbursement -> save(); } // } }
public function get($type, $id, $vaccine, $year = "") { $monthly_opening_stocks = array(); if ($year == "") { $year = date('Y'); } $year_start = date("U", mktime(0, 0, 0, 1, 1, $year)); $vaccine_object = Vaccines::getVaccine($vaccine); $counter = 2; if ($type == 0) { //Regional Store $population = regional_populations::getRegionalPopulation($id, $year); $population = str_replace(",", "", $population); $monthly_requirement = ceil($vaccine_object->Doses_Required * $population * $vaccine_object->Wastage_Factor / 12); for ($month = 1; $month <= 36; $month++) { //Get the month $month_number = $counter / 3; //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 3 == 0) { $month_date = 7; } else { if ($month % 3 == 1) { $month_date = 21; } else { if ($month % 3 == 2) { $month_date = 28; } } } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); $monthly_opening_stocks[$month] = Disbursements::getRegionalPeriodBalance($id, $vaccine, $to); $counter += 3; } $upper_limit = $monthly_requirement * 4; $lower_limit = $monthly_requirement; } else { if ($type == 1) { //District Store $population = district_populations::getDistrictPopulation($id, $year); $population = str_replace(",", "", $population); $monthly_requirement = ceil($vaccine_object->Doses_Required * $population * $vaccine_object->Wastage_Factor / 12); for ($month = 1; $month <= 36; $month++) { //Get the month $month_number = $counter / 2; //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 3 == 0) { $month_date = 7; } else { if ($month % 3 == 1) { $month_date = 21; } else { if ($month % 3 == 2) { $month_date = 28; } } } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); $monthly_opening_stocks[$month] = Disbursements::getDistrictPeriodBalance($id, $vaccine, $to); $counter += 2; } $upper_limit = $monthly_requirement * 2; $lower_limit = ceil($monthly_requirement / 2); } else { if ($type == 2) { //National Store $population = regional_populations::getNationalPopulation($year); $population = str_replace(",", "", $population); $monthly_requirement = ceil($vaccine_object->Doses_Required * $population * $vaccine_object->Wastage_Factor / 12); for ($month = 1; $month <= 36; $month++) { //Get the month $month_number = $counter / 2; //If it is an even number, get values for the 21st, if it's odd, get values for the 7th if ($month % 3 == 0) { $month_date = 7; } else { if ($month % 3 == 1) { $month_date = 21; } else { if ($month % 3 == 2) { $month_date = 28; } } } $to = date("U", mktime(0, 0, 0, $month_number, $month_date, $year)); $monthly_opening_stocks[$month] = Disbursements::getNationalPeriodBalance($vaccine, $to); $counter += 2; } $upper_limit = $monthly_requirement * 4; $lower_limit = $monthly_requirement; } } } $chart = ' <chart caption="Monthly Stock at Hand Summary" subcaption="For the year ' . $year . '" xAxisName="Month" yAxisName="Quantity" numberSuffix=" doses" showValues="0" alternateHGridColor="FCB541" alternateHGridAlpha="20" divLineColor="FCB541" divLineAlpha="50" canvasBorderColor="666666" baseFontColor="666666" lineColor="FCB541"> <categories> <category label="Jan"/> <category label=""/> <category label=""/> <category label="Feb"/> <category label=""/> <category label=""/> <category label="Mar"/> <category label=""/> <category label=""/> <category label="Apr"/> <category label=""/> <category label=""/> <category label="May"/> <category label=""/> <category label=""/> <category label="Jun"/> <category label=""/> <category label=""/> <category label="Jul"/> <category label=""/> <category label=""/> <category label="Aug"/> <category label=""/> <category label=""/> <category label="Sep"/> <category label=""/> <category label=""/> <category label="Oct"/> <category label=""/> <category label=""/> <category label="Nov"/> <category label=""/> <category label=""/> <category label="Dec"/> <category label=""/> <category label=""/> </categories> <dataset seriesName="Upper Limit" color="269600" anchorBorderColor="269600" anchorBgColor="269600">'; for ($x = 1; $x <= 36; $x++) { $cumulative_value = $upper_limit; $chart .= '<set value="' . $cumulative_value . '"/>'; } $chart .= '</dataset> <dataset seriesName="Receipts" color="0008FF" anchorBorderColor="0008FF" anchorBgColor="0008FF"> <set value="' . $monthly_opening_stocks[1] . '"/> <set value="' . $monthly_opening_stocks[2] . '"/> <set value="' . $monthly_opening_stocks[3] . '"/> <set value="' . $monthly_opening_stocks[4] . '"/> <set value="' . $monthly_opening_stocks[5] . '"/> <set value="' . $monthly_opening_stocks[6] . '"/> <set value="' . $monthly_opening_stocks[7] . '"/> <set value="' . $monthly_opening_stocks[8] . '"/> <set value="' . $monthly_opening_stocks[9] . '"/> <set value="' . $monthly_opening_stocks[10] . '"/> <set value="' . $monthly_opening_stocks[11] . '"/> <set value="' . $monthly_opening_stocks[12] . '"/> <set value="' . $monthly_opening_stocks[13] . '"/> <set value="' . $monthly_opening_stocks[14] . '"/> <set value="' . $monthly_opening_stocks[15] . '"/> <set value="' . $monthly_opening_stocks[16] . '"/> <set value="' . $monthly_opening_stocks[17] . '"/> <set value="' . $monthly_opening_stocks[18] . '"/> <set value="' . $monthly_opening_stocks[19] . '"/> <set value="' . $monthly_opening_stocks[20] . '"/> <set value="' . $monthly_opening_stocks[21] . '"/> <set value="' . $monthly_opening_stocks[22] . '"/> <set value="' . $monthly_opening_stocks[23] . '"/> <set value="' . $monthly_opening_stocks[24] . '"/> <set value="' . $monthly_opening_stocks[25] . '"/> <set value="' . $monthly_opening_stocks[26] . '"/> <set value="' . $monthly_opening_stocks[27] . '"/> <set value="' . $monthly_opening_stocks[28] . '"/> <set value="' . $monthly_opening_stocks[29] . '"/> <set value="' . $monthly_opening_stocks[30] . '"/> <set value="' . $monthly_opening_stocks[31] . '"/> <set value="' . $monthly_opening_stocks[32] . '"/> <set value="' . $monthly_opening_stocks[33] . '"/> <set value="' . $monthly_opening_stocks[34] . '"/> <set value="' . $monthly_opening_stocks[35] . '"/> <set value="' . $monthly_opening_stocks[36] . '"/> </dataset> <dataset seriesName="Lower Limit" color="FF0000" anchorBorderColor="FF0000" anchorBgColor="FF0000">'; for ($x = 1; $x <= 36; $x++) { $cumulative_value = $lower_limit; $chart .= '<set value="' . $cumulative_value . '"/>'; } $chart .= '</dataset> <styles> <definition> <style name="Anim1" type="animation" param="_xscale" start="0" duration="1"/> <style name="Anim2" type="animation" param="_alpha" start="0" duration="0.6"/> <style name="DataShadow" type="Shadow" alpha="40"/> </definition> <application> <apply toObject="DIVLINES" styles="Anim1"/> <apply toObject="HGRID" styles="Anim2"/> <apply toObject="DATALABELS" styles="DataShadow,Anim2"/> </application> </styles> </chart> '; echo $chart; }
public function get_freezer_occupancy($national = "", $region = "", $district = "") { $title = ""; $store_fridges = ""; if ($national > 0) { $store_fridges = National_Fridges::getNationalFridges(); } if ($region > 0) { $store_fridges = Regional_Fridges::getRegionFridges($region); } if ($district > 0) { $store_fridges = District_Fridges::getDistrictFridges($district); } $freezer_vaccines = Fridge_Compartments::getCompartmentVaccines("freezer"); $freezer_capacities = array(); $now = date("U"); $total_net_volume_minus_20deg = 0; $occupied_capacity = 0; foreach ($store_fridges as $fridge) { $total_net_volume_minus_20deg += $fridge->Fridge_Equipment->Net_Vol_Minus_20deg; } //Get the stock balances for each of the vaccines at this point in time foreach ($freezer_vaccines as $vaccine) { if ($vaccine->Active == "0") { continue; } $volume = $vaccine->Vaccine_Packed_Volume; if ($national > 0) { $stock_balance = Disbursements::getNationalPeriodBalance($vaccine->id, $now); } if ($region > 0) { $stock_balance = Disbursements::getRegionalPeriodBalance($region, $vaccine->id, $now); } if ($district > 0) { $stock_balance = Disbursements::getDistrictPeriodBalance($district, $vaccine->id, $now); } $volume_occupied = $volume * $stock_balance; if ($volume_occupied > 0) { $volume_occupied = $volume_occupied / 1000; $occupied_capacity += $volume_occupied; } } $percentage_occupied = number_format($occupied_capacity / $total_net_volume_minus_20deg, 3) * 100; $chart = '<chart bgColor="FFFFFF"'; if ($percentage_occupied >= 75) { $chart .= ' cylFillColor="EB0000"'; } else { $chart .= ' cylFillColor="07E007"'; } $chart .= ' showBorder="0" showCanvasBase="1" cylRadius="20" upperLimit="100" lowerLimit="0" tickMarkGap="5" numberSuffix="%" caption="% of Fridge Occupied"> <value>' . $percentage_occupied . '</value> <annotations> <annotationGroup> <annotation type="text" label="Freezer" font="Verdana" xPos="10" yPos="285" align="left" vAlign="left" fontcolor="333333" fontSize="10"/> </annotationGroup> </annotations> </chart>'; echo $chart; }