\!/ KyuuKazami \!/

Path : /home/kohli/public_html/application/controllers/admin/
Upload :
Current File : /home/kohli/public_html/application/controllers/admin/reports.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Reports extends CI_Controller {
    
    public function __construct(){
        parent::__construct();        
        $this->load->library("common_lib");        
        $this->load->model("commonm");
        $this->load->model("reportsm");
        $this->load->library('parser');
    }
    
    public function index($order_status = ""){                          
        $search_criteria = array();
        
        $order_id = "";
        $start_date = $this->common_lib->date_display_format();
        $end_date = $this->common_lib->date_display_format();
        $order_status = "P";
        $payment_status = "";
        $payment_gateways = "";
        
        $search_criteria['order_status'] = $order_status;
        
        if($this->common_lib->get_get("cmdSearchOrder")){
            $order_id = $this->common_lib->get_n_get("order_id");
            $date_range = urldecode($this->common_lib->get_get("order_range_picker"));            
            $date_range = explode(" - ",$date_range);            
            $start_date = $date_range[0];
            $end_date = $date_range[1];
            
            $payment_gateways = $this->common_lib->get_get("payment_gateways");
            $payment_status = $this->common_lib->get_get("payment_status");
            $order_status = $this->common_lib->get_get("order_status");
            
            if($order_id > 0) $search_criteria['order_id'] = $order_id;
            if($payment_gateways != "") $search_criteria['payment_method'] = $payment_gateways;
            if($payment_status != "") $search_criteria['payment_status'] = $payment_status;
            if($order_status != "") $search_criteria['order_status'] = $order_status;
            
        }        
        
        $order_status_list = $this->commonm->get_all("order_status");
        $payment_gateways_list = $this->commonm->get_all("payment_gateways");
        $payment_status_list = $this->commonm->get_all("payment_status");
        
        
        $partial['order_status_list'] = $order_status_list;
        $partial['payment_gateways_list'] = $payment_gateways_list;
        $partial['payment_status_list'] = $payment_status_list;
        $data['partial_data'] = array($partial);
        
        $data['start_date'] = $start_date;
        $data['end_date'] = $end_date;
        $data['order_id'] = $order_id;
        $data['order_status'] = $order_status;
        $data['payment_status'] = $payment_status;
        $data['payment_gateways'] = $payment_gateways;
        
        $data['all_orders'] = $this->reportsm->get_customer_orders($search_criteria);
        $data['inner_template'] = "admin/reports/index_view";
        $data = array_merge($data,$partial);
        $this->load->view('admin/layout/layout_main.php',$data);
    }
    
    public function order_detail($order_id){        
        $order_id = $this->common_lib->fSafeNum($order_id);
        $order_notes = $this->commonm->get_all("order_notes",array("order_id" => $order_id));
        $order_data = $this->commonm->get_all("orders",array("order_id" => $order_id));
        $order_item_data = $this->reportsm->get_inventory_items(array("o.order_id" => $order_id));
        $data['order_id'] = $order_id;
        $data['order_data'] = $order_data;
        $data['order_notes'] = $order_notes;
        $data['order_item_data'] = $order_item_data;
        $user_detail = $this->commonm->get_all("users",array("user_id" => $order_data[0]->user_id));
        $data['user_detail'] = $user_detail;
        $data['inner_template'] = "admin/reports/order_detail";
        $this->load->view('admin/layout/layout_main.php',$data);
        
    }
    
    public function shipments($order_id){        
        $order_id = $this->common_lib->fSafeNum($order_id);
        $order_data = $this->commonm->get_all("orders",array("order_id" => $order_id));
        $invoice_data = $this->commonm->get_all("invoices",array("order_id" => $order_id));
        $data['order_id'] = $order_id;
        $data['order_data'] = $order_data;
        $data['invoice_data'] = $invoice_data;
        $user_detail = $this->commonm->get_all("users",array("user_id" => $order_data[0]->user_id));
        $data['user_detail'] = $user_detail;
        $data['inner_template'] = "admin/reports/shipments_list";
        $this->load->view('admin/layout/layout_main.php',$data);
    }
    
    public function print_label(){
        $this->load->view('admin/reports/print_label.php');
    }
    
    public function inventoryordered($type="orderitem"){
        $start_date = $this->common_lib->date_display_format();
        $end_date = $this->common_lib->date_display_format();
        $order_status = "P";
        $detail_report = 1;
        $order_id = "";
        $search_sku = "";
        $search_size = "";
        $order_status_list = $this->commonm->get_all("order_status");
        
        $search_data = array();
        $search_data['start_date'] = $start_date;        
        $search_data['end_date'] = $end_date;
        $search_data['action_url'] = site_url("admin/reports/inventoryordered/$type");
        $search_data['order_status_list'] = $order_status_list;
        $search_data['order_status'] = $order_status;
                
        $search_criteria['item_status'] = $order_status;        
        
        if($this->common_lib->get_get("cmdSearchOrder")){            
            $date_range = urldecode($this->common_lib->get_get("order_range_picker"));
            $date_range = explode(" - ",$date_range);            
            $start_date = $date_range[0];
            $end_date = $date_range[1];
            
            $order_id = $this->common_lib->get_n_get("order_id");            
            $detail_report = $this->common_lib->get_n_get("detail_report");            
            $order_status = $this->common_lib->get_get("order_status");
            $search_size = $this->common_lib->get_get("size");
            $search_sku = $this->common_lib->get_get("sku");
            
            if($search_size != "") $search_criteria['size'] = $search_size;
            if($search_sku != "") $search_criteria['sku'] = $search_sku;            
            if($order_id > 0) $search_criteria['o.order_id'] = $order_id;            
            if($order_status != "") $search_criteria['order_status'] = $order_status;
            
        }
        $search_data['detail_report'] = $detail_report;
        $search_data['order_id'] = $order_id;
        $search_data['search_size'] = $search_size;
        $search_data['search_sku'] = $search_sku;
        $search_criteria['detail_report'] = $detail_report;
        
        if($detail_report == 1)
            $inner_template = "common_report";
        else
            $inner_template = "common_report_summary";
            
        if($type == "orderitem"){
            $inner_template = "inventory_ordered";
            $data['inventory_reports'] = $this->reportsm->get_inventory_items($search_criteria);
        }elseif($type == "size"){
            $data['inventory_reports'] = $this->reportsm->get_sizes_orders($search_criteria);            
        }elseif($type == "brand"){
            $data['inventory_reports'] = $this->reportsm->get_brand_orders($search_criteria);            
        }elseif($type == "sku"){
            $data['inventory_reports'] = $this->reportsm->get_sku_orders($search_criteria);            
        }else{
            $data['inventory_reports'] = $this->reportsm->get_inventory_items($search_criteria);
            $search_data['action_url'] = site_url("admin/reports/inventoryordered/orderitem");
            $inner_template = "inventory_ordered";
        }
        
        $data['detail_report'] = $detail_report;
        $data['search_data'] = $search_data;
        $data['inner_template'] = "admin/reports/$inner_template";
        $this->load->view('admin/layout/layout_main.php',$data);
    }    
    
    
    
    public function get_total_orders(){
        
    }
    
    public function print_invoice($invoice_id){
        $invoice_id = urldecode($invoice_id);
        $invoice_id = $this->common_lib->decode($invoice_id);
        $invoice_data = $this->reportsm->get_invoice_items($invoice_id);
        //print_r($invoice_data);
        $invoice_items = array();
        $invoice_sub_total = 0;
        foreach($invoice_data as $invoice_item){
            $invoice_sub_items = array();
            foreach($invoice_item as $invoice_col => $invoice_val){
                $invoice_sub_items[$invoice_col] = $invoice_val;
            }
            $invoice_sub_total += ($invoice_item->shipped_qty * $invoice_item->price);
            $invoice_items[] = $invoice_sub_items;
        }
        $new_invoice_data = array();
        $new_invoice_data['ship_first_name'] = $invoice_data[0]->ship_first_name;
        $new_invoice_data['ship_last_name'] = $invoice_data[0]->ship_last_name;
        $new_invoice_data['ship_address'] = $invoice_data[0]->ship_address;
        $new_invoice_data['ship_address1'] = ($invoice_data[0]->ship_address1 == "")?"-":$invoice_data[0]->ship_address1;
        $new_invoice_data['ship_city'] = $invoice_data[0]->ship_city;
        $new_invoice_data['ship_state'] = $invoice_data[0]->ship_state;
        $new_invoice_data['ship_country'] = $this->common_lib->get_country_by_id($invoice_data[0]->ship_country);
        $new_invoice_data['ship_zipcode'] = $invoice_data[0]->ship_zipcode;
        $new_invoice_data['ship_mobile'] = $invoice_data[0]->ship_mobile;
        $new_invoice_data['ship_fax'] = ($invoice_data[0]->ship_fax == "")?"-":$invoice_data[0]->ship_fax;
        $new_invoice_data['ship_company'] = "-";
        $new_invoice_data['email'] = $invoice_data[0]->email;
        
        $new_invoice_data['order_date'] = $invoice_data[0]->order_date;
        $new_invoice_data['order_id'] = $invoice_data[0]->order_id;
        $new_invoice_data['shipping'] = $this->common_lib->currency_price($invoice_data[0]->shipping);
        $new_invoice_data['invoice_id'] = $invoice_data[0]->invoice_id;
        $new_invoice_data['order_amount'] = $this->common_lib->currency_price($invoice_data[0]->order_amount);
        $new_invoice_data['sub_total'] = $this->common_lib->currency_price($invoice_sub_total);
        $new_invoice_data['amount_received'] = $this->common_lib->currency_price($invoice_data[0]->order_amount - $invoice_data[0]->amount_remaining);
        $new_invoice_data['amount_remaining'] = $this->common_lib->currency_price($invoice_data[0]->amount_remaining);
        
        $new_invoice_data['invoice_items'] = $invoice_items;
        
        echo $this->parser->parse('email_templates/invoice_print_tpl', $new_invoice_data, TRUE);
        exit;
        
    }
    
    public function add_order(){
        $customer_list = $this->commonm->get_all("users");
        $product_list = $this->commonm->get_all("products",array("active"=>1),array(),"product_name");
        $data['customer_list'] = $customer_list;
        $data['product_list'] = $product_list;
        $data['inner_template'] = "admin/reports/add_customer_order";
        $this->load->view('admin/layout/layout_main.php',$data);
    }
    
}

@KyuuKazami