<?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