Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
17793 naman 1
<?php
2
App::uses('AppController', 'Controller');
3
/**
4
 * Exceptionalnlcs Controller
5
 *
6
 * @property Exceptionalnlc $Exceptionalnlc
7
 * @property PaginatorComponent $Paginator
8
 */
9
class ShippingsController extends AppController {
10
 
11
/**
12
 * Components
13
 *
14
 * @var array
15
 */
16
	public $components = array('Paginator');
17
 
18
	public function beforeFilter() {
19
		parent::beforeFilter();
20
		$this->apihost = Configure::read('pythonapihost');
21
		$this->mobileapihost = Configure::read('saholicapihost');
17838 manish.sha 22
		$this->Auth->allow('isServicable');
17793 naman 23
	}
24
 
25
 
26
	public function index(){
27
		$userId = $this->Auth->User('id');
17838 manish.sha 28
		$dataGiven = json_decode($this->request->data['cart_details']);
17793 naman 29
		if ($this->request->is('post')) {
30
			$data = $this->request->data;
31
		}
17871 manish.sha 32
 
17838 manish.sha 33
		$suserId = base64_decode($_COOKIE['s_id']);
17871 manish.sha 34
		$scartId = base64_decode($_COOKIE['s_cart']);
35
		$semailId = base64_decode($_COOKIE['s_email']);
36
 
37
		$pincode = 0;
38
 
39
		if($pincode==0 && isset($_COOKIE['s_pincode'])){
40
			$pincode = base64_decode($_COOKIE['s_pincode']);
17793 naman 41
		}
17838 manish.sha 42
 
17871 manish.sha 43
		$cartItems = array();
44
 
45
		foreach ($dataGiven->cartItems as $key=>$obj) {
46
		    $itemobj = array(
47
					'itemId'   => $key,
48
		    		'quantity' => $obj->quantity);
49
			array_push($cartItems, $itemobj);
17838 manish.sha 50
		}
17871 manish.sha 51
		$postData = array(
52
					'cartItems'	=>	$cartItems
53
					);
54
 
55
		$params = array(
56
				'cartMap' => urlencode(json_encode($postData)));
17838 manish.sha 57
 
17871 manish.sha 58
		$this->layout = 'cartinnerpages';
59
		$url = Configure::read('saholicapihost').'cart!validateCart?isLoggedIn=true&privateDealUser=true&userId='.$suserId.'&id='.$scartId.'&email='.$semailId;
60
		if($pincode!='0'){
61
			$url = $url.'&pinCode='.$pincode;
62
		}
63
		$cartskus = $this->post_cartinfo_request($url,$params);
64
		if(isset($cartskus['response']) && $cartskus['response']=='error'){
65
			$this->set(compact('cartskus'));
66
			$this->render('/Users/cartdetails');
67
 
68
		}elseif(isset($cartskus['cartMessages']) && count($cartskus['cartMessages'])>0){
69
			setcookie('s_pincode', base64_encode($cartskus['pincode']), -1, '/');
70
			$this->set(compact('cartskus'));
71
			$this->render('/Users/cartdetails');
72
		}else{
73
			$totalPayable = intval($dataGiven->totalCartValue) + intval($dataGiven->shippingCharges);
74
			$this->Session->write('totalPayable', $totalPayable);
75
			$this->layout = 'innerpages';
17882 naman 76
			$url = Configure::read ( 'saholicapihost' ) . 'address?isLoggedIn=true&privateDealUser=true&userId=' . $suserId;
77
			$response = $this->make_request ( $url, null );
78
			$user_name = "";
79
			$user_contact = "";
17871 manish.sha 80
 
17947 manish.sha 81
			$codAvailable = $cartskus['cod'];
82
			$this->Session->write('cod', $codAvailable);
83
 
17882 naman 84
			if(empty($response ['addresses'])){
85
				$this->redirect ( array (
86
						'action' => 'add' 
87
				));
17793 naman 88
			}
17871 manish.sha 89
 
17882 naman 90
			$firstshowaddress = array ();
91
			$findedaddress = array ();
92
			$moreshowaddress = array ();
93
			$current_address_id = - 1;
94
			$defaultpin = - 1;
95
			$defaultcookiepin = - 1;
96
			$defaultcheckedaddress = - 1;
97
			$defaultpinaddress = - 1;
18529 manish.sha 98
			$taxInvoiceCounter = $response ['taxInvoiceCounter'];
17882 naman 99
			foreach ( $response ['addresses'] as $key => $value ) {
100
				// debug($value['']);
101
 
102
				if ($value ['id'] == intval ( $response ['defaultAddress'] ) && intval ( $value ['pin'] ) == $pincode) {
103
					$defaultcookiepin = $key;
104
					$user_name = $value ['name'];
105
					$user_contact = $value ['phone'];
106
					if ($defaultcheckedaddress == - 1) {
107
						$defaultcheckedaddress = $value ['id'];
108
					}
109
				} else if (intval ( $value ['pin'] ) == $pincode) {
110
					$current_address_id = $key;
111
					array_push ( $findedaddress, $key );
112
					if ($defaultpinaddress == - 1) {
113
						$defaultpinaddress = $value ['id'];
114
					}
115
				} else if ($value ['id'] == intval ( $response ['defaultAddress'] )) {
116
					$defaultpin = $key;
117
					$user_name = $value ['name'];
118
					$user_contact = $value ['phone'];
119
				} else {
120
					array_push ( $moreshowaddress, $key );
17871 manish.sha 121
				}
122
			}
17882 naman 123
 
124
			$defaultselectedaddress = - 1;
125
			if ($defaultpinaddress != - 1) {
126
				$defaultselectedaddress = $defaultpinaddress;
17793 naman 127
			}
17882 naman 128
			if ($defaultcheckedaddress != - 1) {
129
				$defaultselectedaddress = $defaultcheckedaddress;
17871 manish.sha 130
			}
17882 naman 131
 
132
			if ($defaultcookiepin != - 1) {
133
				array_push ( $firstshowaddress, $defaultcookiepin );
17871 manish.sha 134
			}
17882 naman 135
 
136
			for($i = 0; $i < count ( $findedaddress ); $i ++) {
137
				array_push ( $firstshowaddress, $findedaddress [$i] );
17871 manish.sha 138
			}
139
 
17882 naman 140
			if ($defaultpin != - 1) {
141
				array_push ( $firstshowaddress, $defaultpin );
142
			}
143
 
144
			for($i = 0; $i < count ( $moreshowaddress ); $i ++) {
145
				array_push ( $firstshowaddress, $moreshowaddress [$i] );
146
			}
147
 
148
			$this->set ( 'address', $response );
149
 
18529 manish.sha 150
			$this->set ( compact ( 'firstshowaddress', 'totalPayable', 'user_name', 'user_contact', 'pincode', 'defaultselectedaddress', 'message', 'codAvailable', 'taxInvoiceCounter') );
17793 naman 151
		}
17882 naman 152
	}
153
	public function add($user_name = null, $user_contact = null) {
154
		$this->layout = 'cartinnerpages';
17793 naman 155
 
17882 naman 156
		$totalPayable = $_SESSION ['totalPayable'];
17947 manish.sha 157
		$codAvailable = $_SESSION ['cod'];
18039 amit.gupta 158
		//$pinval = base64_decode ( $_COOKIE ['s_pincode'] );
159
		$pinval='';
17882 naman 160
		$suserId = base64_decode ( $_COOKIE ['s_id'] );
161
		$scart = base64_decode ( $_COOKIE ['s_cart'] );
162
 
163
		if ($this->request->is ( 'post' )) {
17793 naman 164
			$data = $this->request->data;
17882 naman 165
 
166
			$senddata ['name'] = $data ['name'];
167
			$senddata ['line1'] = $data ['line1'];
168
			$senddata ['line2'] = "";
169
			$senddata ['city'] = $data ['city'];
170
			$senddata ['state'] = $data ['state'];
171
			$senddata ['pin'] = $data ['pin'];
172
			$senddata ['phone'] = $data ['phone'];
173
			$senddata ['country'] = 'India';
174
			$url = Configure::read ( 'saholicapihost' ) . "address?userId=" . $suserId . "&isLoggedIn=true&cartId=" . $scart . "&isPrivateDealUser=true";
175
 
176
			$response = $this->post_request ( $url, $senddata );
177
 
178
			$scartId = base64_decode ( $_COOKIE ['s_cart'] );
179
			$semailId = base64_decode ( $_COOKIE ['s_email'] );
180
			$blank = array ();
181
			$postData = array (
182
					'cartItems' => $blank 
183
			);
184
 
185
			$params = array (
186
					'cartMap' => urlencode ( json_encode ( $postData ) ) 
187
			);
188
			$url = Configure::read ( 'saholicapihost' ) . 'cart!validateCart?isLoggedIn=true&privateDealUser=true&userId=' . $suserId . '&id=' . $scartId . '&email=' . $semailId;
189
			// if($pin!='0'){
190
			$url = $url . '&pinCode=' . $data ['pin'];
191
			// }
192
			$cartskus = $this->post_cartinfo_request ( $url, $params );
193
			$checkestimate = 'true';
194
			if ($cartskus ['maxEstimate'] == - 1) {
195
				$checkestimate = 'false';
196
			} else {
197
				for($i = 0; $i < count ( $cartskus ['cartItems'] ); $i ++) {
17904 amit.gupta 198
					if(array_key_exists('estimate',$cartskus ['cartItems'] [$i])){
199
						continue;
200
					}
201
					$estimate = $cartskus ['cartItems'] [$i] ['estimate'];
202
					if ($estimate==-1) {
17882 naman 203
						$checkestimate = 'false';
204
						break;
205
					}
206
				}
17793 naman 207
			}
208
 
17882 naman 209
			if ($checkestimate == 'false') {
210
				// debug("I am here");
211
				$this->Session->setFlash ( "Address is not serviceable", 'default', array (
212
						'class' => 'alert alert-danger custom_class' 
213
				) );
214
				// $this->Session->setFlash('Address is not serviceable');
215
				return $this->redirect ( array (
216
						'action' => 'index' 
217
				) );
218
			} else {
219
				$this->Session->setFlash ( "Address is  serviceable" );
17793 naman 220
			}
221
		}
222
 
17882 naman 223
		$url = $this->apihost . "pincodeValidation/" . $pinval;
224
		$getstate = $this->make_request ( $url, null );
17844 naman 225
		// debug($getstate);
17793 naman 226
		$getstateval = "";
17882 naman 227
		if ($getstate != "{}") {
228
			$getstateval = ucwords ( strtolower ( $getstate ['state'] ) );
17793 naman 229
		}
17947 manish.sha 230
		$this->set(compact('getstateval', 'user_name', 'user_contact', 'pinval', 'totalPayable', 'codAvailable'));
17793 naman 231
	}
17882 naman 232
	public function submitcheck() {
233
		$this->autoRender = false;
234
		$this->request->onlyAllow ( 'ajax' );
235
 
17899 amit.gupta 236
		$suserId = base64_decode($_COOKIE['s_id']);
237
		$scartId = base64_decode($_COOKIE['s_cart']);
238
		$semailId = base64_decode($_COOKIE['s_email']);
239
 
17882 naman 240
		$data = $this->request->data;
241
 
242
		$senddata ['name'] = $data ['name'];
243
		$senddata ['line1'] = $data ['line1'];
244
		$senddata ['line2'] = "";
245
		$senddata ['city'] = $data ['city'];
246
		$senddata ['state'] = $data ['state'];
247
		$senddata ['pin'] = $data ['pin'];
248
		$senddata ['phone'] = $data ['phone'];
249
		$senddata ['country'] = 'India';
17899 amit.gupta 250
		$url = Configure::read ( 'saholicapihost' ) . "address?userId=" . $suserId . "&isLoggedIn=true&cartId=" . $scartId . "&isPrivateDealUser=true";
17882 naman 251
 
17899 amit.gupta 252
		$response = $this->post_cartinfo_request($url,$senddata);
17882 naman 253
		$suserId = base64_decode ( $_COOKIE ['s_id'] );
254
 
255
		$scartId = base64_decode ( $_COOKIE ['s_cart'] );
256
		$semailId = base64_decode ( $_COOKIE ['s_email'] );
257
		$blank = array ();
258
		$postData = array (
259
				'cartItems' => $blank 
260
		);
261
 
262
		$params = array (
263
				'cartMap' => urlencode ( json_encode ( $postData ) ) 
264
		);
265
		$url = Configure::read ( 'saholicapihost' ) . 'cart!validateCart?isLoggedIn=true&privateDealUser=true&userId=' . $suserId . '&id=' . $scartId . '&email=' . $semailId;
266
		// if($pin!='0'){
267
		$url = $url . '&pinCode=' . $data ['pin'];
268
		// }
269
		$cartskus = $this->post_cartinfo_request ( $url, $params );
17893 amit.gupta 270
		$checkestimate = $response ['defaultAddress'];
17882 naman 271
		if ($cartskus ['maxEstimate'] == - 1) {
17893 amit.gupta 272
			$checkestimate = '';
17882 naman 273
		} else {
274
			for($i = 0; $i < count ( $cartskus ['cartItems'] ); $i ++) {
17904 amit.gupta 275
				if(array_key_exists('estimate',$cartskus ['cartItems'] [$i])){
276
					continue;
277
				}
278
				$estimate = $cartskus ['cartItems'] [$i] ['estimate'];
279
				if ($estimate==-1) {
17893 amit.gupta 280
					$checkestimate = '';
17882 naman 281
					break;
282
				}
283
			}
284
		}
285
 
286
		return $checkestimate;
287
	}
288
	public function getstate($pin_val) {
289
		$this->autoRender = false;
290
		$this->request->onlyAllow ( 'ajax' );
291
		$url = $this->apihost . "pincodeValidation/" . $pin_val;
292
		$getstate = $this->make_request ( $url, null );
293
		// $getstate['state'] = ucwords(strtolower($getstate['state']));
17844 naman 294
		$nothing = "nothing";
17882 naman 295
		if ($getstate != "{}") {
296
			$getstate ['state'] = ucwords ( strtolower ( $getstate ['state'] ) );
17844 naman 297
		}
17882 naman 298
		return json_encode ( $getstate );
299
	}
300
	public function isServicable($pin) {
301
		$this->autoRender = false;
302
		$this->request->onlyAllow ( 'ajax' );
17793 naman 303
		// $url = "http://shop2020.in:8080/mobileapi/address!serviceable?pincode=".$pin;
304
		// $response = $this->make_request($url,null);
17882 naman 305
 
306
		$scartId = base64_decode ( $_COOKIE ['s_cart'] );
307
		$suserId = base64_decode ( $_COOKIE ['s_id'] );
308
		$semailId = base64_decode ( $_COOKIE ['s_email'] );
309
		$blank = array ();
310
		$postData = array (
311
				'cartItems' => $blank 
312
		);
313
 
314
		$params = array (
315
				'cartMap' => urlencode ( json_encode ( $postData ) ) 
316
		);
317
		$url = Configure::read ( 'saholicapihost' ) . 'cart!validateCart?isLoggedIn=true&privateDealUser=true&userId=' . $suserId . '&id=' . $scartId . '&email=' . $semailId;
318
		$url = $url . '&pinCode=' . $pin;
319
		$cartskus = $this->post_cartinfo_request ( $url, $params );
320
		$checkestimate = 'true';
321
		if ($cartskus ['maxEstimate'] == - 1) {
322
			$checkestimate = 'false';
323
		} else {
324
			for($i = 0; $i < count ( $cartskus ['cartItems'] ); $i ++) {
17904 amit.gupta 325
				if(array_key_exists('estimate',$cartskus ['cartItems'] [$i])){
326
					continue;
327
				}
328
				$estimate = $cartskus ['cartItems'] [$i] ['estimate'];
329
				if ($estimate==-1) {
17882 naman 330
					$checkestimate = 'false';
331
					break;
332
				}
333
			}
334
		}
335
 
336
		return $checkestimate;
337
	}
338
 
17871 manish.sha 339
	 public function checkout(){
340
	 	$addressid = json_decode($this->request->data['addressid']);
17846 manish.sha 341
	 	$pincode = 0;
17871 manish.sha 342
		$cod = $this->request->query('cod');
17846 manish.sha 343
		$userId = $this->request->query('user_id');
344
 
345
		if(isset($this->request->data->pincode)){
346
			$pincode = $this->request->data->pincode;
347
		}
348
		if($pincode==0 && isset($_COOKIE['s_pincode'])){
349
			$pincode = base64_decode($_COOKIE['s_pincode']);
350
		}
351
 
17871 manish.sha 352
		$suserId = base64_decode($_COOKIE['s_id']);
353
		$scartId = base64_decode($_COOKIE['s_cart']);
354
		$semailId = base64_decode($_COOKIE['s_email']);
355
 
356
		if(isset($_COOKIE['txn_comp'])) {
357
			unset($_COOKIE['txn_comp']);
358
		}
18529 manish.sha 359
 
17871 manish.sha 360
		if($cod==1){
361
			$url = Configure::read('saholicapihost').'order?payment_option=3000&isLoggedIn=true&privateDealUser=true&userId='.$suserId.'&id='.$scartId.'&email='.$semailId.'&addressid='.$addressid;
362
		 	if($pincode!='0'){
363
				$url = $url.'&pinCode='.$pincode;
364
			}
365
			$orderCreationResponse = $this->post_cartinfo_request($url, null);
366
			//{"response":{"success":true,"redirectUrl":"pay-success?paymentId=998593"}}
367
			$redirecturl = $orderCreationResponse['response']['redirectUrl'];
368
			if (strpos($redirecturl,'pay-success') === false) {
17885 manish.sha 369
			    setcookie('txn_comp', 'no', -1, '/');
17871 manish.sha 370
			}
371
			$this->layout = 'innerpages';
372
			$next = $redirecturl;					
373
			$redirectUrl = $this->getAutoLoginUrl($userId,$next);
374
			$this->log($redirectUrl,'headers');
375
			$this->set(compact('redirectUrl','next'));
376
		}else{
377
			$dataGiven = json_decode($this->request->data['cart_details']);
378
			$totalSkus= intval($dataGiven->totalSkus);
17885 manish.sha 379
			setcookie('txn_comp', 'no', -1, '/');
17871 manish.sha 380
			$this->layout = 'innerpages';
17892 manish.sha 381
			$next = "payment?cq=".$totalSkus.'&addressid='.$addressid;					
17871 manish.sha 382
			$redirectUrl = $this->getAutoLoginUrl($userId,$next);
383
			$this->log($redirectUrl,'headers');
384
			$this->set(compact('redirectUrl','next'));
385
		}
386
	 }
17793 naman 387
}