Subversion Repositories SmartDukaan

Rev

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