public function get_facility_dashboard_notifications_graph_data() { //format the graph here $facility_code = $this->session->userdata('facility_id'); $facility_stock_ = facility_stocks::get_facility_stock_amc($facility_code); $facility_stock_count = count($facility_stock_); $graph_data = array(); $graph_data = array_merge($graph_data, array("graph_id" => 'container')); $graph_data = array_merge($graph_data, array("graph_title" => 'Facility stock level')); $graph_data = array_merge($graph_data, array("color" => "['#4b0082','#FFF263', '#6AF9C4']")); $graph_data = array_merge($graph_data, array("graph_type" => 'bar')); $graph_data = array_merge($graph_data, array("graph_yaxis_title" => 'Total stock level (values in packs)')); $graph_data = array_merge($graph_data, array("graph_categories" => array())); $graph_data = array_merge($graph_data, array("series_data" => array("Current Balance" => array(), "AMC" => array()))); $graph_data['stacking'] = 'normal'; foreach ($facility_stock_ as $facility_stock_) { $graph_data['graph_categories'] = array_merge($graph_data['graph_categories'], array($facility_stock_['commodity_name'])); $graph_data['series_data']['Current Balance'] = array_merge($graph_data['series_data']['Current Balance'], array((double) $facility_stock_['pack_balance'])); $graph_data['series_data']['AMC'] = array_merge($graph_data['series_data']['AMC'], array((double) $facility_stock_['amc'])); } //echo "<pre>";print_r($facility_stock_);echo "</pre>";exit; //create the graph here $faciliy_stock_data = $this->hcmp_functions->create_high_chart_graph($graph_data); $loading_icon = base_url('assets/img/no-record-found.png'); $faciliy_stock_data = $facility_stock_count > 0 ? $faciliy_stock_data : "\$('#container').html('<img src={$loading_icon}>');"; //compute stocked out items $items_stocked_out_in_facility = count(facility_stocks::get_items_that_have_stock_out_in_facility($facility_code)); //get order information from the db $facility_order_count_ = facility_orders::get_facility_order_summary_count($facility_code); //echo "<pre>";print_r($facility_order_count_);echo "<pre>";exit; $facility_order_count = array(); foreach ($facility_order_count_ as $facility_order_count_) { $facility_order_count[$facility_order_count_['status']] = $facility_order_count_['total']; } //get potential expiries infor here $potential_expiries = Facility_stocks::potential_expiries($facility_code)->count(); //get actual Expiries infor here $actual_expiries = count(Facility_stocks::All_expiries($facility_code)); //get items they have been donated for $facility_donations = redistribution_data::get_all_active($facility_code, "to-me")->count(); //get items they have been donated and are pending $facility_donations_pending = redistribution_data::get_all_active($facility_code)->count(); //get stocks from v1 $stocks_from_v1 = 0; if ($facility_stock_count == 0 && $facility_donations == 0 && $facility_donations_pending == 0) { $stocks_from_v1 = count(facility_stocks::import_stock_from_v1($facility_code)); } return array('facility_stock_count' => $facility_stock_count, 'faciliy_stock_graph' => $faciliy_stock_data, 'items_stocked_out_in_facility' => $items_stocked_out_in_facility, 'facility_order_count' => $facility_order_count, 'potential_expiries' => $potential_expiries, 'actual_expiries' => $actual_expiries, 'facility_donations' => $facility_donations, 'facility_donations_pending' => $facility_donations_pending, 'stocks_from_v1' => $stocks_from_v1); }
public function import($facility_code = null) { //redirect("stock/facility_stock_first_run/first_run"); $facility_code = isset($facility_code) ? $facility_code : $this->session->userdata('facility_id'); $reset_facility_historical_stock_table = Doctrine_Manager::getInstance()->getCurrentConnection(); $reset_facility_historical_stock_table->execute("DELETE FROM `facility_monthly_stock` WHERE facility_code={$facility_code}; "); $reset_facility_issues_table = Doctrine_Manager::getInstance()->getCurrentConnection(); $reset_facility_issues_table->execute("DELETE FROM `facility_issues` WHERE facility_code={$facility_code};"); $old_facility_stock = facility_stocks::import_stock_from_v1($facility_code); $old_facility_issues = facility_stocks::import_issues_from_v1($facility_code); $old_facility_orders = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll("select\n *\n from\n kemsa2.ordertbl\n where ordertbl.facilityCode = {$facility_code}"); $in_to_stock = $in_to_amc = $in_to_issues = $amc_ids = $in_to_orders = array(); if (count($old_facility_stock) > 0) { foreach ($old_facility_stock as $old_facility_stock) { if (isset($old_facility_stock['new_id'])) { $temp = array('commodity_id' => $old_facility_stock['new_id'], 'facility_code' => $old_facility_stock['facility_code'], 'unit_size' => $old_facility_stock['unit_size_'], 'batch_no' => $old_facility_stock['batch_no'] == '' ? 'N/A' : $old_facility_stock['batch_no'], 'manu' => $old_facility_stock['manufacture'] == '' ? 'N/A' : $old_facility_stock['manufacture'], 'expiry_date' => date('d My', strtotime($old_facility_stock['expiry_date'])), 'stock_level' => $old_facility_stock['balance'] < 0 ? 0 : $old_facility_stock['balance'], 'total_unit_count' => $old_facility_stock['new_total_units'], 'unit_issue' => 'Unit_Size', 'total_units' => $old_facility_stock['balance'] < 0 ? 0 : $old_facility_stock['balance'], 'source_of_item' => 1, 'supplier' => 'KEMSA'); array_push($in_to_stock, $temp); if (!array_key_exists('new_id' . $old_facility_stock['new_id'], $amc_ids)) { $old_amc = facility_stocks::import_amc_from_v1($facility_code, $old_facility_stock['old_id']); $new_units = $old_amc[0]['old_total_units'] != $old_amc[0]['new_total_units'] ? round($old_amc[0]['consumption_level'] * $old_amc[0]['old_total_units'] / $old_amc[0]['new_total_units']) : $old_amc[0]['unit_count']; $temp = array('commodity_id' => $old_facility_stock['new_id'], 'facility_code' => $old_facility_stock['facility_code'], 'consumption_level' => isset($old_amc[0]['consumption_level']) ? $old_amc[0]['consumption_level'] : 0, 'selected_option' => isset($old_amc[0]['selected_option']) ? $old_amc[0]['selected_option'] : "Pack_Size", 'total_units' => isset($new_units) ? $new_units : 0); array_push($in_to_amc, $temp); $amc_ids = array_merge($amc_ids, array('new_id' . $old_facility_stock['new_id'] => 'new_id' . $old_facility_stock['new_id'])); } } } $this->db->insert_batch('facility_monthly_stock', $in_to_amc); $this->db->insert_batch('facility_stocks_temp', $in_to_stock); } if (count($old_facility_issues)) { foreach ($old_facility_issues as $old_facility_issues) { $temp = array('commodity_id' => $old_facility_issues['new_id'], 's11_No' => $old_facility_issues['s11_No'], 'facility_code' => $old_facility_issues['facility_code'], 'batch_no' => isset($old_facility_issues['batch_no']) ? $old_facility_issues['batch_no'] : 'N/A', 'expiry_date' => strtotime($old_facility_issues['expiry_date']) ? $old_facility_issues['expiry_date'] : "N/A", 'balance_as_of' => $old_facility_issues['balanceAsof'], 'qty_issued' => $old_facility_issues['qty_issued'], 'date_issued' => $old_facility_issues['date_issued'], 'issued_to' => $old_facility_issues['issued_to'], 'created_at' => $old_facility_issues['created_at'], 'issued_by' => $old_facility_issues['issued_by'], 'status' => 2); array_push($in_to_issues, $temp); } $this->db->insert_batch('facility_issues', $in_to_issues); } if (count($old_facility_orders) > 0) { foreach ($old_facility_orders as $old_facility_orders) { $order_status = $old_facility_orders["orderStatus"]; $name = $old_facility_orders["reciever_name"]; $new_order_id = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll('select * from hcmp_rtk.facility_order_status where facility_order_status.status_desc like "%' . $order_status . '%"'); $new_name_id = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll('select * from kemsa2.user where concat (user.fname," ",user.lname) like "%' . $name . '%"'); $temp = array('order_date' => $old_facility_orders['orderDate'], 'approval_date' => $old_facility_orders['approvalDate'], 'dispatch_date' => $old_facility_orders['dispatchDate'], 'deliver_date' => $old_facility_orders['deliverDate'], 'dispatch_update_date' => $old_facility_orders['dispatch_update_date'], 'facility_code' => $old_facility_orders['facilityCode'], 'order_no' => $old_facility_orders['order_no'], 'workload' => $old_facility_orders['workload'], 'bed_capacity' => $old_facility_orders['bedcapacity'], 'kemsa_order_id' => $old_facility_orders['kemsaOrderid'], 'reciever_id' => count($new_name_id) > 0 ? $new_name_id[0]['id'] : NULL, 'drawing_rights' => $old_facility_orders['drawing_rights'], 'ordered_by' => $old_facility_orders['orderby'], 'approved_by' => $old_facility_orders['approveby'], 'dispatch_by' => $old_facility_orders['dispatchby'], 'warehouse' => $old_facility_orders['warehouse'], 'source' => 1, 'deliver_total' => $old_facility_orders['total_delivered'], 'status' => $new_order_id[0]['id'], 'order_total' => $old_facility_orders["orderTotal"]); $this->db->insert('facility_orders', $temp); $new_order_no = $this->db->insert_id(); $order_details_match = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll("select\n *\n from\n kemsa2.orderdetails\n left join\n hcmp_rtk.drug_commodity_map ON drug_commodity_map.old_id = orderdetails.kemsa_code\n where orderdetails.orderNumber =" . $old_facility_orders['id']); foreach ($order_details_match as $order_details_match) { $temp_array = array("commodity_id" => $order_details_match['new_id'], 'quantity_ordered_pack' => round($order_details_match['quantityOrdered']), 'quantity_ordered_unit' => $order_details_match['quantityOrdered'] * $order_details_match['new_total_units'], 'quantity_recieved' => $order_details_match['quantityRecieved'], 'price' => $order_details_match['new_price'], 'o_balance' => $order_details_match['o_balance'], 't_receipts' => $order_details_match['t_receipts'], 't_issues' => $order_details_match['t_issues'], 'adjustpve' => 0, 'adjustnve' => 0, 'losses' => $order_details_match['losses'], 'days' => $order_details_match['days'], 'c_stock' => $order_details_match['c_stock'], 'comment' => $order_details_match['comment'], 's_quantity' => $order_details_match['s_quantity'], 'amc' => $order_details_match['historical_consumption'], 'order_number_id' => $new_order_no); array_push($in_to_orders, $temp_array); } } $this->db->insert_batch('facility_order_details', $in_to_orders); } redirect("stock/facility_stock_first_run/first_run/import"); }