Example #1
0
	public function view_list() {  
		$regions = Regions::getAllRegions();
		$data['regions'] = $regions;
		$data['title'] = "Region Management::All The Regions";
		$data['module_view'] = "view_regions_view";
		$this -> base_params($data);
	}
Example #2
0
 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);
 }
Example #3
0
 public function index()
 {
     $final_html = "";
     $css = "<style type='text/css'>\n\t\ttd{\n\t\t\tborder:1px solid black; \n\t\t}\n\t\t.no_border{\n\t\t\tborder: none;\n\t\t} \n\t\t.regionals td{\n\t\t\tmin-width:110px;\n\t\t}\n\t\tth, .title{\n\t\t\tbackground:#DDD;\n\t\t\tborder:none;\n\t\t\tpadding:0;\n\t\t\tmargin:0;\n\t\t}\n\t\t\n\t\t</style>";
     $final_html .= $css;
     $html_title = "<img src='Images/coat_of_arms.png' style='position:absolute;  width:160px; top:0px; right:0px; margin-bottom:-100px;margin-right:-100px;'></img>";
     $html_title .= "<h2 style='text-align:center; text-decoration:underline;'>Republic of Kenya</h2>";
     $html_title .= "<h3 style='text-align:center; text-decoration:underline;'>Ministry of Public Health and Sanitation</h3>";
     $html_title .= "<h1 style='text-align:center; text-decoration:underline;'>MONTHLY VACCINE STOCK MANAGEMENT REPORT</h1>";
     //echo "$html_title";
     $final_html .= $html_title;
     $final_html .= $this->create_national_report();
     $this->load->library('mpdf');
     $mpdf = new mPDF('', 'A4-L', 0, '', 15, 15, 16, 16, 9, 9, '');
     $mpdf->SetTitle('MONTHLY VACCINE STOCK MANAGEMENT REPORT');
     $mpdf->WriteHTML($final_html);
     $regions = Regions::getAllRegions();
     foreach ($regions as $region) {
         $regional_report = $this->create_regional_reports($region);
         $mpdf->AddPage();
         $mpdf->WriteHTML($regional_report);
         //
     }
     //echo $final_html
     $mpdf->Output('Summaries/Monthly_Summary.pdf', 'F');
     $this->email_reports();
 }
Example #4
0
 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);
 }
