Subversion Repositories SmartDukaan

Rev

Rev 11924 | Rev 12056 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10582 lgm 1
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2
 
3
class Cart extends MY_Controller {
4
 
5
public $layoutName ='';
6
 
7
	function __construct() {
8
 
9
		// Call the CI_controller constructor
10
		parent::__construct();
11108 lgm 11
		// $admin = $this->session->userdata('admin');
12
		// if(!isset($admin) || empty($admin)) {
13
		// 	redirect(base_url().'authorize');
14
		// }
10582 lgm 15
		$this->output->set_header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
16
		$this->output->set_header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
17
		$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
18
		$this->output->set_header("Cache-Control: post-check=0, pre-check=0", false);
19
		$this->output->set_header("Pragma: no-cache");
20
		$this->layout->setlayout('layout/layout_main');
21
		$this->load->model('cart_model');
22
		$this->layoutName= $this->layout->getLayout();
23
		$this->layoutName =substr($this->layoutName , 0, strrpos($this->layoutName , "/")).'/';
24
		//print_r($this->session->userdata);
25
 
26
	}
11517 lgm 27
		public function index()
10582 lgm 28
	{
29
		$authorized = $this->session->userdata('authorized');
11517 lgm 30
		//standard array
31
		$configdata = $this->config->item('cart');
32
		$cachemodule = array('header','footer');
33
		$configdata = getCache($configdata,$cachemodule);
34
		$data = array();
10582 lgm 35
		if(isset($authorized) && !empty($authorized)){
36
			$_GET['userId'] = $authorized['Id'];
37
			$_GET['Id'] = $authorized['cartId'];
12053 anikendra 38
			if(isset($authorized['isPrivateDealUser']) && !empty($authorized['isPrivateDealUser'])) {
39
				$_GET['privateDealUser'] = 'true';
40
			}
41
			$isAutoApplicationOff = $this->session->userdata('isAutoApplicationOff');
42
			$_GET['autoApplicationOff'] = 'false';
43
			if(isset($isAutoApplicationOff) && !empty($isAutoApplicationOff)) {
44
				$_GET['autoApplicationOff'] = 'true';
45
			}
10582 lgm 46
			if($authorized['isLoggedIn'] == 1){
47
				$_GET['isLoggedIn'] = 'true';
48
			}
49
			elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
50
				$_GET['isLoggedIn'] = 'false';
51
			}
11517 lgm 52
			unset($configdata['module']['response'][0]);
53
			$data['response']=$this->cart_model->getCart($this->input->get(),$this->input->post(),$configdata['module']);
54
			if(isset($data['response']['response']['carts'][0]->lines))
55
			$cartCount = sizeof($data['response']['response']['carts'][0]->lines);
56
			$authorized = $this->session->userdata('authorized');
57
			if(isset($authorized) && !empty($authorized)){
58
				$newValues = $authorized;
59
				$newValues['totalItems'] = $cartCount;
60
				$this->session->set_userdata('authorized',$newValues);
61
			}
62
			$this->lessphp->object()->ccompile('assets/css/cart.less','assets/css/cart.css');
63
			$data['stylesheet'] = 'cart.css';
64
			if(isset($cachemodule) and !empty($cachemodule) && !isset($api))
11169 lgm 65
			{
11517 lgm 66
				foreach($cachemodule as $cm)
11169 lgm 67
				{
11517 lgm 68
					if(isset($configdata[$cm]) and !empty($configdata[$cm]))
69
					{
70
						$data['response'][$cm]=$configdata[$cm];
71
					}
11169 lgm 72
				}
73
			}
11517 lgm 74
			setCache($configdata['module'],$cachemodule,$data['response']);
75
			$this->layout->view('cart/cart_view',$data);
76
		}else{
77
			unset($configdata['module']['response'][1]);
78
			$data['response']=$this->cart_model->getCart($this->input->get(),$this->input->post(),$configdata['module']);
11529 anikendra 79
			error_log("[cart] unauthorized response ".print_r($data['response'],1));
11517 lgm 80
			$this->lessphp->object()->ccompile('assets/css/cart.less','assets/css/cart.css');
81
			$data['stylesheet'] = 'cart.css';
82
			if(isset($cachemodule) and !empty($cachemodule) && !isset($api))
83
			{
84
				foreach($cachemodule as $cm)
85
				{
86
					if(isset($configdata[$cm]) and !empty($configdata[$cm]))
87
					{
88
						$data['response'][$cm]=$configdata[$cm];
89
					}
90
				}
91
			}
92
			setCache($configdata['module'],$cachemodule,$data['response']);
93
			$this->layout->view('cart/carts',$data);
11169 lgm 94
		}
10582 lgm 95
	}
