public function stock_transaction($stock_type = 1)
 {
     $data['hide_side_menu'] = 1;
     $facility_code = $this->session->userdata('facility');
     $user_id = $this->session->userdata('user_id');
     $access_level = $this->session->userdata('user_indicator');
     if ($access_level == "facility_administrator") {
         $transaction_type = Transaction_Type::getAll();
     } else {
         $transaction_type = Transaction_Type::getAllNonAdjustments();
     }
     $drug_source = Drug_Source::getAll();
     $facility_detail = facilities::getSupplier($facility_code);
     $drug_destination = Drug_Destination::getAll();
     //Check facility type(satelitte, standalone or central)
     $facility_type = Facilities::getType($facility_code);
     $get_list = array();
     $data['list_facility'] = "";
     if ($facility_type == 0) {
         //Satellite
         $central_code = facilities::getCentralCode($facility_code);
         $get_list = facilities::getCentralName($central_code);
         $data['list_facility'] = "Central Site";
     } else {
         if ($facility_type == 1) {
             //Standalone
             $get_list = array();
             $data['list_facility'] = "";
         } else {
             if ($facility_type > 1) {
                 //Central
                 $get_list = facilities::getSatellites($facility_code);
                 $data['list_facility'] = "Satelitte Sites";
             }
         }
     }
     $name = CCC_store_service_point::getCCC($stock_type);
     $name = $name['Name'];
     $data['supplier_name'] = $facility_detail->supplier->name;
     $data['picking_lists'] = "";
     $data['get_list'] = $get_list;
     $data['user_id'] = $user_id;
     $data['facility'] = $facility_code;
     $data['stock_type'] = $stock_type;
     $data['transaction_types'] = $transaction_type;
     $data['drug_sources'] = $drug_source;
     $data['drug_destinations'] = $drug_destination;
     $data['store'] = strtoupper($name);
     $data['content_view'] = "stock_transaction_v";
     $this->base_params($data);
 }
 public function getHelp($stock_type = '2', $start_date = '2013-08-01', $end_date = '2013-08-31')
 {
     /*
      * Loop through all respective transaction types and add beginning balance at the beginning
      * Outer Loop through all active drugs
      * Inner Loop through all respective transaction types for the outer drug
      */
     $first_value = "AND ccc_store_sp = {$stock_type}";
     $second_value = "AND dst.ccc_store_sp = {$stock_type}";
     $drugs = Drugcode::getEnabledDrugs();
     $transactions = Transaction_Type::getAllTypes();
     $overall_array = array();
     $trans_sections = array();
     $prev_start = date("Y-m-d", strtotime("-1 month", strtotime($start_date)));
     $prev_end = date("Y-m-d", strtotime("-1 month", strtotime($end_date)));
     $trans_sections['Beginning Balance'] = 0;
     foreach ($transactions as $transaction) {
         $trans_sections[$transaction['Name']] = $transaction['id'];
     }
     foreach ($drugs as $drug) {
         $drug_id = $drug['id'];
         $drug_name = $drug['Drug'];
         foreach ($trans_sections as $section_index => $sections) {
             if ($sections == 0) {
                 /*
                  * Runs when transaction is beginngin balance
                  * Get Beginning Balance of drug
                  */
                 $sql = "SELECT SUM( dst.balance ) AS total FROM drug_stock_movement dst, \n\t\t\t\t\t\t\t(SELECT drug, batch_number, MAX( transaction_date ) AS trans_date FROM  `drug_stock_movement` \n\t\t\t\t\t\t\tWHERE transaction_date BETWEEN  '{$prev_start}' AND  '{$prev_end}' AND drug ='{$drug_id}' {$first_value} \n\t\t\t\t\t\t\tGROUP BY batch_number) AS temp WHERE dst.drug = temp.drug AND dst.batch_number = temp.batch_number \n\t\t\t\t\t\t\tAND dst.transaction_date = temp.trans_date {$second_value}";
             } else {
                 $effect = Transaction_Type::getEffect($sections);
                 if ($effect['Effect'] == 1) {
                     $balance_value = "quantity";
                 } else {
                     $balance_value = "quantity_out";
                 }
                 $sql = "SELECT SUM({$balance_value}) AS total FROM  `drug_stock_movement` \n\t\t\t\t\t\t\tWHERE transaction_date BETWEEN  '{$start_date}' AND  '{$end_date}' {$first_value} \n\t\t\t\t\t\t\tAND transaction_type ='{$sections}' AND drug='{$drug_id}'";
             }
             $query = $this->db->query($sql);
             $results = $query->result_array();
             if ($results) {
                 if ($results[0]['total'] != null) {
                     $overall_array[$drug_name][$section_index] = $results[0]['total'];
                 } else {
                     $overall_array[$drug_name][$section_index] = 0;
                 }
             } else {
                 $overall_array[$drug_name][$section_index] = 0;
             }
         }
     }
 }