Example #5
0
	public function edit_user($id) {
		$user = User::getUser($id);
		$data['user'] = $user;
		$data['title'] = "User Management::Edit " . $user -> Full_Name . "'s Details";
		$data['title'] = "User Management::Add New User";
		$data['module_view'] = "add_user_view";
		$data['groups'] = User_Groups::getAllGroups();
		$data['districts'] = Districts::getAllDistricts();
		$data['regions'] = Regions::getAllRegions();
		$this -> base_params($data);
	}
	public function send_reports() {
		//Create the National report and save it!
		$national_data = $this -> create_national_report();
		$name = 'Country_Vaccine_Status_Summary.xls';
		$this -> write_file($name, $national_data);
		//Create the Regional Reports and Save them
		$regions = Regions::getAllRegions();
		foreach ($regions as $region) {
			$region_data = $this -> create_regional_reports($region);
			$name = $region -> name . "_Vaccine_Status_Summary.xls";
			$this -> write_file($name, $region_data);
		}
		//Email all the reports
		$this -> email_reports();
	}
	public static function getNationalPopulation($year) {
		$regions = Regions::getAllRegions();
		$total_population = 0;
		foreach ($regions as $region) {
			$region_id = $region->id;
			$query = Doctrine_Query::create() -> select("population") -> from("regional_populations") -> where("region_id = '$region_id' and year='$year'");
			$population_object = $query -> execute(array(), Doctrine::HYDRATE_ARRAY);
			if (isset($population_object[0])) {
				$total_population += str_replace(',', '', $population_object[0]['population']);
			} else {
				$query = Doctrine_Query::create() -> select("population") -> from("regional_populations") -> where("region_id = '$region_id'") -> OrderBy("id desc") -> limit(0);
				$population_object = $query -> execute(array(), Doctrine::HYDRATE_ARRAY); 
				if (isset($population_object[0])) {
					$total_population += str_replace(',', '', $population_object[0]['population']);
				} else {
					$total_population += 0;
				}
			}
		}
		return $total_population;
	}
	public function view_ledger($type, $id, $paged_vaccine = null, $date_from = null, $date_to = null, $offset = 0, $default_offset = 0) {
		$data['type'] = $type;
		//get current district/region
		$district_or_province = $this -> session -> userdata('district_province_id');
		//get current level
		$identifier = $this -> session -> userdata('user_identifier');
		$dummy_identifier = "";
		//Determine if the user is trying to view the ledger for his/her own store
		//Type 0 means we are drilling down to a region
		if ($type == 0) {
			if ($identifier == "provincial_officer" && $district_or_province == $id) {
				redirect("disbursement_management/view_disbursements");
			}
			$dummy_identifier = "provincial_officer";
		}
		//Type 1 means we are drilling down to a district
		else if ($type == 1) {
			if ($identifier == "district_officer" && $district_or_province == $id) {
				redirect("disbursement_management/view_disbursements");
			}
			$dummy_identifier = "district_officer";
		}
		//Type 2 means we are drilling down to the whole country
		else if ($type == 2) {
			if ($identifier == "national_officer") {
				redirect("disbursement_management/view_disbursements");
			}
			$dummy_identifier = "national_officer";
		}
		$data['identifier'] = $dummy_identifier;
		$data['district_or_province'] = $id;

		$district_or_province = $id;
		//Now display the 'foreign' ledger
		$to = $this -> input -> post('to');
		$from = $this -> input -> post('from');
		$store = $this -> input -> post('selected_store_id');
		$order_by = $this -> input -> post('order_by');
		$order = $this -> input -> post('order');
		$per_page = $this -> input -> post('per_page');
		if ($to == false) {
			$to = date("U", mktime(0, 0, 0, 1, 1, date("Y") + 1));
		} else if ($to == true) {
			$to = strtotime($to);
		}
		if ($from == false) {
			$from = date("U", mktime(0, 0, 0, 1, 1, date('Y')));
		} else if ($from == true) {
			$from = strtotime($from);
		}

		if ($date_from != null) {
			$from = $date_from;
		} else if ($date_to != null) {
			$to = $date_to;
		}

		//Check if the user has specified how many items he/she wants per page. If not, default to 10 items per page.
		if ($per_page > 0) {
			$this -> session -> set_userdata(array("external_from" => $from, "external_to" => $to, "external_per_page" => $per_page, "external_order_by" => $order_by, "external_order" => $order));
		} else {
			$temp = $this -> session -> userdata('external_per_page');
			if ($temp == false) {
				$this -> session -> set_userdata(array("external_from" => $from, "external_to" => $to, "external_per_page" => 10, "external_order_by" => "Date_Issued_Timestamp", "external_order" => "DESC"));
			}
		}
		$items_per_page = $this -> session -> userdata('external_per_page');
		$order_by = $this -> session -> userdata('external_order_by');
		$order = $this -> session -> userdata('external_order');

		$region = 0;
		$district = 0;
		if ($store != null) {
			$split_parts = explode("_", $store);
			$type = $split_parts[0];
			$id = $split_parts[1];
			if ($type == "district") {
				$district = $id;
				$this -> session -> set_userdata(array("external_region" => ""));
				$this -> session -> set_userdata(array("external_district" => $district));
			} else if ($type == "region") {
				$region = $id;
				$this -> session -> set_userdata(array("external_district" => ""));
				$this -> session -> set_userdata(array("external_region" => $region));
			} else if ($type == "national") {
				$this -> session -> set_userdata(array("external_district" => ""));
				$this -> session -> set_userdata(array("external_region" => ""));
			}
		}
		$district = $this -> session -> userdata('external_district');
		$region = $this -> session -> userdata('external_region');
		$data['vaccines'] = Vaccines::getAll_Minified();
		$return_array = array();
		$balances = array();

		if ($type == 2) {//National Level
			$recipient = "Central Vaccines Store";
			foreach ($data['vaccines'] as $vaccine) {
				//skip the vaccine that is currently being browsed through
				if ($vaccine -> id == $paged_vaccine) {
					continue;
				}
				$total_disbursements = Disbursements::getTotalNationalDisbursements($vaccine -> id, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "external_ledger_management/view_ledger/" . $type . "/" . $id . "/" . $vaccine -> id . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 9;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$vaccine -> id] = $this -> pagination -> create_links();
				}
				if ($order == "ASC") {
					$balances[$vaccine -> id] = Disbursements::getNationalPeriodBalance($vaccine -> id, $from);
				} else if ($order == "DESC") {
					$balances[$vaccine -> id] = Disbursements::getNationalPeriodBalance($vaccine -> id, $to);
				}

				$return_array[$vaccine -> id] = Disbursements::getNationalDisbursements($vaccine -> id, $from, $to, $default_offset, $items_per_page, $district, $region, $order_by, $order, $balances[$vaccine -> id]);

			}

			if ($paged_vaccine != null) {
				$data['paged_vaccine'] = $paged_vaccine;
				$total_disbursements = Disbursements::getTotalNationalDisbursements($paged_vaccine, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "external_ledger_management/view_ledger/" . $type . "/" . $id . "/" . $paged_vaccine . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 8;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$paged_vaccine] = $this -> pagination -> create_links();
				}
				if ($order == "ASC") {
					$balances[$paged_vaccine] = Disbursements::getNationalPeriodBalance($paged_vaccine, $from);
				} else if ($order == "DESC") {
					$balances[$paged_vaccine] = Disbursements::getNationalPeriodBalance($paged_vaccine, $to);
				}
				$return_array[$paged_vaccine] = Disbursements::getNationalDisbursements($paged_vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balances[$paged_vaccine]);

			}
		} else if ($type == 0) {//Regional Store Level
			$recipient = Regions::getRegionName($district_or_province);
			foreach ($data['vaccines'] as $vaccine) {
				if ($vaccine -> id == $paged_vaccine) {
					continue;
				}
				$total_disbursements = Disbursements::getTotalRegionalDisbursements($district_or_province, $vaccine -> id, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "external_ledger_management/view_ledger/" . $type . "/" . $id . "/" . $vaccine -> id . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 9;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$vaccine -> id] = $this -> pagination -> create_links();
				}
				if ($order == "ASC") {
					$balances[$vaccine -> id] = Disbursements::getRegionalPeriodBalance($district_or_province, $vaccine -> id, $from);
				} else if ($order == "DESC") {
					$balances[$vaccine -> id] = Disbursements::getRegionalPeriodBalance($district_or_province, $vaccine -> id, $to);
				}
				$return_array[$vaccine -> id] = Disbursements::getRegionalDisbursements($district_or_province, $vaccine -> id, $from, $to, $default_offset, $items_per_page, $district, $region, $order_by, $order, $balances[$vaccine -> id]);

			}

			if ($paged_vaccine != null) {
				$data['paged_vaccine'] = $paged_vaccine;
				$total_disbursements = Disbursements::getTotalRegionalDisbursements($district_or_province, $paged_vaccine, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "external_ledger_management/view_ledger/" . $type . "/" . $id . "/" . $paged_vaccine . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 8;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$paged_vaccine] = $this -> pagination -> create_links();
				}
				if ($order == "ASC") {
					$balances[$paged_vaccine] = Disbursements::getRegionalPeriodBalance($district_or_province, $paged_vaccine, $from);
				} else if ($order == "DESC") {
					$balances[$paged_vaccine] = Disbursements::getRegionalPeriodBalance($district_or_province, $paged_vaccine, $to);
				}
				$return_array[$paged_vaccine] = Disbursements::getRegionalDisbursements($district_or_province, $paged_vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balances[$paged_vaccine]);

			}
		} else if ($type == 1) {//District Store Level
			$recipient = Districts::getDistrictName($district_or_province);
			foreach ($data['vaccines'] as $vaccine) {
				if ($vaccine -> id == $paged_vaccine) {
					continue;
				}
				$total_disbursements = Disbursements::getTotalDistrictDisbursements($district_or_province, $vaccine -> id, $from, $to, $district);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "external_ledger_management/view_ledger/" . $type . "/" . $id . "/" . $vaccine -> id . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 9;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$vaccine -> id] = $this -> pagination -> create_links();
				}
				if ($order == "ASC") {
					$balances[$vaccine -> id] = Disbursements::getDistrictPeriodBalance($district_or_province, $vaccine -> id, $from);
				} else if ($order == "DESC") {
					$balances[$vaccine -> id] = Disbursements::getDistrictPeriodBalance($district_or_province, $vaccine -> id, $to);
				}
				$return_array[$vaccine -> id] = Disbursements::getDistrictDisbursements($district_or_province, $vaccine -> id, $from, $to, $default_offset, $items_per_page, $order_by, $order, $district, $balances[$vaccine -> id]);

			}

			if ($paged_vaccine != null) {
				$data['paged_vaccine'] = $paged_vaccine;
				$total_disbursements = Disbursements::getTotalDistrictDisbursements($district_or_province, $paged_vaccine, $from, $to, $district);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "external_ledger_management/view_ledger/" . $type . "/" . $id . "/" . $paged_vaccine . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 8;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$paged_vaccine] = $this -> pagination -> create_links();
				}
				if ($order == "ASC") {
					$balances[$paged_vaccine] = Disbursements::getDistrictPeriodBalance($district_or_province, $paged_vaccine, $from);
				} else if ($order == "DESC") {
					$balances[$paged_vaccine] = Disbursements::getDistrictPeriodBalance($district_or_province, $paged_vaccine, $to);
				}
				$return_array[$paged_vaccine] = Disbursements::getDistrictDisbursements($district_or_province, $paged_vaccine, $from, $to, $offset, $items_per_page, $order_by, $order, $district, $balances[$paged_vaccine]);

			}
		}
		$data['title'] = $recipient . " Stock Ledger For The Period Between " . date('d/m/Y', $from) . " to " . date('d/m/Y', $to);
		$data['recipient'] = $recipient;
		$data['content_view'] = "view_external_ledger";

		$data['disbursements'] = $return_array;
		//$data['balances'] = $balances;
		$data['stylesheets'] = array("pagination.css");
		//Get all the districts and regions so as to enable drilling down to a particular store
		$data['districts'] = Districts::getAllDistricts();
		$data['regions'] = Regions::getAllRegions();
		$this -> base_params_min($data);
	}