96
 
97
 
10914 lgm 98
	public function add($id=null,$email=null,$itemname)
10582 lgm 99
	{
100
		$response=array();
101
 
102
		$authorized = $this->session->userdata('authorized');
12053 anikendra 103
		$isAutoApplicationOff = $this->session->userdata('isAutoApplicationOff');
104
 
10582 lgm 105
		if(isset($id) and !empty($id) and is_numeric($id))
106
			{
107
				//if user logged-in
108
				$_POST['itemId'] = $id;
109
			}
110
		else{
111
			redirect(base_url());
112
		}
113
		if(isset($authorized) && !empty($authorized)){
114
			$_POST['userId'] = $authorized['Id'];
115
			$_POST['Id'] = $authorized['cartId'];
12053 anikendra 116
 
10582 lgm 117
			if($authorized['isLoggedIn'] == 1){
118
				$_POST['isLoggedIn'] = 'true';
119
			}
120
			elseif((isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn']))) {
121
				$_POST['isLoggedIn'] = 'false';
122
			}
123
		}
124
		else{
125
			$response = $this->anonymous();
126
			if(isset($response['authorized']) && !empty($response['authorized'])){
127
				$authorized = $response['authorized'];
128
				$_POST['userId'] = $authorized['Id'];
129
				$_POST['Id'] = $authorized['cartId'];
130
				if(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])){
131
					$_POST['isLoggedIn'] = 'false';
132
				}
133
			}
134
		}
135
		if(isset($email) && $email != 'null'){
136
			$_POST['email'] = $email;
137
		}
138
		$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_add'));
139
		if(isset($response['response']['addcart'][0]->message) && !empty($response['response']['addcart'][0]->message)){
10914 lgm 140
			if(isset($itemname) && $itemname != 'null'){
141
				if(!isset($email) || $email == 'null'){
142
					$productinfo = 'productinfo'.$itemname;
143
					deleteFileCache($productinfo);
144
				}
145
			}
10582 lgm 146
			echo json_encode($response['response']);
147
		}
10726 lgm 148
		elseif(isset($response['response']['addcart'][0]->redirectUrl) && $response['response']['addcart'][0]->redirectUrl == 'cart'){
10582 lgm 149
			$authorized = $this->session->userdata('authorized');
150
			if(isset($authorized) && !empty($authorized)){
10726 lgm 151
				$cartCount = $authorized['totalItems'];
10582 lgm 152
				$newValues = $authorized;
10726 lgm 153
				$newValues['totalItems'] = $cartCount+1;
10582 lgm 154
				$this->session->set_userdata('authorized',$newValues);
155
			}
156
			echo json_encode($response['response']);
157
			//redirect(base_url().strtolower(__CLASS__),'refresh');
10726 lgm 158
		}elseif(isset($response['response']['addcart'][0]->redirectUrl) && $response['response']['addcart'][0]->redirectUrl != 'cart'){
159
			echo json_encode($response['response']);
10582 lgm 160
		}
12053 anikendra 161
		print_r($response);
10582 lgm 162
	}
163
	public function update($id=null,$qty=null)
164
	{
165
		$response=array();
166
		$authorized = $this->session->userdata('authorized');
167
		if(isset($id) and !empty($id))
168
		{
169
			//if user logged-in
170
			$_POST['itemId'] = $id;
171
		}
172
		if(isset($qty) and !empty($qty))
173
		{
174
			//if user logged-in
175
			$_POST['quantity'] = $qty;
176
		}
177
		if(isset($authorized) && !empty($authorized)){
178
		    $_POST['userId'] = $authorized['Id'];
179
			$_POST['_method'] = 'put';
180
			$cartId = $authorized['cartId'];
181
			if($authorized['isLoggedIn'] == 1){
182
				$_POST['isLoggedIn'] = 'true';
183
			}
184
			elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
11523 lgm 185
				$_POST['isLoggedIn'] = 'false';
10582 lgm 186
			}
187
		}
