Esempio n. 1
0
 public function internal_issue()
 {
     //security check
     // echo "<pre>";print_r($this->input->post());echo "</pre>";exit;
     if ($this->input->post('service_point')) {
         $facility_code = $this->session->userdata('facility_id');
         $service_points = array_values($this->input->post('service_point'));
         $commodity_id = array_values($this->input->post('desc'));
         $commodity_balance_before = array_values($this->input->post('commodity_balance'));
         $facility_stock_id = array_values($this->input->post('facility_stock_id'));
         $batch_no = array_values($this->input->post('batch_no'));
         $expiry_date = array_values($this->input->post('expiry_date'));
         $commodity_unit_of_issue = array_values($this->input->post('commodity_unit_of_issue'));
         $quantity_issued = array_values($this->input->post('quantity_issued'));
         $clone_datepicker_normal_limit_today = array_values($this->input->post('clone_datepicker_normal_limit_today'));
         $total_units = array_values($this->input->post('total_units'));
         $total_items = count($facility_stock_id);
         //print_r($total_units);
         for ($i = 0; $i < $total_items; $i++) {
             //compute the actual stock
             $total_items_issues = $commodity_unit_of_issue[$i] == 'Pack_Size' ? $quantity_issued[$i] * $total_units[$i] : $quantity_issued[$i];
             //prepare the issues data
             $mydata = array('facility_code' => $facility_code, 's11_No' => 'internal issue', 'batch_no' => $batch_no[$i], 'commodity_id' => $commodity_id[$i], 'expiry_date' => date('Y-m-d', strtotime($expiry_date[$i])), 'qty_issued' => $total_items_issues, 'issued_to' => $service_points[$i], 'balance_as_of' => $commodity_balance_before[$i], 'date_issued' => date('y-m-d', strtotime($clone_datepicker_normal_limit_today[$i])), 'issued_by' => $this->session->userdata('user_id'));
             // update the issues table
             facility_issues::update_issues_table($mydata);
             // reduce the stock levels
             $a = Doctrine_Manager::getInstance()->getCurrentConnection();
             $a->execute("UPDATE `facility_stocks` SET `current_balance` = `current_balance`-{$total_items_issues} where id='{$facility_stock_id[$i]}'");
             //update the transaction table here
             $inserttransaction = Doctrine_Manager::getInstance()->getCurrentConnection();
             $inserttransaction->execute(" UPDATE `facility_transaction_table` SET `total_issues` = `total_issues`+{$total_items_issues},\n\t\t\t\t`closing_stock`=`closing_stock`-{$total_items_issues}\n\t\t\t\tWHERE `commodity_id`= '{$commodity_id[$i]}' and status='1' and facility_code='{$facility_code}';");
             //insertion to service points stock table
             $sp_checker = facility_issues::get_service_point_stocks($facility_code, $service_points[$i], $commodity_id[$i]);
             // $current_balance = $commodity_balance_before[$i] - $total_items_issues;
             if (count($sp_checker) > 0) {
                 $update = Doctrine_Manager::getInstance()->getCurrentConnection()->execute("UPDATE service_point_stocks SET current_balance = current_balance + {$total_items_issues} WHERE facility_code = {$facility_code} AND service_point_id = {$service_points[$i]}");
             } else {
                 $sp_stocks_array = array();
                 $sp_stocks = array('facility_code' => $facility_code, 'batch_no' => $batch_no[$i], 'commodity_id' => $commodity_id[$i], 'expiry_date' => date('Y-m-d', strtotime($expiry_date[$i])), 'service_point_id' => $service_points[$i], 'current_balance' => $total_items_issues);
                 array_push($sp_stocks_array, $sp_stocks);
                 // echo "<pre>";print_r($sp_stocks);exit;
                 $this->db->insert_batch('service_point_stocks', $sp_stocks_array);
             }
         }
         // echo "Insertion done";exit;
         //updates the log tables with the action
         $user = $this->session->userdata('user_id');
         $user_action = "issued";
         //updates the log table accordingly based on the action carried out by the user involved
         $update = Doctrine_Manager::getInstance()->getCurrentConnection();
         $update->execute("update log set {$user_action} = 1  \n\t\t\t\twhere `user_id`= {$user} \n\t\t\t\tAND action = 'Logged In' \n\t\t\t\tand UNIX_TIMESTAMP( `end_time_of_event`) = 0");
         $this->session->set_flashdata('system_success_message', "You have issued {$total_items} item(s)");
         redirect(home);
     }
     redirect(home);
 }