Example #9
0
 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);
 }
	public function view_disbursements($paged_vaccine = null, $date_from = null, $date_to = null, $offset = 0, $default_offset = 0) {
		$district_or_province = $this -> session -> userdata('district_province_id');
		$this -> load -> helper('to_excel');
		$to = $this -> input -> post('to');
		$from = $this -> input -> post('from');
		$store = $this -> input -> post('selected_store_id');
		$order_by = $this -> input -> post('order_by');
		$order = $this -> input -> post('order');
		$per_page = $this -> input -> post('per_page');

		if ($to == false) {
			$to = date("U", mktime(0, 0, 0, 1, 1, date("Y") + 1));
		} else if ($to == true) {
			$to = strtotime($to);
		}
		if ($from == false) {
			$from = date("U", mktime(0, 0, 0, 1, 1, date('Y')));
		} else if ($from == true) {
			$from = strtotime($from);
		}

		if ($date_from != null) {
			$from = $date_from;
		} else if ($date_to != null) {
			$to = $date_to;
		}

		//Check if the user has specified how many items he/she wants per page. If not, default to 10 items per page.
		if ($per_page > 0) {
			$this -> session -> set_userdata(array("from" => $from, "to" => $to, "per_page" => $per_page, "order_by" => $order_by, "order" => $order));
		} else {
			$temp = $this -> session -> userdata('per_page');
			if ($temp == false) {
				$this -> session -> set_userdata(array("from" => $from, "to" => $to, "per_page" => 10, "order_by" => "Unix_Timestamp(str_to_date(Date_Issued,'%m/%d/%Y'))", "order" => "DESC"));
			}

		}
		$items_per_page = $this -> session -> userdata('per_page');
		$order_by = $this -> session -> userdata('order_by');
		$order = $this -> session -> userdata('order');

		$region = 0;
		$district = 0;
		if ($store != null) {
			$split_parts = explode("_", $store);
			$type = $split_parts[0];
			$id = $split_parts[1];
			if ($type == "district") {
				$district = $id;
				$this -> session -> set_userdata(array("region" => ""));
				$this -> session -> set_userdata(array("district" => $district));
			} else if ($type == "region") {
				$region = $id;
				$this -> session -> set_userdata(array("district" => ""));
				$this -> session -> set_userdata(array("region" => $region));
			} else if ($type == "national") {
				$this -> session -> set_userdata(array("district" => ""));
				$this -> session -> set_userdata(array("region" => ""));
			}
		}
		$district = $this -> session -> userdata('district');
		$region = $this -> session -> userdata('region');

		$data['title'] = "Disbursement Management::Vaccine Stock Ledger For The Period Between " . date('d/m/Y', $from) . " to " . date('d/m/Y', $to);
		$data['content_view'] = "view_ledger_view";
		$data['vaccines'] = Vaccines::getAll_Minified();
		$return_array = array();
		$balances = array();

		//Retrieve the user identifier from the session
		$identifier = $this -> session -> userdata('user_identifier');

		if ($identifier == "national_officer") {//National Level

			foreach ($data['vaccines'] as $vaccine) {
				//skip the vaccine that is currently being browsed through
				if ($vaccine -> id == $paged_vaccine) {
					continue;
				}
				$total_disbursements = Disbursements::getTotalNationalDisbursements($vaccine -> id, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "disbursement_management/view_disbursements/" . $vaccine -> id . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 7;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$vaccine -> id] = $this -> pagination -> create_links();
				}
				$balances[$vaccine -> id] = Disbursements::getNationalPeriodBalance($vaccine -> id, $from);
				$return_array[$vaccine -> id] = Disbursements::getNationalDisbursements($vaccine -> id, $from, $to, $default_offset, $items_per_page, $district, $region, $order_by, $order, $balances[$vaccine -> id]);

			}

			if ($paged_vaccine != null) {
				$data['paged_vaccine'] = $paged_vaccine;
				$total_disbursements = Disbursements::getTotalNationalDisbursements($paged_vaccine, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "disbursement_management/view_disbursements/" . $paged_vaccine . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 6;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$paged_vaccine] = $this -> pagination -> create_links();
				}
				$balances[$paged_vaccine] = Disbursements::getNationalPeriodBalance($paged_vaccine, $from);
				$return_array[$paged_vaccine] = Disbursements::getNationalDisbursements($paged_vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balances[$paged_vaccine]);

			}
		} else if ($identifier == "provincial_officer") {//Regional Store Level
			foreach ($data['vaccines'] as $vaccine) {
				if ($vaccine -> id == $paged_vaccine) {
					continue;
				}
				$total_disbursements = Disbursements::getTotalRegionalDisbursements($district_or_province, $vaccine -> id, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "disbursement_management/view_disbursements/" . $vaccine -> id . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 7;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$vaccine -> id] = $this -> pagination -> create_links();
				}
				$balances[$vaccine -> id] = Disbursements::getRegionalPeriodBalance($district_or_province, $vaccine -> id, $from);
				$return_array[$vaccine -> id] = Disbursements::getRegionalDisbursements($district_or_province, $vaccine -> id, $from, $to, $default_offset, $items_per_page, $district, $region, $order_by, $order, $balances[$vaccine -> id]);

			}

			if ($paged_vaccine != null) {
				$data['paged_vaccine'] = $paged_vaccine;
				$total_disbursements = Disbursements::getTotalRegionalDisbursements($district_or_province, $paged_vaccine, $from, $to, $district, $region);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "disbursement_management/view_disbursements/" . $paged_vaccine . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 6;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$paged_vaccine] = $this -> pagination -> create_links();
				}
				$balances[$paged_vaccine] = Disbursements::getRegionalPeriodBalance($district_or_province, $paged_vaccine, $from);
				$return_array[$paged_vaccine] = Disbursements::getRegionalDisbursements($district_or_province, $paged_vaccine, $from, $to, $offset, $items_per_page, $district, $region, $order_by, $order, $balances[$paged_vaccine]);

			}
		} else if ($identifier == "district_officer") {//District Store Level
			foreach ($data['vaccines'] as $vaccine) {
				if ($vaccine -> id == $paged_vaccine) {
					continue;
				}
				$total_disbursements = Disbursements::getTotalDistrictDisbursements($district_or_province, $vaccine -> id, $from, $to, $district);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "disbursement_management/view_disbursements/" . $vaccine -> id . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 7;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$vaccine -> id] = $this -> pagination -> create_links();
				}
				$balances[$vaccine -> id] = Disbursements::getDistrictPeriodBalance($district_or_province, $vaccine -> id, $from);
				$return_array[$vaccine -> id] = Disbursements::getDistrictDisbursements($district_or_province, $vaccine -> id, $from, $to, $default_offset, $items_per_page, $district, $order_by, $order, $balances[$vaccine -> id]);

			}

			if ($paged_vaccine != null) {
				$data['paged_vaccine'] = $paged_vaccine;
				$total_disbursements = Disbursements::getTotalDistrictDisbursements($district_or_province, $paged_vaccine, $from, $to, $district);

				if ($total_disbursements > $items_per_page) {
					$config['base_url'] = base_url() . "disbursement_management/view_disbursements/" . $paged_vaccine . "/" . $from . "/" . $to;
					$config['total_rows'] = $total_disbursements;
					$config['per_page'] = $items_per_page;
					$config['uri_segment'] = 6;
					$config['num_links'] = 5;
					$this -> pagination -> initialize($config);
					$data['pagination'][$paged_vaccine] = $this -> pagination -> create_links();
				}
				$balances[$paged_vaccine] = Disbursements::getDistrictPeriodBalance($district_or_province, $paged_vaccine, $from);
				$return_array[$paged_vaccine] = Disbursements::getDistrictDisbursements($district_or_province, $paged_vaccine, $from, $to, $offset, $items_per_page, $district, $order_by, $order, $balances[$paged_vaccine]);

			}
		}

		$data['disbursements'] = $return_array;
		$data['balances'] = $balances;
		$data['stylesheets'] = array("pagination.css");
		//Get all the districts and regions so as to enable drilling down to a particular store
		$data['districts'] = Districts::getAllDistricts();
		$data['regions'] = Regions::getAllRegions();
		$this -> base_params_min($data);
	}