188
		$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_update'),$cartId);
11749 lgm 189
		redirect(base_url().strtolower(__CLASS__));
10582 lgm 190
 
191
	}
192
	public function delete($id=null)
193
	{
194
 
195
		$authorized = $this->session->userdata('authorized');
196
		if(isset($id) and !empty($id) and is_numeric($id))
197
			{
198
				//if user logged-in
199
				$_POST['itemId'] = $id;
200
			}
201
		else{
202
			redirect(base_url());
203
		}
204
		if(isset($authorized) && !empty($authorized)){
205
			$_POST['userId'] = $authorized['Id'];
206
			$_POST['_method'] = 'delete';
207
			$cartId = $authorized['cartId'];
208
			if($authorized['isLoggedIn'] == 1){
209
				$_POST['isLoggedIn'] = 'true';
210
			}
211
			elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
212
				$_POST['isLoggedIn'] = 'false';
213
			}
214
		}
215
		$response=array();
216
		if(isset($id) and !empty($id))
217
		{
218
			$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_delete'),$cartId);
219
			if(isset($response['response']['deletecart'][0]->lines)) {
220
				$cartCount = sizeof($response['response']['deletecart'][0]->lines);
221
				$authorized = $this->session->userdata('authorized');
222
				if(isset($authorized) && !empty($authorized)){
223
					$newValues = $authorized;
224
					$newValues['totalItems'] = $cartCount;
225
					$this->session->set_userdata('authorized',$newValues);
11749 lgm 226
					redirect(base_url().strtolower(__CLASS__));
10582 lgm 227
				}
228
			}else{
11749 lgm 229
				redirect(base_url().strtolower(__CLASS__));		
10582 lgm 230
			}
231
		}
232
		else
233
		{
234
			$response['response']['msg'] = 'Invalid Parameter!';
11749 lgm 235
			redirect(base_url().strtolower(__CLASS__));
10582 lgm 236
 
237
		}
11749 lgm 238
		redirect(base_url().strtolower(__CLASS__));
10582 lgm 239
 
240
	}
241
	public function coupon($code=null)
242
	{
243
		$response=array();
244
		$authorized = $this->session->userdata('authorized');
245
		if(isset($authorized) && !empty($authorized)){
246
		    $_GET['userId'] = $authorized['Id'];
247
			$_GET['action'] = 'applycoupon';
248
			$cartId = $authorized['cartId'];
249
			if($authorized['isLoggedIn'] == 1){
250
				$_GET['isLoggedIn'] = 'true';
251
			}
252
			elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
253
				$_GET['isLoggedIn'] = 'false';
254
			}
255
		}
256
		if(isset($code) and !empty($code))
257
		{
258
			//if user logged-in
259
			$_GET['coupon_code'] = $code;
12053 anikendra 260
			//TODO: Move to a config file maybe
261
			if($code=='saholicdeals') {
262
				$this->session->set_userdata('isAutoApplicationOff','false');
263
			}
10582 lgm 264
			//$d=$this->input->get();
265
			}
266
		$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_coupon'),$cartId);
11885 anikendra 267
		$dealTextArray = array();
268
		if(!empty($response)){			
269
			foreach($response['response']['cartcoupon'][0]->lines AS $line) {
270
				$dealTextArray[$line->itemId] = $line->dealText;
271
			}
272
		}
10582 lgm 273
		$result = $response['response']['cartcoupon'][0];
274
		if(isset($result->couponCode) && !empty($result->couponCode)){
275
			$couponCode = $result->couponCode;
276
		}
277
		else{
278
			$couponCode = '';
279
		}
11846 anikendra 280
		if($result->discountedPrice==0){
281
			$res = array('totalPrice'=>$result->totalPrice,'discountedPrice'=>$result->totalPrice,'message'=>$result->message,'couponCode'=>$couponCode);	
282
		} else {
283
			$res = array('totalPrice'=>$result->totalPrice,'discountedPrice'=>$result->discountedPrice,'message'=>$result->message,'couponCode'=>$couponCode);
284
		}
11885 anikendra 285
		$res['dealTextArray']=$dealTextArray;
10582 lgm 286
		echo json_encode($res);
287
	}
288
	public function couponClear($code=null)
