Subversion Repositories SmartDukaan

Rev

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