\!/ KyuuKazami \!/

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

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

class Customers extends CI_Controller {
    
    var $bSendVerification;
    
    public function __construct(){
        parent::__construct();
        $this->load->database();
        $this->load->helper('url');
        $this->load->library('grocery_CRUD');
        $this->bSendVerification = false;
    }

    public function _output($output = null){
        $data['inner_template'] = "admin/grocery/grocery";
        $data['groc_output'] = $output;
        $this->load->view('admin/layout/layout_main.php',$data);
    }

    public function index($is_active=""){
        $crud = new grocery_CRUD();
        $crud->set_table('users');
        $crud->columns('email_verified','is_active','username','email','first_name','middle_name','last_name','company_name','address','city','state','country','zipcode','phone','mobile','fax');
        $crud->display_as('name','Full Name')->display_as('company_name','Company Name')->display_as('is_active','Status');
        $crud->set_subject('Customer');
        if($this->uri->segment(4) == "edit" || $this->uri->segment(5) == "edit" || $this->uri->segment(4) == "update_validation" || $this->uri->segment(5) == "update_validation" || $this->uri->segment(4) == "update" || $this->uri->segment(5) == "update"){            
            $crud->required_fields('username','email','first_name','last_name','address','city','country','mobile');
            $crud->fields('email_verified','is_active','username','email','first_name','middle_name','last_name','company_name','address','city','state','country','zipcode','phone','mobile','fax');
        }else{
            $crud->required_fields('username','password','email','first_name','last_name','address','city','country','mobile');
            $crud->fields('email_verified','is_active','username','password','email','first_name','middle_name','last_name','company_name','address','city','state','country','zipcode','phone','mobile','fax');
        }
        $crud->set_relation('country','countries','country');        
        $crud->callback_before_insert(array($this,'encrypt_password_callback'));
        
        $crud->callback_before_insert(array($this,'set_verification_flag'));
        $crud->callback_before_update(array($this,'set_verification_flag'));
        
        $crud->callback_after_insert(array($this,'send_verification_email'));
        $crud->callback_after_update(array($this,'send_verification_email'));
                
        $crud->change_field_type('password', 'password');
        //$crud->unset_edit_fields(array('password'));
        
        if($is_active != "" && $is_active != "all"){
            $is_active = $this->common_lib->fSafeChar($is_active);
            $crud->where('is_active',$is_active);    
        }
        
        $output = $crud->render();                
        $this->_output($output);		
    }
    
    function set_verification_flag($post_array, $primary_key){
        if($post_array['is_active'] != "Approved"){
            $this->bSendVerification = true;
        }
    }
    
    function send_verification_email($post_array,$primary_key){
        if($post_array['is_active'] == "Approved"){
            $email_body = "Dear {$post_array['first_name']},<br><br><p>Your ".$this->common_lib->site_title()." account has been Approved.</p>
                           <br><p>Now you can browse the hundreds of different styles that we have available. Please click here to login to your account <a href='".site_url("user/login")."'>LOGIN</a>.</p>
                           ";
            $this->common_lib->send_mail($this->common_lib->admin_email(),$post_array['email'],"Your ".$this->common_lib->site_title()." account has been Approved",$email_body);
        }
    }
    
    function encrypt_password_callback($post_array){                
        $post_array['password'] = $this->common_lib->one_way_encrypt($post_array['password']);
        return $post_array;
    }
    
    public function order_detail($order_id){
        $order_id = $this->common_lib->fSafeNum($order_id);
        $order_detail_template = $this->common_lib->get_order_detail_template($order_id,true);
        $data['order_id'] = $order_id;
        $data['order_detail_template'] = $order_detail_template;
        $data['inner_template'] = "admin/customers/order_detail";
        $this->load->view('admin/layout/layout_main.php',$data);
        
    }
    
    public function orders(){
        $crud = new grocery_CRUD();
        $crud->set_table('orders');
        $crud->columns('order_id','user_id','order_date','shipping','promo_discount','sub_total','order_amount','order_status','payment_status','payment_method');		
        $crud->display_as('user_id','Username');
        $crud->unset_fields("credit_card_number","cv_number","expiry_year","expiry_month","card_type");
        $crud->set_subject('Customer Orders');                
        $crud->set_relation('payment_status','payment_status','payment_status_detail');
        $crud->set_relation('payment_method','payment_gateways','gateway_detail');        
        $crud->set_relation('user_id','users','username');
        $crud->set_relation('order_status','order_status','status_detail');
        $crud->unset_texteditor("payment_desc","comments");
        $crud->add_action('View Order', '', '','fa fa-plus',array($this,'render_order_detail_link'));        
        $crud->unset_delete();
        $crud->unset_add();            
        
        $output = $crud->render();                
        $this->_output($output);
    }
    
    function render_order_detail_link($primary_key , $row){
        return site_url('admin/customers/order_detail').'/'.$row->order_id;
    }

}

@KyuuKazami