289
	{
290
		$response=array();
291
		$authorized = $this->session->userdata('authorized');
12053 anikendra 292
		$this->session->set_userdata('isAutoApplicationOff','true');
10582 lgm 293
		if(isset($authorized) && !empty($authorized)){
294
		    $_GET['userId'] = $authorized['Id'];
295
			$_GET['action'] = 'removecoupon';
296
			$cartId = $authorized['cartId'];
297
			if($authorized['isLoggedIn'] == 1){
298
				$_GET['isLoggedIn'] = 'true';
299
			}
300
			elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
301
				$_GET['isLoggedIn'] = 'false';
302
			}
303
		}
304
		if(isset($code) and !empty($code))
305
		{
306
			//if user logged-in
307
			$_GET['coupon_code'] = $code;
308
			//$d=$this->input->get();
309
			}
310
		//print_r($this->config->item('cart_couponclear'));
311
		$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_couponclear'),$cartId);
312
		$result = $response['response']['cartcouponclear'][0];
313
		$res = array('totalPrice'=>$result->totalPrice,'discountedPrice'=>$result->discountedPrice,'message'=>$result->message);
314
		echo json_encode($res);
315
	}
316
	public function cartCount()
317
	{
318
		$response=array();
319
		$authorized = $this->session->userdata('authorized');
320
		$shoppingId =$this->session->userdata('shoppingId');
321
		if((isset($authorized) and !empty($authorized['id'])) || ((isset($shoppingId) && !empty($shoppingId)))){
322
		$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_count'));
323
		if(isset($response['response']['cartcount'][0])){
324
			$result = $response['response']['cartcount'][0];
325
			echo $result;
326
			}
327
			else{
328
				$result = 0;
329
				echo $result;
330
			}
331
		}
332
		else{
333
			$result = 0;
334
			echo $result;
335
		}
336
	}
337
 
338
	public function insure($itemId,$toInsure,$insuranceType){
339
		$authorized = $this->session->userdata('authorized');
340
		if(isset($authorized) && !empty($authorized)){
341
			$_GET['userId'] = $authorized['Id'];
342
			$_GET['Id'] = $authorized['cartId'];
343
			if($authorized['isLoggedIn'] == 1){
344
				$_GET['isLoggedIn'] = 'true';
345
			}
346
			elseif(isset($authorized['isLoggedIn']) && empty($authorized['isLoggedIn'])) {
347
				$_GET['isLoggedIn'] = 'false';
348
			}
349
		}
350
		$_GET['itemId'] = $itemId;
351
		$_GET['toInsure'] = $toInsure;
352
		$_GET['insuranceType'] = $insuranceType;
353
		$response=$this->cart_model->getCart($this->input->get(),$this->input->post(),$this->config->item('cart_insure'));
354
		$insurance = $response['response']['cartinsure'][0]->insuranceResult;
355
		if(strcasecmp($insurance, 'success') == 0){
356
			//$status[0] = true;
357
			$res = array('status'=>true);
358
			echo json_encode($res);
359
		}
360
		elseif(strcasecmp($insurance, 'failure') == 0) {
361
			$status[0] = false;
362
			echo json_encode($status);
363
		}
364
	}
365
	//improve functinalities using ajax
366
	public function anonymous()
367
	{
368
		$url = $this->config->item('anonymous');
369
		$url = $url['url'];
370
		$url = $this->config->item('curl_base_url').$url;
371
		$params = array();
372
		$this->mcurl->add_call('anonymous','get',$url,$params);
373
        $responses = $this->mcurl->execute($url);
374
        $response = array();
375
		if(isset($responses['anonymous']['response']) && !empty($responses['anonymous']['response'])){
376
			$data = json_decode($responses['anonymous']['response']);
377
			$childarray=array();
378
			$childarray['Id']=$data->userId;
379
			$childarray['isLoggedIn']=$data->isLoggedIn;
380
			$childarray['pincode']=$data->pincode;
381
			$childarray['email']=$data->email;
382
			$childarray['totalItems']=$data->totalItems;
383
      		$childarray['cartId']=$data->cartId;
384
			$response['authorized']=$childarray;
385
			$this->session->set_userdata('authorized',$response['authorized']);
386
		}
387
		return $response;
388
	}
389
	public function delete_ajax()
390
	{}
391
}
392
 
393
/* End of file welcome.php */
11529 anikendra 394
/* Location: ./application/controllers/welcome.php */