Subversion Repositories SmartDukaan

Rev

Rev 17982 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

class Cart extends MY_Controller {

public $layoutName ='';
        
        function __construct() {

                // Call the CI_controller constructor
                parent::__construct();
                // $admin = $this->session->userdata('admin');
                // if(!isset($admin) || empty($admin)) {
                //      redirect(base_url().'authorize');
                // }
                $this->output->set_header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
                $this->output->set_header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
                $this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
                $this->output->set_header("Cache-Control: post-check=0, pre-check=0", false);
                $this->output->set_header("Pragma: no-cache");
                $this->layout->setlayout('layout/layout_main');
                $this->load->model('cart_model');
                $this->layoutName= $this->layout->getLayout();
                $this->layoutName =substr($this->layoutName , 0, strrpos($this->layoutName , "/")).'/';
                //print_r($this->session->userdata);

        }
                public function index()
        {
                $authorized = $this->session->userdata('authorized');
                //standard array
                $configdata = $this->config->item('cart');
                $cachemodule = array('header','footer');
                $configdata = getCache($configdata,$cachemodule);
                $data = array();
                if(isset($authorized) && !empty($authorized)){
                        $_GET['userId'] = $authorized['Id'];
                        $_GET['Id'] = $authorized['cartId'];
                        if(isset($authorized['isPrivateDealUser']) && !empty($authorized['isPrivateDealUser'])) {
                                $_GET['privateDealUser'] = 'true';
                        }
                        $isAutoApplicationOff = $this->session->userdata('isAutoApplicationOff');
                        $_GET['autoApplicationOff'] = 'false';
                        if(isset($isAutoApplicationOff) && !empty($isAutoApplicationOff)) {
                                $_GET['autoApplicationOff'] = 'true';
                        }
                        if($authorized['isLoggedIn'] == 1){
                                $_GET['isLoggedIn'] = 'true';
                        }
                        elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
                                $_GET['isLoggedIn'] = 'false';
                        }
                        unset($configdata['module']['response'][0]);
                        $data['response']=$this->cart_model->getCart($this->input->get(),$this->input->post(),$configdata['module']);
                        if(isset($data['response']['response']['carts'][0]->lines))
                        $cartCount = sizeof($data['response']['response']['carts'][0]->lines);
                        $authorized = $this->session->userdata('authorized');
                        if(isset($cartMessage) and !empty($cartMessage))
                        {
                                if(!isset($data['response']['response']['carts'][0]->message) and empty($data['response']['response']['carts'][0]->message)){
                                        $data['response']['response']['carts'][0]->message = $cartMessage;
                                }
                        }
                        if(isset($authorized) && !empty($authorized)){
                                $newValues = $authorized;
                                $newValues['totalItems'] = $cartCount;
                                $this->session->set_userdata('authorized',$newValues);
                        }
                        $this->lessphp->object()->ccompile('assets/css/cart.less','assets/css/cart.css');
                        $data['stylesheet'] = 'cart.css';
                        if(isset($cachemodule) and !empty($cachemodule) && !isset($api))
                        {
                                foreach($cachemodule as $cm)
                                {
                                        if(isset($configdata[$cm]) and !empty($configdata[$cm]))
                                        {
                                                $data['response'][$cm]=$configdata[$cm];
                                        }
                                }
                        }
                        $cartMessage = $this->session->userdata('cartmessage');
                if(isset($cartMessage) and !empty($cartMessage))
                {
                        if(!isset($data['response']['response']['carts'][0]->message) or empty($data['response']['response']['carts'][0]->message)){
                        $data['response']['response']['carts'][0]->message=$cartMessage;
                    }
                }
                error_log("Private Deal User".$authorized['isPrivateDealUser']);
                    if(isset($authorized['isPrivateDealUser']) && !empty($authorized['isPrivateDealUser'])) {
                        $userId = $this->session->userdata['authorized']['Id'];
                        $ch = curl_init();
                                $url = $this->config->item('curl_base_url').'private-deals/1/?userId='.$userId.'&isLoggedIn=true&privateDealUser=true';
                                // Set the url, number of POST vars, POST data
                                curl_setopt($ch, CURLOPT_URL, $url);
                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                                
                                // Disabling SSL Certificate support temporarly
                                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                                
                                // Execute post
                                $result = curl_exec($ch);
                                if ($result === FALSE) {
                                        die('Curl failed: ' . curl_error($ch));
                                }
                                $res = json_decode($result,1);
                        $data['privatedeals']=$res;
                }
                $this->session->set_userdata('cartmessage','');
                        setCache($configdata['module'],$cachemodule,$data['response'],$data['privatedeals']);
                        $this->layout->view('cart/cart_view',$data);
                }else{
                        unset($configdata['module']['response'][1]);
                        $data['response']=$this->cart_model->getCart($this->input->get(),$this->input->post(),$configdata['module']);
                        $this->lessphp->object()->ccompile('assets/css/cart.less','assets/css/cart.css');
                        $data['stylesheet'] = 'cart.css';
                        if(isset($cachemodule) and !empty($cachemodule) && !isset($api))
                        {
                                foreach($cachemodule as $cm)
                                {
                                        if(isset($configdata[$cm]) and !empty($configdata[$cm]))
                                        {
                                                $data['response'][$cm]=$configdata[$cm];
                                        }
                                }
                        }
                        $cartMessage = $this->session->userdata('cartmessage');
                if(isset($cartMessage) and !empty($cartMessage))
                {
                        if(!isset($data['response']['response']['carts'][0]->message) or empty($data['response']['response']['carts'][0]->message)){
                        $data['response']['response']['carts'][0]->message=$cartMessage;
                    }
                }
                $this->session->set_userdata('cartmessage','');
                        setCache($configdata['module'],$cachemodule,$data['response']);
                        $this->layout->view('cart/carts',$data);
                }
        }

        
        public function add($id=null,$email=null,$itemname)
        {
                $response=array();
                
                $authorized = $this->session->userdata('authorized');
                $isAutoApplicationOff = $this->session->userdata('isAutoApplicationOff');

                if(isset($id) and !empty($id) and is_numeric($id))
                        {
                                //if user logged-in
                                $_POST['itemId'] = $id;
                        }
                else{
                        redirect(base_url());
                }
                if(isset($authorized) && !empty($authorized)){
                        $_POST['userId'] = $authorized['Id'];
                        $_POST['Id'] = $authorized['cartId'];
                        
                        if($authorized['isLoggedIn'] == 1){
                                $_POST['isLoggedIn'] = 'true';
                        }
                        elseif((isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn']))) {
                                $_POST['isLoggedIn'] = 'false';
                        }
                }
                else{
                        $response = $this->anonymous();
                        if(isset($response['authorized']) && !empty($response['authorized'])){
                                $authorized = $response['authorized'];
                                $_POST['userId'] = $authorized['Id'];
                                $_POST['Id'] = $authorized['cartId'];
                                if(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])){
                                        $_POST['isLoggedIn'] = 'false';
                                }
                        }
                }
                if(isset($email) && $email != 'null'){
                        $_POST['email'] = $email;
                }
                $response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_add'));
                if(isset($response['response']['addcart'][0]->message) && !empty($response['response']['addcart'][0]->message)){
                        if(isset($itemname) && $itemname != 'null'){
                                if(!isset($email) || $email == 'null'){
                                        $productinfo = 'productinfo'.$itemname;
                                        deleteFileCache($productinfo);
                                }
                        }
                        echo json_encode($response['response']);
                }
                elseif(isset($response['response']['addcart'][0]->redirectUrl) && $response['response']['addcart'][0]->redirectUrl == 'cart'){
                        $authorized = $this->session->userdata('authorized');
                        if(isset($authorized) && !empty($authorized)){
                                $cartCount = $authorized['totalItems'];
                                $newValues = $authorized;
                                $newValues['totalItems'] = $cartCount+1;
                                $this->session->set_userdata('authorized',$newValues);
                        }
                        echo json_encode($response['response']);
                        //redirect(base_url().strtolower(__CLASS__),'refresh');
                }elseif(isset($response['response']['addcart'][0]->redirectUrl) && $response['response']['addcart'][0]->redirectUrl != 'cart'){
                        echo json_encode($response['response']);
                }
        }
        public function update($id=null,$qty=null)
        {
                $response=array();
                $authorized = $this->session->userdata('authorized');
                if(isset($id) and !empty($id))
                {
                        //if user logged-in
                        $_POST['itemId'] = $id;
                }
                if(isset($qty) and !empty($qty))
                {
                        //if user logged-in
                        $_POST['quantity'] = $qty;
                }
                if(isset($authorized) && !empty($authorized)){
                    $_POST['userId'] = $authorized['Id'];
                        $_POST['_method'] = 'put';
                        $cartId = $authorized['cartId'];
                        if($authorized['isLoggedIn'] == 1){
                                $_POST['isLoggedIn'] = 'true';
                        }
                        elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
                                $_POST['isLoggedIn'] = 'false';
                        }
                }
                $data['response']=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_update'),$cartId);
                $message = $data['response']['response']['updatecart'][0]->message;
        
        if(isset($message) and !empty($message))
        {
            $this->session->set_userdata('cartmessage',$message);
            redirect(base_url().strtolower(__CLASS__));
        }else{
            redirect(base_url().strtolower(__CLASS__));
        }       
        }
        public function delete($id=null)
        {

                $authorized = $this->session->userdata('authorized');
                if(isset($id) and !empty($id) and is_numeric($id))
                        {
                                //if user logged-in
                                $_POST['itemId'] = $id;
                        }
                else{
                        redirect(base_url());
                }
                if(isset($authorized) && !empty($authorized)){
                        $_POST['userId'] = $authorized['Id'];
                        $_POST['_method'] = 'delete';
                        $cartId = $authorized['cartId'];
                        if($authorized['isLoggedIn'] == 1){
                                $_POST['isLoggedIn'] = 'true';
                        }
                        elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
                                $_POST['isLoggedIn'] = 'false';
                        }
                }
                $response=array();
                if(isset($id) and !empty($id))
                {
                        $response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_delete'),$cartId);
                        if(isset($response['response']['deletecart'][0]->lines)) {
                                $cartCount = sizeof($response['response']['deletecart'][0]->lines);
                                $authorized = $this->session->userdata('authorized');
                                if(isset($authorized) && !empty($authorized)){
                                        $newValues = $authorized;
                                        $newValues['totalItems'] = $cartCount;
                                        $this->session->set_userdata('authorized',$newValues);
                                        redirect(base_url().strtolower(__CLASS__));
                                }
                        }else{
                                redirect(base_url().strtolower(__CLASS__));             
                        }
                }
                else
                {
                        $response['response']['msg'] = 'Invalid Parameter!';
                        redirect(base_url().strtolower(__CLASS__));

                }
                redirect(base_url().strtolower(__CLASS__));

        }
        public function coupon($code=null)
        {
                $response=array();
                $authorized = $this->session->userdata('authorized');
                if(isset($authorized) && !empty($authorized)){
                    $_GET['userId'] = $authorized['Id'];
                        $_GET['action'] = 'applycoupon';
                        $cartId = $authorized['cartId'];
                        if($authorized['isLoggedIn'] == 1){
                                $_GET['isLoggedIn'] = 'true';
                        }
                        elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
                                $_GET['isLoggedIn'] = 'false';
                        }
                }
                if(isset($code) and !empty($code))
                {
                        //if user logged-in
                        $_GET['coupon_code'] = $code;
                        //TODO: Move to a config file maybe
                        if($code=='saholicdeals') {
                                $this->session->set_userdata('isAutoApplicationOff','false');
                        }
                        //$d=$this->input->get();
                        }
                $response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_coupon'),$cartId);
                $dealTextArray = array();
                if(!empty($response)){                  
                        foreach($response['response']['cartcoupon'][0]->lines AS $line) {
                                $dealTextArray[$line->itemId] = $line->dealText;
                        }
                }
                $result = $response['response']['cartcoupon'][0];
                if(isset($result->couponCode) && !empty($result->couponCode)){
                        $couponCode = $result->couponCode;
                }
                else{
                        $couponCode = '';
                }
                if($result->discountedPrice==0){
                        $res = array('totalPrice'=>$result->totalPrice,'discountedPrice'=>$result->totalPrice,'message'=>$result->message,'couponCode'=>$couponCode);   
                } else {
                        $res = array('totalPrice'=>$result->totalPrice,'discountedPrice'=>$result->discountedPrice,'message'=>$result->message,'couponCode'=>$couponCode);
                }
                $res['dealTextArray']=$dealTextArray;
                echo json_encode($res);
        }
        public function couponClear($code=null)
        {
                $response=array();
                $authorized = $this->session->userdata('authorized');
                $this->session->set_userdata('isAutoApplicationOff','true');
                if(isset($authorized) && !empty($authorized)){
                    $_GET['userId'] = $authorized['Id'];
                        $_GET['action'] = 'removecoupon';
                        $cartId = $authorized['cartId'];
                        if($authorized['isLoggedIn'] == 1){
                                $_GET['isLoggedIn'] = 'true';
                        }
                        elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
                                $_GET['isLoggedIn'] = 'false';
                        }
                }
                if(isset($code) and !empty($code))
                {
                        //if user logged-in
                        $_GET['coupon_code'] = $code;
                        //$d=$this->input->get();
                        }
                //print_r($this->config->item('cart_couponclear'));
                $response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_couponclear'),$cartId);
                $result = $response['response']['cartcouponclear'][0];
                $res = array('totalPrice'=>$result->totalPrice,'discountedPrice'=>$result->discountedPrice,'message'=>$result->message);
                echo json_encode($res);
        }
        public function cartCount()
        {
                $response=array();
                $authorized = $this->session->userdata('authorized');
                $shoppingId =$this->session->userdata('shoppingId');
                if((isset($authorized) and !empty($authorized['id'])) || ((isset($shoppingId) && !empty($shoppingId)))){
                $response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_count'));
                if(isset($response['response']['cartcount'][0])){
                        $result = $response['response']['cartcount'][0];
                        echo $result;
                        }
                        else{
                                $result = 0;
                                echo $result;
                        }
                }
                else{
                        $result = 0;
                        echo $result;
                }
        }

        public function insure($itemId,$toInsure,$insuranceType){
                $authorized = $this->session->userdata('authorized');
                if(isset($authorized) && !empty($authorized)){
                        $_GET['userId'] = $authorized['Id'];
                        $_GET['Id'] = $authorized['cartId'];
                        if($authorized['isLoggedIn'] == 1){
                                $_GET['isLoggedIn'] = 'true';
                        }
                        elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
                                $_GET['isLoggedIn'] = 'false';
                        }
                }
                $_GET['itemId'] = $itemId;
                $_GET['toInsure'] = $toInsure;
                $_GET['insuranceType'] = $insuranceType;
                $response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_insure'));
                $insurance = $response['response']['cartinsure'][0]->insuranceResult;
                if(strcasecmp($insurance, 'success') == 0){
                        //$status[0] = true;
                        $res = array('status'=>true);
                        echo json_encode($res);
                }
                elseif(strcasecmp($insurance, 'failure') == 0) {
                        $status[0] = false;
                        echo json_encode($status);
                }
        }
        //improve functinalities using ajax
        public function anonymous()
        {
                $url = $this->config->item('anonymous');
                $url = $url['url'];
                $url = $this->config->item('curl_base_url').$url;
                $params = array();
                $this->mcurl->add_call('anonymous','get',$url,$params);
        $responses = $this->mcurl->execute($url);
        $response = array();
                if(isset($responses['anonymous']['response']) && !empty($responses['anonymous']['response'])){
                        $data = json_decode($responses['anonymous']['response']);
                        $childarray=array();
                        $childarray['Id']=$data->userId;
                        $childarray['isLoggedIn']=$data->isLoggedIn;
                        $childarray['pincode']=$data->pincode;
                        $childarray['email']=$data->email;
                        $childarray['totalItems']=$data->totalItems;
                $childarray['cartId']=$data->cartId;
                        $response['authorized']=$childarray;
                        $this->session->set_userdata('authorized',$response['authorized']);
                }
                return $response;
        }
        public function delete_ajax()
        {}
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */