Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
13532 anikendra 1
<?php
2
App::uses('AppController', 'Controller');
3
/**
4
 * Orders Controller
5
 *
6
 * @property Order $Order
7
 * @property PaginatorComponent $Paginator
8
 */
9
class OrdersController extends AppController {
10
 
11
/**
12
 * Components
13
 *
14
 * @var array
15
 */
16
	public $components = array('Paginator');
17
 
13672 anikendra 18
	public function beforeFilter() {		
13591 anikendra 19
		parent::beforeFilter();
15093 anikendra 20
		$this->Auth->allow('add','mine','pendingcashbacks','all');
13672 anikendra 21
		$this->apihost = Configure::read('pythonapihost');
13591 anikendra 22
	}
23
 
17287 amit.gupta 24
 
25
	public function getOrderFilters($type='user') {
26
		$cachekey = 'orderfilters-'.$type;
27
		$filters = Cache::read($cachekey);
28
		if(empty($filters)) {
29
			$url = $this->apihost."orderfilters/?type=".$type;
30
			$response = $this->make_request($url, null);
31
			echo $response;
32
			if(!empty($response)){
33
				$filters = $response;
34
				Cache::write($cachekey,$filters);
35
			}
36
		}
37
        return $filters;
38
	}
39
 
13816 anikendra 40
	public function mine() {
15824 anikendra 41
		$type = $this->request->query('type');
13816 anikendra 42
		$page = $this->request->query('page');
43
		$page = isset($page)?$page:1;
13682 anikendra 44
		$userId = $this->request->query('user_id');
45
		if(isset($userId) && !empty($userId)){
46
			$this->loadModel('User');
47
			$dbuser = $this->User->findById($userId);
48
			$this->Auth->login($dbuser['User']);	
49
		}
13672 anikendra 50
		$this->layout = "innerpages";
13815 anikendra 51
		$url = $this->apihost."storeorder/user/".$this->Auth->User('id')."?page=$page&window=10";
15824 anikendra 52
		if(isset($type) && !empty($type)) {
53
			$url .= '&type='.$type;
54
		}
13672 anikendra 55
		$response = $this->make_request($url,null);
13815 anikendra 56
		$totalPages = $response['totalPages'];
13672 anikendra 57
		if(!empty($response['data'])){
58
			$this->set('orders',$response['data']);
59
		}
13752 anikendra 60
		$ignoredFields = array('imgUrl','status','productTitle','estimatedDeliveryDate','productCode','merchantSubOrderId','productUrl','closed','tracingkUrl','detailedStatus');
13944 anikendra 61
		$storemapping = Configure::read('storemapping');
62
		$activestores = Configure::read('activestores');
14224 anikendra 63
		$amazonorderurl = Configure::read('amazonorderurl');
64
		$this->set(compact('ignoredFields','page','totalPages','userId','activestores','storemapping','amazonorderurl'));
13672 anikendra 65
	}
66
 
15217 anikendra 67
	public function by($userId) {
68
		$page = $this->request->query('page');
69
		$page = isset($page)?$page:1;		
70
		$this->layout = "innerpages";
71
		$url = $this->apihost."storeorder/user/".$userId."?page=$page&window=10";
72
		$response = $this->make_request($url,null);
73
		$totalPages = $response['totalPages'];
74
		if(!empty($response['data'])){
75
			$this->set('orders',$response['data']);
76
		}
77
		$ignoredFields = array('imgUrl','status','productTitle','estimatedDeliveryDate','productCode','merchantSubOrderId','productUrl','closed','tracingkUrl','detailedStatus');
78
		$storemapping = Configure::read('storemapping');
79
		$activestores = Configure::read('activestores');
80
		$amazonorderurl = Configure::read('amazonorderurl');
81
		$this->set(compact('ignoredFields','page','totalPages','userId','activestores','storemapping','amazonorderurl'));
82
	}
83
 
13762 anikendra 84
	public function pendingcashbacks() {
85
		$userId = $this->request->query('user_id');
86
		if(isset($userId) && !empty($userId)){
87
			$this->loadModel('User');
88
			$dbuser = $this->User->findById($userId);
89
			$this->Auth->login($dbuser['User']);	
90
		}
91
		$this->layout = "innerpages";
17724 amit.gupta 92
		$url = $this->apihost."storeorder/user/".$userId."?page=1&window=50&searchMap=%7B\"subOrders.cashBackStatus\"%3A%20%7B\"%24in\"%3A%20%5B\"Approved\"%2C%20\"Pending\"%5D%7D%7D";
13762 anikendra 93
		$response = $this->make_request($url,null);
13993 anikendra 94
		// debug($response);
95
		$creditedOrders = $pendingOrders = $approvedOrders = array();
96
		$creditedAmount = $pendingAmount = $approvedAmount = 0;
13762 anikendra 97
		if(!empty($response['data'])){
13993 anikendra 98
			foreach ($response['data'] as $key => $order) {
14111 anikendra 99
				if(!empty($order['subOrders'])){
100
					foreach ($order['subOrders'] as $key => $suborder) {
101
						$suborder['storeId'] = $order['storeId'];
15035 amit.gupta 102
						if($order['storeId']!=4){
15036 amit.gupta 103
							$suborder['merchantOrderId'] = $order['merchantOrderId'];
104
						} else {
15035 amit.gupta 105
							$suborder['merchantOrderId'] = $suborder['merchantSubOrderId'];
106
						}
14700 anikendra 107
						if(!empty($order['orderTrackingUrl'])){
108
							$suborder['orderSuccessUrl'] = $order['orderTrackingUrl'];
109
						}
14111 anikendra 110
						switch($suborder['cashBackStatus']){
111
							case 'Approved':
112
							$approvedOrders[] = $suborder;
113
							$approvedAmount += $suborder['cashBackAmount'];
114
							break;
115
							case 'Pending':
116
							$pendingOrders[] = $suborder;
117
						}
13993 anikendra 118
					}
119
				}
120
			}
13762 anikendra 121
		}
14673 anikendra 122
		$url = $this->apihost.'pending-cashbacks/user/'.$userId;
123
		$result = $this->make_request($url,null);
124
		$pendingAmount = $result['amount'];
13993 anikendra 125
		//Get pending cashbacks
126
		$url = $this->apihost.'pending-refunds/user/'.$userId;
127
		$pendingCashbacks = $this->make_request($url,null);
128
		//Get credited cashbacks
129
		$url = $this->apihost.'refund/user/'.$userId;
14068 anikendra 130
		$creditedCashbacks = $this->make_request($url,null);
19499 naman 131
 
132
		$totalcreditedcashback = 0;
133
		if(!empty($creditedCashbacks)){
134
			$totalcreditedcashback = $creditedCashbacks['credited'];
135
		}
136
 
16893 naman 137
		$creditKeyArray = array();
138
		$creditValueArray = array();
16907 naman 139
		$total_credited_amount = 0;
14026 anikendra 140
		if(!empty($creditedCashbacks)){
13993 anikendra 141
			foreach ($creditedCashbacks['data'] as $key => $value) {
14068 anikendra 142
				$creditedAmount += $value['userAmount'];				
143
				$data = array('subOrders.batchId'=>$value['batch']);
144
				$jsonVar = json_encode($data);
145
				$url = $this->apihost."storeorder/user/".$this->Auth->User('id')."?page=1&window=50&searchMap=$jsonVar";
146
				$creditedOrders[$value['batch']] = $this->make_request($url,null);
16907 naman 147
				$total_credited_amount =$total_credited_amount + $value['userAmount'];
17109 naman 148
				if($value['type']== 'Order')
149
				{
150
					$creditValueArray['amount'] = $value['userAmount'];
151
					$creditValueArray['type'] = $value['type'];
152
					$creditValueArray['fortbatchid'] = $value['batch'];
153
					$creditValueArray['creditedDate'] = date('Y-m-d',strtotime($value['timestamp']));
154
					// $creditKeyArray[date('Y-m-d',strtotime($value['timestamp']))] = $creditValueArray;
155
					$creditKeyArray[date('Y-m-d',strtotime($value['timestamp'])).$value['type']] = $creditValueArray;
156
				}
19499 naman 157
				elseif($value['type']== 'Refund'){
158
					$creditValueArray['amount'] = $value['userAmount'];
159
					$creditValueArray['type'] = $value['type'];
160
					$creditValueArray['fortbatchid'] = $value['batch'];
161
					$creditValueArray['creditedDate'] = date('Y-m-d',strtotime($value['timestamp']));
162
					$creditValueArray['description'] = $value['description'];
163
					$creditKeyArray[date('Y-m-d',strtotime($value['timestamp'])).$value['type']] = $creditValueArray;
164
 
165
				}
166
				elseif($value['type']== 'Adjustment'){
167
					$creditValueArray['amount'] = $value['userAmount'];
168
					$creditValueArray['type'] = $value['type'];
169
					$creditValueArray['fortbatchid'] = $value['batch'];
170
					$creditValueArray['creditedDate'] = date('Y-m-d',strtotime($value['timestamp']));
171
					$creditValueArray['description'] = $value['description'];
172
					$creditKeyArray[date('Y-m-d',strtotime($value['timestamp'])).$value['type']] = $creditValueArray;
173
				}
13993 anikendra 174
			}
175
		}
14026 anikendra 176
		$storemapping = Configure::read('storemapping');
177
		$activestores = Configure::read('activestores');
16628 anikendra 178
		//App related cashbacks
179
		$this->loadModel('UserAppCashback');
180
		$this->loadModel('UserAppInstall');
181
		//Compute last two fortnight ids
182
		$fortnightIds = array();
183
		if(date('d',time())<=15){
16784 anikendra 184
			$fortnightIds[] = 2*(date('m',time())-1)-1;
16629 anikendra 185
			$fortnightIds[] = 2*(date('m',time())-1);
16628 anikendra 186
		}else{
16784 anikendra 187
			$fortnightIds[] = 2*(date('m',time())-1);
16628 anikendra 188
			$fortnightIds[] = 2*(date('m',time())-1)+1;
189
		}
190
		$cashBacks = array();
16893 naman 191
 
192
		// Approved Start
193
 
16840 naman 194
		$url = $this->apihost.'appUserCashBack/'.$userId.'/Approved';
195
		$getapproved = $this->make_request($url,null);
196
		$fortnight = array();
197
		$fortnight_amount = array();
198
		$counter = 0;
199
		$total_approved_amount = 0;
200
		$current_date =  date("Y");
201
		foreach ($getapproved["UserAppCashBack"] as $key => $value) {
202
			 $fortnight[$counter] = $value["fortnightOfYear"];
203
			 $fortnight_amount[$counter] = $value["amount"];
204
			 $total_approved_amount += $value["amount"];
205
			 $counter++;
206
		}
207
		$approvedFortnight = array();
208
		for($i=0; $i<count($fortnight); $i++){
18172 manish.sha 209
			$url = $this->apihost.'appUserBatchDrillDown/'.$userId.'/'.$getapproved["UserAppCashBack"][$i]['fortnightOfYear'].'/'.$getapproved["UserAppCashBack"][$i]['yearVal'];
16983 naman 210
			$approvedFortnight[$i] = $this->make_request($url,null);
16840 naman 211
		// $url = $this->apihost.'appUserBatchDrillDown/1/16/2015';
212
		// $approvedFortnight[] = $this->make_request($url,null);
213
		}
16983 naman 214
		// debug($approvedFortnight);
16840 naman 215
		$this->set(compact('fortnight','total_approved_amount','fortnight_amount','approvedFortnight'));		
16893 naman 216
	// Approved End	
16840 naman 217
 
16893 naman 218
	// App Credit Start
219
		$creditedFortnight = array();
220
		$url = $this->apihost.'appUserCashBack/'.$userId.'/Credited';
221
		$getcredited = $this->make_request($url,null);
17110 naman 222
		// debug($getcredited);
16893 naman 223
		foreach ($getcredited['UserAppCashBack'] as $key => $value) {
16840 naman 224
 
17109 naman 225
 
226
 
16893 naman 227
			$url = $this->apihost.'appUserBatchDrillDown/'.$userId.'/'.$value['fortnightOfYear'].'/'.$value['yearVal'];
228
			$creditedFortnight[$value['fortnightOfYear']] = $this->make_request($url,null);
229
 
230
			$creditValueArray['amount'] = $value['amount'];
17104 anikendra 231
			// $total_credited_amount = $total_credited_amount + $value['amount'];
16893 naman 232
			$creditValueArray['type'] = 'App';
233
			$creditValueArray['fortbatchid'] = $value['fortnightOfYear'];
17109 naman 234
			$creditValueArray['creditedDate'] = $value['creditedDate'];
235
			$creditKeyArray[$value['creditedDate'].'App'] = $creditValueArray;
236
			// echo "total credit",$total_credited_amount;
16893 naman 237
			// echo $url;
238
		}
239
 
240
		ksort($creditKeyArray);
16907 naman 241
		$this->set(compact('getcredited','creditedFortnight','creditKeyArray','total_credited_amount'));
16893 naman 242
		// debug($creditedFortnight);
243
	// App Credit End
244
 
245
 
16628 anikendra 246
		foreach ($fortnightIds AS $fortnightId){
16712 naman 247
			$appInstalls = array();
16628 anikendra 248
			$options = array('conditions'=>array('fortnightOfYear'=>$fortnightId,'user_id'=>$this->Auth->User('id')),'fields'=>array('status','amount'));
249
			$temp = $this->UserAppCashback->find('first',$options);
16681 anikendra 250
			if(isset($temp) && !empty($temp)){
251
				$cashBacks[$temp['UserAppCashback']['status']]['amount'] = $temp['UserAppCashback']['amount'];
16712 naman 252
				$cashBacks[$temp['UserAppCashback']['status']]['fortnightOfYear'] = $fortnightId;
253
				// debug($fortnightId);
16681 anikendra 254
				$options = array('conditions'=>array('fortnightOfYear'=>$fortnightId,'user_id'=>$this->Auth->User('id')),'fields'=>array('sum(payoutAmount) AS amount','sum(installCount) AS installs','transaction_date'),'group'=>'transaction_date');
255
				$installs = $this->UserAppInstall->find('all',$options);			
256
				if(!empty($installs)){
257
					foreach ($installs as $key => $value) {
258
						$appInstalls[$value['UserAppInstall']['transaction_date']] = $value[0];					
259
					}
260
					$cashBacks[$temp['UserAppCashback']['status']]['installs'] = $appInstalls;
16628 anikendra 261
				}
262
			}
263
		}
17461 amit.gupta 264
		$this->set(compact('storemapping','activestores','pendingOrders','approvedOrders','creditedOrders','pendingCashbacks','creditedCashbacks','pendingAmount','approvedAmount','creditedAmount','cashBacks'));
13762 anikendra 265
	}
266
 
16840 naman 267
	public function getAppByDate($date) {
268
		$url = $this->apihost.'appUserBatchDateDrillDown/1/'.$date;
269
		$getApp = $this->make_request($url,null);
270
		echo $getApp;
271
	}
272
 
17354 naman 273
	public function usercashbacks($userId) {	
274
		$this->set('byUser',$userId);
15217 anikendra 275
		$this->layout = "innerpages";
17724 amit.gupta 276
		$url = $this->apihost."storeorder/user/".$userId."?page=1&window=50&searchMap=%7B\"subOrders.cashBackStatus\"%3A%20%7B\"%24in\"%3A%20%5B\"Approved\"%2C%20\"Pending\"%5D%7D%7D";
15217 anikendra 277
		$response = $this->make_request($url,null);
278
		// debug($response);
279
		$creditedOrders = $pendingOrders = $approvedOrders = array();
280
		$creditedAmount = $pendingAmount = $approvedAmount = 0;
17724 amit.gupta 281
		echo $response['data'];
15217 anikendra 282
		if(!empty($response['data'])){
283
			foreach ($response['data'] as $key => $order) {
284
				if(!empty($order['subOrders'])){
285
					foreach ($order['subOrders'] as $key => $suborder) {
286
						$suborder['storeId'] = $order['storeId'];
287
						if($order['storeId']!=4){
288
							$suborder['merchantOrderId'] = $order['merchantOrderId'];
289
						} else {
290
							$suborder['merchantOrderId'] = $suborder['merchantSubOrderId'];
291
						}
292
						if(!empty($order['orderTrackingUrl'])){
293
							$suborder['orderSuccessUrl'] = $order['orderTrackingUrl'];
294
						}
17724 amit.gupta 295
						$suborder['cashBackStatus'];
15217 anikendra 296
						switch($suborder['cashBackStatus']){
297
							// case 'Credited to wallet'://Credited
298
							// $creditedOrders[] = $suborder;
299
							// break;
300
							case 'Approved':
301
							$approvedOrders[] = $suborder;
302
							$approvedAmount += $suborder['cashBackAmount'];
303
							break;
304
							case 'Pending':
305
							$pendingOrders[] = $suborder;
306
							// $pendingAmount += $suborder['cashBackAmount'];
307
						}
308
					}
309
				}
310
			}
311
		}
312
		$url = $this->apihost.'pending-cashbacks/user/'.$userId;
313
		$result = $this->make_request($url,null);
314
		$pendingAmount = $result['amount'];
315
		//Get pending cashbacks
316
		$url = $this->apihost.'pending-refunds/user/'.$userId;
317
		$pendingCashbacks = $this->make_request($url,null);
318
		//Get credited cashbacks
319
		$url = $this->apihost.'refund/user/'.$userId;
320
		$creditedCashbacks = $this->make_request($url,null);
19499 naman 321
 
322
		$totalcreditedcashback = 0;
323
		if(!empty($creditedCashbacks)){
324
			$totalcreditedcashback = $creditedCashbacks['credited'];
325
		}
326
 
17201 naman 327
		$creditKeyArray = array();
328
		$creditValueArray = array();
329
		$total_credited_amount = 0;
15217 anikendra 330
		if(!empty($creditedCashbacks)){
331
			foreach ($creditedCashbacks['data'] as $key => $value) {
332
				$creditedAmount += $value['userAmount'];				
333
				$data = array('subOrders.batchId'=>$value['batch']);
334
				$jsonVar = json_encode($data);
17459 amit.gupta 335
				$url = $this->apihost."storeorder/user/".$userId."?page=1&window=50&searchMap=$jsonVar";
15217 anikendra 336
				$creditedOrders[$value['batch']] = $this->make_request($url,null);
17201 naman 337
				$total_credited_amount =$total_credited_amount + $value['userAmount'];
338
				if($value['type']== 'Order')
339
				{
340
					$creditValueArray['amount'] = $value['userAmount'];
341
					$creditValueArray['type'] = $value['type'];
342
					$creditValueArray['fortbatchid'] = $value['batch'];
343
					$creditValueArray['creditedDate'] = date('Y-m-d',strtotime($value['timestamp']));
344
					// $creditKeyArray[date('Y-m-d',strtotime($value['timestamp']))] = $creditValueArray;
345
					$creditKeyArray[date('Y-m-d',strtotime($value['timestamp'])).$value['type']] = $creditValueArray;
346
				}
19499 naman 347
				elseif($value['type']== 'Refund'){
348
					$creditValueArray['amount'] = $value['userAmount'];
349
					$creditValueArray['type'] = $value['type'];
350
					$creditValueArray['fortbatchid'] = $value['batch'];
351
					$creditValueArray['creditedDate'] = date('Y-m-d',strtotime($value['timestamp']));
352
					$creditValueArray['description'] = $value['description'];
353
					$creditKeyArray[date('Y-m-d',strtotime($value['timestamp'])).$value['type']] = $creditValueArray;
354
 
355
				}
356
				elseif($value['type']== 'Adjustment'){
357
					$creditValueArray['amount'] = $value['userAmount'];
358
					$creditValueArray['type'] = $value['type'];
359
					$creditValueArray['fortbatchid'] = $value['batch'];
360
					$creditValueArray['creditedDate'] = date('Y-m-d',strtotime($value['timestamp']));
361
					$creditValueArray['description'] = $value['description'];
362
					$creditKeyArray[date('Y-m-d',strtotime($value['timestamp'])).$value['type']] = $creditValueArray;
363
				}
17201 naman 364
 
15217 anikendra 365
			}
366
		}
17201 naman 367
 
15217 anikendra 368
		$storemapping = Configure::read('storemapping');
369
		$activestores = Configure::read('activestores');
17459 amit.gupta 370
		//App related cashbacks
371
		$this->loadModel('UserAppCashback');
372
		$this->loadModel('UserAppInstall');
373
		//Compute last two fortnight ids
374
		$fortnightIds = array();
375
		if(date('d',time())<=15){
376
			$fortnightIds[] = 2*(date('m',time())-1)-1;
377
			$fortnightIds[] = 2*(date('m',time())-1);
378
		}else{
379
			$fortnightIds[] = 2*(date('m',time())-1);
380
			$fortnightIds[] = 2*(date('m',time())-1)+1;
17201 naman 381
		}
17459 amit.gupta 382
		$cashBacks = array();
17354 naman 383
 
384
		// Approved Start
385
 
386
		$url = $this->apihost.'appUserCashBack/'.$userId.'/Approved';
387
		$getapproved = $this->make_request($url,null);
388
		$fortnight = array();
389
		$fortnight_amount = array();
390
		$counter = 0;
391
		$total_approved_amount = 0;
392
		$current_date =  date("Y");
393
		foreach ($getapproved["UserAppCashBack"] as $key => $value) {
394
			 $fortnight[$counter] = $value["fortnightOfYear"];
395
			 $fortnight_amount[$counter] = $value["amount"];
396
			 $total_approved_amount += $value["amount"];
397
			 $counter++;
398
		}
399
		$approvedFortnight = array();
400
		for($i=0; $i<count($fortnight); $i++){
18172 manish.sha 401
			$url = $this->apihost.'appUserBatchDrillDown/'.$userId.'/'.$getapproved["UserAppCashBack"][$i]['fortnightOfYear'].'/'.$getapproved["UserAppCashBack"][$i]['yearVal'];
17354 naman 402
			$approvedFortnight[$i] = $this->make_request($url,null);
403
		// $url = $this->apihost.'appUserBatchDrillDown/1/16/2015';
404
		// $approvedFortnight[] = $this->make_request($url,null);
405
		}
406
		// debug($approvedFortnight);
407
		$this->set(compact('fortnight','total_approved_amount','fortnight_amount','approvedFortnight'));		
408
	// Approved End	
409
 
17459 amit.gupta 410
	// App Credit Start
411
		$creditedFortnight = array();
412
		$url = $this->apihost.'appUserCashBack/'.$userId.'/Credited';
413
		$getcredited = $this->make_request($url,null);
414
		// debug($getcredited);
415
		foreach ($getcredited['UserAppCashBack'] as $key => $value) {
416
 
417
 
418
 
419
			$url = $this->apihost.'appUserBatchDrillDown/'.$userId.'/'.$value['fortnightOfYear'].'/'.$value['yearVal'];
420
			$creditedFortnight[$value['fortnightOfYear']] = $this->make_request($url,null);
421
 
422
			$creditValueArray['amount'] = $value['amount'];
423
			// $total_credited_amount = $total_credited_amount + $value['amount'];
424
			$creditValueArray['type'] = 'App';
425
			$creditValueArray['fortbatchid'] = $value['fortnightOfYear'];
426
			$creditValueArray['creditedDate'] = $value['creditedDate'];
427
			$creditKeyArray[$value['creditedDate'].'App'] = $creditValueArray;
428
			// echo "total credit",$total_credited_amount;
429
			// echo $url;
15217 anikendra 430
		}
17459 amit.gupta 431
 
432
		ksort($creditKeyArray);
17656 amit.gupta 433
		$this->set(compact('getcredited','creditedFortnight','creditKeyArray','total_credited_amount', 'creditedOrders', 'pendingAmount', 'pendingOrders','approvedAmount', 'approvedOrders'));
17459 amit.gupta 434
 
15217 anikendra 435
	}
436
 
15227 anikendra 437
/*
13532 anikendra 438
	public function index() {
13591 anikendra 439
		throw new NotFoundException(__('Access Denied'));
13532 anikendra 440
		$this->Order->recursive = 0;
441
		$this->set('orders', $this->Paginator->paginate());
442
	}
443
 
15227 anikendra 444
 
13532 anikendra 445
	public function view($id = null) {
13591 anikendra 446
		throw new NotFoundException(__('Access Denied'));
13532 anikendra 447
		if (!$this->Order->exists($id)) {
448
			throw new NotFoundException(__('Invalid order'));
449
		}
450
		$options = array('conditions' => array('Order.' . $this->Order->primaryKey => $id));
451
		$this->set('order', $this->Order->find('first', $options));
452
	}
15227 anikendra 453
*/
454
 
13532 anikendra 455
/**
456
 * add method
457
 *
458
 * @return void
459
 */
13814 anikendra 460
 
461
	public function postOrders($order=null) {
13994 anikendra 462
		// Configure::load('live');
13814 anikendra 463
		$apihost = Configure::read('pythonapihost');
464
		$url = $apihost."storeorder";
465
		if(!empty($order)) {
466
			$params = array('sourceId'=>$order['Order']['store_id'],'orderId'=>$order['Order']['id'],'subTagId'=>$order['Order']['sub_tag'],'userId'=>$order['Order']['user_id'],'rawHtml'=>$order['Order']['rawhtml'],'orderSuccessUrl'=>$order['Order']['order_url']);
467
			$jsonVar = json_encode($params);
468
			return $this->make_request($url,$jsonVar);
469
		}else{
470
			$result = array('success'=>false,'message'=>'Empty order array');
471
			return $result;
472
		}
473
	}
474
 
13532 anikendra 475
	public function add() {
14933 amit.gupta 476
		$this->log(print_r($this->request->data,1),'orders');
13532 anikendra 477
		if ($this->request->is('post')) {
14886 amit.gupta 478
			if($this->request->data['zip']){
14933 amit.gupta 479
				$this->request->data['rawhtml'] = gzuncompress(base64_decode($this->request->data['rawhtml'])); 
14886 amit.gupta 480
			}
481
			$this->log(print_r($this->request->data,1),'orders');
14315 anikendra 482
			if(empty($this->request->data['id'])) {
483
				$this->Order->create();
13633 anikendra 484
			}
15093 anikendra 485
			$this->request->data['ip'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
13532 anikendra 486
			if ($this->Order->save($this->request->data)) {
14315 anikendra 487
				//$this->loadModel('PythonApi');	
488
				if(empty($this->request->data['id'])) {
489
					$id = $this->Order->getLastInsertID();
490
				}else{
491
					$id = $this->request->data['id'];
492
				}
493
				$order = $this->Order->find('first',array('conditions'=>array('id'=>$id),'recursive'=>-1));
13814 anikendra 494
				$response = $this->postOrders($order);
495
				$this->log(print_r($response,1),'orders');
496
				if(!empty($response) && $response['result']) {
14315 anikendra 497
					//if($response['result'] == 'HTML_REQUIRED' || $response['result'] == 'requireHtml') {
498
					if($response['htmlRequired'] == 1) {
13814 anikendra 499
						$this->loadModel('Rawhtml');
500
						$data = array('order_id' => $order['Order']['id'],'url' => $response['url'], 'status' => 'new');
501
						$this->Rawhtml->create();
502
						$this->Rawhtml->save($data); 
14315 anikendra 503
						//$result =array('success'=>true,'message'=>__('requireHtml'),'url' => $response['url'],'orderId' => $response['orderId']);
504
						$result =  $response;
505
						$sql = "UPDATE orders SET status = '".$response['result']."' WHERE id = ".$order['Order']['id'];
506
					}/* elseif($response['result'] == 'IGNORED') {
13814 anikendra 507
						$result =array('success'=>true,'message'=>__('IGNORED'));
508
						$sql = "UPDATE orders SET status = 'deleted' WHERE id = ".$order['Order']['id'];
509
					} elseif($response['result'] == 'PARSE_ERROR') {
510
						$result =array('success'=>true,'message'=>__('PARSE_ERROR'));
511
						$sql = "UPDATE orders SET status = 'deleted' WHERE id = ".$order['Order']['id'];
14315 anikendra 512
					} */
513
					else {
514
						$result =array('success'=>true,'message'=> $response['result']);
515
						$sql = "UPDATE orders SET status = '".$response['result']."' WHERE id = ".$order['Order']['id'];
13814 anikendra 516
					}
517
					$this->Order->query($sql);
518
				}
519
				//$result = array('success'=>true,'message'=>__('HTML_REQUIRED'),'url'=>'https://www.amazon.in/gp/css/summary/edit.html?orderID=404-7369214-6566739');
13633 anikendra 520
/*
521
				$options = array('conditions'=>array('status'=>'mapped'),'recursive'=>-1);
522
				$order = $this->Order->find('first',$options);
523
				if(!empty($orders)) {
524
					foreach($orders AS $order) {
525
						$response = $this->PythonApi->postOrders($order);
526
						if(!empty($response) && $response['result']) {
527
							$sql = "UPDATE orders SET status = 'processed' WHERE id = ".$order['Order']['id'];
528
							$this->Order->query($sql);
529
						}
530
					}
531
				}
532
*/
13532 anikendra 533
			} else {
14315 anikendra 534
				$this->log(print_r($this->Order->validationErrors,1),'orders');
13591 anikendra 535
				$result = array('success'=>false,'message'=>__('The order could not be saved. Please, try again.'));
13532 anikendra 536
			}
13591 anikendra 537
			$this->response->type('json');
538
			$this->layout = 'ajax';
539
			$this->set(array(
14315 anikendra 540
			    'result' => $response,
13591 anikendra 541
			    // 'callback' => $callback,
542
			    '_serialize' => array('result')
543
			));
544
			$this->render('/Elements/json');		
545
		}			
13532 anikendra 546
	}
547
 
15227 anikendra 548
/*
549
 
13532 anikendra 550
	public function edit($id = null) {
13591 anikendra 551
		throw new NotFoundException(__('Access Denied'));
13532 anikendra 552
		if (!$this->Order->exists($id)) {
553
			throw new NotFoundException(__('Invalid order'));
554
		}
555
		if ($this->request->is(array('post', 'put'))) {
556
			if ($this->Order->save($this->request->data)) {
557
				$this->Session->setFlash(__('The order has been saved.'));
558
				return $this->redirect(array('action' => 'index'));
559
			} else {
560
				$this->Session->setFlash(__('The order could not be saved. Please, try again.'));
561
			}
562
		} else {
563
			$options = array('conditions' => array('Order.' . $this->Order->primaryKey => $id));
564
			$this->request->data = $this->Order->find('first', $options);
565
		}
566
		$users = $this->Order->User->find('list');
567
		$stores = $this->Order->Store->find('list');
568
		$storeOrders = $this->Order->StoreOrder->find('list');
569
		$this->set(compact('users', 'stores', 'storeOrders'));
570
	}
571
 
15227 anikendra 572
 
13532 anikendra 573
	public function delete($id = null) {
13591 anikendra 574
		throw new NotFoundException(__('Access Denied'));
13532 anikendra 575
		$this->Order->id = $id;
576
		if (!$this->Order->exists()) {
577
			throw new NotFoundException(__('Invalid order'));
578
		}
579
		$this->request->onlyAllow('post', 'delete');
580
		if ($this->Order->delete()) {
581
			$this->Session->setFlash(__('The order has been deleted.'));
582
		} else {
583
			$this->Session->setFlash(__('The order could not be deleted. Please, try again.'));
584
		}
585
		return $this->redirect(array('action' => 'index'));
586
	}
15227 anikendra 587
*/
13532 anikendra 588
 
589
/**
590
 * admin_index method
591
 *
592
 * @return void
593
 */
594
	public function admin_index() {
15227 anikendra 595
		$this->checkAcl();
13532 anikendra 596
		$this->Order->recursive = 0;
597
		$this->set('orders', $this->Paginator->paginate());
598
	}
599
 
600
/**
601
 * admin_view method
602
 *
603
 * @throws NotFoundException
604
 * @param string $id
605
 * @return void
606
 */
607
	public function admin_view($id = null) {
15227 anikendra 608
		$this->checkAcl();
13532 anikendra 609
		if (!$this->Order->exists($id)) {
610
			throw new NotFoundException(__('Invalid order'));
611
		}
612
		$options = array('conditions' => array('Order.' . $this->Order->primaryKey => $id));
613
		$this->set('order', $this->Order->find('first', $options));
614
	}
615
 
616
/**
617
 * admin_add method
618
 *
619
 * @return void
620
 */
621
	public function admin_add() {
15227 anikendra 622
		$this->checkAcl();
13532 anikendra 623
		if ($this->request->is('post')) {
624
			$this->Order->create();
625
			if ($this->Order->save($this->request->data)) {
626
				$this->Session->setFlash(__('The order has been saved.'));
627
				return $this->redirect(array('action' => 'index'));
628
			} else {
629
				$this->Session->setFlash(__('The order could not be saved. Please, try again.'));
630
			}
631
		}
632
		$users = $this->Order->User->find('list');
633
		$stores = $this->Order->Store->find('list');
634
		$storeOrders = $this->Order->StoreOrder->find('list');
635
		$this->set(compact('users', 'stores', 'storeOrders'));
636
	}
637
 
638
/**
639
 * admin_edit method
640
 *
641
 * @throws NotFoundException
642
 * @param string $id
643
 * @return void
644
 */
645
	public function admin_edit($id = null) {
15227 anikendra 646
		$this->checkAcl();
13532 anikendra 647
		if (!$this->Order->exists($id)) {
648
			throw new NotFoundException(__('Invalid order'));
649
		}
650
		if ($this->request->is(array('post', 'put'))) {
651
			if ($this->Order->save($this->request->data)) {
652
				$this->Session->setFlash(__('The order has been saved.'));
653
				return $this->redirect(array('action' => 'index'));
654
			} else {
655
				$this->Session->setFlash(__('The order could not be saved. Please, try again.'));
656
			}
657
		} else {
658
			$options = array('conditions' => array('Order.' . $this->Order->primaryKey => $id));
659
			$this->request->data = $this->Order->find('first', $options);
660
		}
661
		$users = $this->Order->User->find('list');
662
		$stores = $this->Order->Store->find('list');
663
		$storeOrders = $this->Order->StoreOrder->find('list');
664
		$this->set(compact('users', 'stores', 'storeOrders'));
665
	}
666
 
667
/**
668
 * admin_delete method
669
 *
670
 * @throws NotFoundException
671
 * @param string $id
672
 * @return void
673
 */
674
	public function admin_delete($id = null) {
15227 anikendra 675
		$this->checkAcl();
13532 anikendra 676
		$this->Order->id = $id;
677
		if (!$this->Order->exists()) {
678
			throw new NotFoundException(__('Invalid order'));
679
		}
680
		$this->request->onlyAllow('post', 'delete');
681
		if ($this->Order->delete()) {
682
			$this->Session->setFlash(__('The order has been deleted.'));
683
		} else {
684
			$this->Session->setFlash(__('The order could not be deleted. Please, try again.'));
685
		}
686
		return $this->redirect(array('action' => 'index'));
14354 anikendra 687
	}
688
 
689
	public function all() {
17287 amit.gupta 690
		$orderFilters = $this->getOrderFilters("monitor");
14354 anikendra 691
		$page = $this->request->query('page');
17287 amit.gupta 692
		$filter = $this->request->query('filter');
14354 anikendra 693
		$page = isset($page)?$page:1;
14509 anikendra 694
		// $userId = $this->request->query('user_id');
695
		// if(isset($userId) && !empty($userId)){
696
		// 	$this->loadModel('User');
697
		// 	$dbuser = $this->User->findById($userId);
698
		// 	$this->Auth->login($dbuser['User']);	
699
		// }
14354 anikendra 700
		$this->layout = "innerpages";
17287 amit.gupta 701
		$url = $this->apihost."orders/?page=$page&window=20";
702
		if (!empty($filter)) $url .= "&filter=".$filter."&filtertype=monitor";
14354 anikendra 703
		$response = $this->make_request($url,null);
14509 anikendra 704
		$totalPages = $response['totalPages'];		
14354 anikendra 705
		if(!empty($response['data'])){
706
			$this->set('orders',$response['data']);
707
		}
708
		$ignoredFields = array('imgUrl','status','productTitle','estimatedDeliveryDate','productCode','merchantSubOrderId','productUrl','closed','tracingkUrl','detailedStatus');
709
		$storemapping = Configure::read('storemapping');
710
		$activestores = Configure::read('activestores');
711
		$amazonorderurl = Configure::read('amazonorderurl');
712
		$allusers = $this->Order->User->find('all',array('fields'=>array('first_name','id'),'recursive'=>-1));
713
		foreach($allusers AS $user){
714
			$users[$user['User']['id']] = $user['User']['first_name'];
715
		}
15188 anikendra 716
		$this->layout = 'admin';
17287 amit.gupta 717
		$this->set(compact('ignoredFields','page','totalPages','userId','activestores','storemapping','amazonorderurl','users', 'orderFilters', 'type'));
14354 anikendra 718
	}
17290 amit.gupta 719
 
720
	public function monitor() {
721
		$orderFilters = $this->getOrderFilters("monitor");
722
		$page = $this->request->query('page');
723
		$filter = $this->request->query('filter');
17337 amit.gupta 724
		if(!empty($this->request->query('requiredetail'))){
725
				$orderId=$this->request->query('requiredetail');
726
		}
17290 amit.gupta 727
		$page = isset($page)?$page:1;
728
		$this->layout = "innerpages";
729
		$url = $this->apihost."orders/?page=$page&window=20";
17339 amit.gupta 730
		$apihost = 'http://104.200.25.40:8057/';
17290 amit.gupta 731
		if (!empty($filter)) $url .= "&filter=".$filter."&filtertype=monitor";
732
		$response = $this->make_request($url,null);
733
		$totalPages = $response['totalPages'];		
734
		if(!empty($response['data'])){
735
			$this->set('orders',$response['data']);
736
		}
737
		$ignoredFields = array('imgUrl','status','productTitle','estimatedDeliveryDate','productCode','merchantSubOrderId','productUrl','closed','tracingkUrl','detailedStatus');
738
		$storemapping = Configure::read('storemapping');
739
		$activestores = Configure::read('activestores');
740
		$amazonorderurl = Configure::read('amazonorderurl');
741
		$allusers = $this->Order->User->find('all',array('fields'=>array('first_name','id'),'recursive'=>-1));
742
		foreach($allusers AS $user){
743
			$users[$user['User']['id']] = $user['User']['first_name'];
744
		}
745
		$this->layout = 'admin';
17337 amit.gupta 746
		$this->set(compact('ignoredFields','page','totalPages','userId','activestores','storemapping','amazonorderurl','users', 'orderFilters', 'filter', 'apihost'));
17290 amit.gupta 747
	}
18446 manish.sha 748
 
749
	public function orderdetail(){
750
		$orderId = $this->request->query('order_id');
751
		$userId = $this->Auth->User('id');
752
		$next = "order/".$orderId;					
753
		$redirectUrl = $this->getAutoLoginUrl($userId,$next);
18449 manish.sha 754
		$this->layout = "innerpages";
18446 manish.sha 755
		$this->log($redirectUrl,'headers');
756
		$this->set(compact('redirectUrl','next'));
757
	}
17459 amit.gupta 758
}