Example #1
0
 public function facility_order($source = NULL, $facility_code = null)
 {
     header('Content-Type: text/html; charset=UTF-8');
     //pick the facility code from the session as it is set
     if (!isset($facility_code)) {
         $facility_code = $this->session->userdata('facility_id');
         $data['other_facility_code'] = $facility_code;
     }
     $amc_calc = $this->amc($county, $district, $facility_code);
     //echo '<pre>'; print_r($amc_calc);echo '<pre>'; exit;
     $items = isset($source) && $source == 2 ? Facility_Transaction_Table::get_commodities_for_ordering_meds($facility_code, $source) : Facility_Transaction_Table::get_commodities_for_ordering($facility_code);
     // echo '<pre>'; print_r($items);echo '<pre>'; exit;
     if (isset($_FILES['file']) && $_FILES['file']['size'] > 0) {
         $ext = pathinfo($_FILES["file"]['name'], PATHINFO_EXTENSION);
         //echo $ext;exit;
         //echo $_FILES["file"]["tmp_name"];exit;
         if ($ext == 'xls') {
             $excel2 = PHPExcel_IOFactory::createReader('Excel5');
         } else {
             if ($ext == 'xlsx') {
                 $excel2 = PHPExcel_IOFactory::createReader('Excel2007');
             } else {
                 die('Invalid file format given' . $_FILES['file']);
             }
         }
         $excel2 = $objPHPExcel = $excel2->load($_FILES["file"]["tmp_name"]);
         // Empty Sheet
         $sheet = $objPHPExcel->getSheet(0);
         $highestRow = $sheet->getHighestRow();
         $highestColumn = $sheet->getHighestColumn();
         $temp = array();
         if ($sheet->getCell('H4')->getValue() != '') {
             $facility_code = $sheet->getCell('H4')->getValue();
         } else {
             $facility_code = $sheet->getCell('J4')->getValue();
         }
         $checker = $sheet->getCell('E17')->getValue();
         //  Loop through each row of the worksheet in turn
         $array_code = array();
         $array_commodity = array();
         $array_category = array();
         $array_pack = array();
         $array_price = array();
         $array_order_qty = array();
         $array_order_val = array();
         //$array_code=array();
         for ($row = 17; $row <= $highestRow; $row++) {
             //  Read a row of data into an array
             $rowData = $objPHPExcel->getActiveSheet()->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
             if ($checker == '#REF!' || $checker == '=VLOOKUP(C17,#REF!,1,FALSE)') {
                 unset($rowData[0][4]);
                 unset($rowData[0][5]);
                 foreach ($rowData as $key => $value) {
                     unset($rowData);
                     $rowData[] = array_values($value);
                 }
             }
             //count($rowData);
             $code = preg_replace('/\\s+/ ', '', $rowData[0][2]);
             $code = str_replace('-', '', $code);
             $array_index[] = $rowData[0][1] - 1;
             $array_code[] = $code;
             $array_commodity[] = $rowData[0][3];
             $array_category[] = $rowData[0][4];
             $array_price[] = $rowData[0][6];
             $array_order_qty[] = (int) $rowData[0][7];
             $array_order_val[] = $rowData[0][8];
             $array_pack[] = $rowData[0][5];
         }
         // echo '<pre>'; print_r($array_order_qty);echo '<pre>'; exit;
         foreach ($array_order_qty as $id => $key) {
             array_push($temp, array('sub_category_name' => $array_category[$id], 'commodity_name' => $array_commodity[$id], 'unit_size' => $array_pack[$id], 'unit_cost' => $array_price[$id] == '' ? 0 : (double) $array_price[$id], 'commodity_code' => preg_replace('/[\\x00-\\x1F\\x80-\\xFF]/', '', $array_code[$id]), 'commodity_id' => $data['commodity_id'], 'quantity_ordered' => $array_order_qty[$id] == '' ? 0 : (int) $array_order_qty[$id], 'total_commodity_units' => 0, 'opening_balance' => 0, 'total_receipts' => 0, 'total_issues' => 0, 'comment' => '', 'closing_stock_' => 0, 'closing_stock' => 0, 'days_out_of_stock' => 0, 'date_added' => '', 'losses' => 0, 'status' => 0, 'adjustmentpve' => 0, 'adjustmentnve' => 0, 'historical' => 0));
         }
         foreach ($temp as $key => $value) {
             if ($value['commodity_code'] == "" || $value['quantity_ordered'] == 0) {
                 unset($temp[$key]);
             }
         }
         $array_id = array();
         $array_codes = array();
         $main_array = array();
         $weka = array();
         $k = 0;
         // echo "<pre>";print_r($temp);echo "</pre>";exit;
         foreach ($temp as $keys) {
             $kemsa = $keys['commodity_code'];
             $kemsa = preg_replace('/[\\x00-\\x1F\\x80-\\xFF]/', '', $kemsa);
             $unit_cost = (int) $keys['unit_cost'];
             //echo $unit_cost.'-'.$k++;echo '<pre>';
             $get_id = Commodities::get_id($kemsa, $unit_cost);
             //print_r( $get_id.$k++);echo '<pre>';
             $weka[] = $get_id;
             $array_codes[] = $kemsa;
             $main_array[] = $keys;
             foreach ($get_id as $key2) {
                 $array_id[] = $key2['id'];
                 $array_total_units[] = $key2['total_commodity_units'];
                 //echo '<pre>'; print_r($key2.'-'.$k++);echo '<pre>';
             }
         }
         //exit;
         $array_combined = array();
         $id_count = count($main_array);
         // echo '<pre>'; print_r($id_count);echo '<pre>'; exit;
         for ($i = 1; $i < $id_count; $i++) {
             $main_array[$i]['commodity_id'] = $array_id[$i];
             $main_array[$i]['total_commodity_units'] = $array_total_units[$i];
         }
         $data['order_details'] = $data['facility_order'] = $main_array;
     } else {
         //create new array to hold pushed amc values
         $new = array();
         foreach ($items as $value) {
             $drud_id = $value['commodity_id'];
             $historical = $value['historical'];
             for ($i = 0; $i < count($items); $i++) {
                 if ($drud_id == $amc_calc[$i]['commodity_id']) {
                     $historical = $amc_calc[$i]['amc_packs'];
                 }
             }
             $unit_size = $value['unit_size'];
             $commodity_name = $value['commodity_name'] . ' (' . $unit_size . ')';
             array_push($new, array('sub_category_name' => $value['sub_category_name'], 'commodity_name' => $commodity_name, 'unit_size' => $unit_size, 'unit_cost' => $value['unit_cost'], 'commodity_code' => $value['commodity_code'], 'commodity_id' => $value['commodity_id'], 'quantity_ordered' => $value['quantity_ordered'], 'total_commodity_units' => $value['total_commodity_units'], 'opening_balance' => $value['opening_balance'], 'total_receipts' => $value['total_receipts'], 'total_issues' => $value['total_issues'], 'comment' => $value['comment'], 'closing_stock_' => $value['closing_stock_'], 'closing_stock' => $value['closing_stock'], 'days_out_of_stock' => $value['days_out_of_stock'], 'date_added' => $value['date_added'], 'losses' => $value['losses'], 'status' => $value['status'], 'adjustmentpve' => $value['adjustmentpve'], 'adjustmentnve' => $value['adjustmentnve'], 'historical' => round($historical)));
             // array_push($new, array('sub_category_name' => $value['sub_category_name'], 'commodity_name' => $value['commodity_name'], 'unit_size' => $value['unit_size'], 'unit_cost' => $value['unit_cost'], 'commodity_code' => $value['commodity_code'], 'commodity_id' => $value['commodity_id'], 'quantity_ordered' => $value['quantity_ordered'], 'total_commodity_units' => $value['total_commodity_units'], 'opening_balance' => $value['opening_balance'], 'total_receipts' => $value['total_receipts'], 'total_issues' => $value['total_issues'], 'comment' => $value['comment'], 'closing_stock_' => $value['closing_stock_'], 'closing_stock' => $value['closing_stock'], 'days_out_of_stock' => $value['days_out_of_stock'], 'date_added' => $value['date_added'], 'losses' => $value['losses'], 'status' => $value['status'], 'adjustmentpve' => $value['adjustmentpve'], 'adjustmentnve' => $value['adjustmentnve'], 'historical' => round($historical)));
         }
         $items = $new;
         $data['order_details'] = $data['facility_order'] = $items;
     }
     // $data['facility_order'] = $items;
     // echo '<pre>'; print_r($items);echo '<pre>'; exit;
     // $facility_code = $this -> session -> userdata('facility_id');
     $facility_data = Facilities::get_facility_name_($facility_code);
     // echo "<pre>";print_r($facility_data);
     $source_name = $source == 2 ? 'MEDS' : 'KEMSA';
     $data['content_view'] = $source == 2 ? "facility/facility_orders/facility_order_meds_new" : "facility/facility_orders/facility_order_from_kemsa_v";
     $data['facility_code'] = $facility_code;
     $data['title'] = "Facility New Order";
     $data['banner_text'] = "Facility New Order " . $source_name;
     $data['drawing_rights'] = $facility_data[0]['drawing_rights'];
     $data['facility_commodity_list'] = $source == 2 ? Commodities::get_meds_commodities_not_in_facility($facility_code, $source) : Commodities::get_commodities_not_in_facility($facility_code);
     // echo '<pre>'; print_r($data['facility_commodity_list']);echo '<pre>'; exit;
     $this->load->view('shared_files/template/template', $data);
 }