Example #11
0
 public function edit_task($id)
 {
     $tasks = Shipments::get_all($id);
     $data['tasks'] = $tasks;
     $data['title'] = "Task Management::Edit Task";
     $data['module_view'] = "add_user_view";
     $data['groups'] = User_Groups::getAllGroups();
     $data['districts'] = Districts::getAllDistricts();
     $data['regions'] = Regions::getAllRegions();
     $this->base_params($data);
     echo $id;
 }
Example #12
0
 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!";
     }
     //}
 }
Example #13
0
    }
});
$this->respond(['GET', 'POST'], '/edit/[:id]', function ($request, $response, $service, $app) {
    $id = $request->param('id');
    $data = json_decode($request->body());
    $result = Regions::updateRegion($id, $data);
    if ($result > 0) {
        $response->json(Result::success('Region Updated.'));
    } elseif ($result === 0) {
        $response->json(Result::success('Region not Updated.'));
    } else {
        $response->json(Result::error('Region not found'));
    }
});
$this->respond(['GET', 'POST'], '/delete/[:id]', function ($request, $response, $service, $app) {
    $id = $request->param('id');
    $result = Regions::deleteRegion($id);
    if ($result > 0) {
        $response->json(Result::success('Region Deleted.'));
    } else {
        $response->json(Result::error('Region not Deleted'));
    }
});
$this->respond(['GET', 'POST'], '/get/all', function ($request, $response, $service, $app) {
    $result = Regions::getAllRegions();
    $response->json(Result::success('', $result));
});
$this->respond(['GET', 'POST'], '/index/all', function ($request, $response, $service, $app) {
    $result = Regions::getAllRegionsForIndex();
    $response->json(Result::success('', $result));
});