예제 #1
0
	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;
	}
예제 #2
0
    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;
    }
예제 #3
0
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;
}
예제 #4
0
 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;
 }