Subversion Repositories SmartDukaan

Rev

Rev 16943 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
App::uses('AppController', 'Controller');
/**
 * AppTransactions Controller
 *
 * @property AppTransaction $AppTransaction
 * @property PaginatorComponent $Paginator
 */
class AppTransactionsController extends AppController {

/**
 * Components
 *
 * @var array
 */
        public $components = array('Paginator');

        public function beforeFilter()
    {
       parent::beforeFilter();
       $this->Paginator->settings=array(
              'limit'=>100
       );
    } 
/**
 * index method
 *
 * @return void
 */
        public function index() {
                $this->AppTransaction->recursive = 0;
                $this->set('appTransactions', $this->Paginator->paginate());
        }

/**
 * view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
        public function view($id = null) {
                if (!$this->AppTransaction->exists($id)) {
                        throw new NotFoundException(__('Invalid app transaction'));
                }
                $options = array('conditions' => array('AppTransaction.' . $this->AppTransaction->primaryKey => $id));
                $this->set('appTransaction', $this->AppTransaction->find('first', $options));
        }

/**
 * add method
 *
 * @return void
 */
        public function add() {
                if ($this->request->is('post')) {
                        $this->AppTransaction->create();
                        if ($this->AppTransaction->save($this->request->data)) {
                                $this->Session->setFlash(__('The app transaction has been saved.'));
                                return $this->redirect(array('action' => 'index'));
                        } else {
                                $this->Session->setFlash(__('The app transaction could not be saved. Please, try again.'));
                        }
                }
        }

/**
 * edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
        public function edit($id = null) {
                if (!$this->AppTransaction->exists($id)) {
                        throw new NotFoundException(__('Invalid app transaction'));
                }
                if ($this->request->is(array('post', 'put'))) {
                        if ($this->AppTransaction->save($this->request->data)) {
                                $this->Session->setFlash(__('The app transaction has been saved.'));
                                return $this->redirect(array('action' => 'index'));
                        } else {
                                $this->Session->setFlash(__('The app transaction could not be saved. Please, try again.'));
                        }
                } else {
                        $options = array('conditions' => array('AppTransaction.' . $this->AppTransaction->primaryKey => $id));
                        $this->request->data = $this->AppTransaction->find('first', $options);
                }
        }

/**
 * delete method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
        public function delete($id = null) {
                $this->AppTransaction->id = $id;
                if (!$this->AppTransaction->exists()) {
                        throw new NotFoundException(__('Invalid app transaction'));
                }
                $this->request->onlyAllow('post', 'delete');
                if ($this->AppTransaction->delete()) {
                        $this->Session->setFlash(__('The app transaction has been deleted.'));
                } else {
                        $this->Session->setFlash(__('The app transaction could not be deleted. Please, try again.'));
                }
                return $this->redirect(array('action' => 'index'));
        }

/**
 * admin_index method
 *
 * @return void
 */
        public function admin_index() {
                $this->AppTransaction->recursive = 0;
                $this->set('appTransactions', $this->Paginator->paginate(array('AppTransaction.' . $this->AppTransaction.'payout_description'=>'Approved')));
        }

/**
 * admin_view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
        public function admin_view($id = null) {
                if (!$this->AppTransaction->exists($id)) {
                        throw new NotFoundException(__('Invalid app transaction'));
                }
                $options = array('conditions' => array('AppTransaction.' . $this->AppTransaction->primaryKey => $id));
                $this->set('appTransaction', $this->AppTransaction->find('first', $options));
        }

/**
 * admin_add method
 *
 * @return void
 */
        public function admin_add() {
                if ($this->request->is('post')) {
                        $this->AppTransaction->create();
                        if ($this->AppTransaction->save($this->request->data)) {
                                $this->Session->setFlash(__('The app transaction has been saved.'));
                                return $this->redirect(array('action' => 'index'));
                        } else {
                                $this->Session->setFlash(__('The app transaction could not be saved. Please, try again.'));
                        }
                }
        }

/**
 * admin_edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
        public function admin_edit($id = null) {
                if (!$this->AppTransaction->exists($id)) {
                        throw new NotFoundException(__('Invalid app transaction'));
                }
                if ($this->request->is(array('post', 'put'))) {
                        if ($this->AppTransaction->save($this->request->data)) {
                                $this->Session->setFlash(__('The app transaction has been saved.'));
                                return $this->redirect(array('action' => 'index'));
                        } else {
                                $this->Session->setFlash(__('The app transaction could not be saved. Please, try again.'));
                        }
                } else {
                        $options = array('conditions' => array('AppTransaction.' . $this->AppTransaction->primaryKey => $id));
                        $this->request->data = $this->AppTransaction->find('first', $options);
                }
        }

/**
 * admin_delete method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
        public function admin_delete($id = null) {
                $this->AppTransaction->id = $id;
                if (!$this->AppTransaction->exists()) {
                        throw new NotFoundException(__('Invalid app transaction'));
                }
                $this->request->onlyAllow('post', 'delete');
                if ($this->AppTransaction->delete()) {
                        $this->Session->setFlash(__('The app transaction has been deleted.'));
                } else {
                        $this->Session->setFlash(__('The app transaction could not be deleted. Please, try again.'));
                }
                return $this->redirect(array('action' => 'index'));
        }

        public function admin_appwise(){
                $this->AppTransaction->recursive = -1;
                $type = $this->request->query('date');
                $date_from = $this->request->query('date_from');
                $date_to = $this->request->query('date_to');
                if(!isset($type) && !isset($date_from) && !isset($date_to)){
                        $date = date('Y-m-d',time());           
                        $this->Paginator->settings = array(
                'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date),
           'limit' => $this->AppTransaction->find('count',array('group'=>'app_id','conditions'=>array('Date(AppTransaction.transaction_time)'=>$date))),
                'order' => 'count desc' ,
                'group' => 'app_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT app_id,count(1) from app_transactions where date(transaction_time)='$date' and payout_description='Approved' group by app_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['app_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['app_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }
                }
                else if($type=='yesterday'){
                        $date = date('Y-m-d',time()-86400);             
                        $this->Paginator->settings = array(
                'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date),
                'limit' => $this->AppTransaction->find('count',array('group'=>'app_id','conditions'=>array('Date(AppTransaction.transaction_time)'=>$date))),
                'order' => 'count desc' ,
                'group' => 'app_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT app_id,count(1) from app_transactions where date(transaction_time)='$date' and payout_description='Approved' group by app_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['app_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['app_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }       
                }else if(isset($date_from) && isset($date_to)){
                        $this->Paginator->settings = array(
                        'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time) BETWEEN ? AND ?' =>array($date_from, $date_to)),
                'limit'=> $this->AppTransaction->find(
                'count',array('group'=>'app_id','conditions' => 
                        array('Date(AppTransaction.transaction_time) BETWEEN ? AND ?' =>
                                array($date_from, $date_to)))),
                'order' => 'count desc' ,
                'group' => 'app_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT app_id,count(1) from app_transactions where date(transaction_time) BETWEEN '$date_from' and '$date_to' and payout_description='Approved' group by app_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['app_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['app_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }               
                }else{
                        $date = date('Y-m-d',time());           
                        $this->Paginator->settings = array(
                'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date),
            'limit' => $this->AppTransaction->find('count',array('group'=>'app_id','conditions'=>array('Date(AppTransaction.transaction_time)'=>$date))),
                'order' => 'count desc' ,
                'group' => 'app_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT app_id,count(1) from app_transactions where date(transaction_time)='$date' and payout_description='Approved' group by app_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['app_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['app_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }
                }
        $totalClicks=0; 
        $totalApproved=0;
        foreach ($approvedCounts as $key => $value) {
                $totalClicks+=$value[0]['count'];
                if(!(isset($value['AppTransaction']['approved']))){
                        $totalApproved+=0;
                }else{
                        $totalApproved+=$value['AppTransaction']['approved'];
                }
        }
$url=$_SERVER['REQUEST_URI'];
        if (strpos($url,'sort') == false) {
        
        }else{
        $new1=explode("/sort:", $url);
        $new2=explode("/direction:", $new1[1]);
        $new2=explode("/direction:", $new1[1]);
        $sortType=$new2[0];
        if (strpos($new2[1],'page') == false) {
                $sortDirection=$new2[1];
        }else{
                $new3=explode("/page:", $new2[1]);
                $sortDirection=$new3[0];
        }
        if (strpos($new2[1],'date') == false) {
                $sortDirection=$new2[1];
        }else{
                $new3=explode("?date", $new2[1]);
                $sortDirection=$new3[0];
        }
        if($sortType=='approved' && $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['approved']))){
                        $newApprovedCount[$key]['AppTransaction']['approved']=0;        
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['approved'] = $row['AppTransaction']['approved'];
                    }
                }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
        }
        else if($sortType=='approved' && $sortDirection=='asc'){
                        $newApprovedCount = array();
                        foreach ($approvedCounts as $key => $row)
                        {
                                if(!(isset($row['AppTransaction']['approved']))){
                                $newApprovedCount[$key]['AppTransaction']['approved']=0;        
                                }else{
                            $newApprovedCount[$key]['AppTransaction']['approved'] = $row['AppTransaction']['approved'];
                            }
                        }
                        array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='conversion_percentage' && $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['conversion_percentage']))){
                        $newApprovedCount[$key]['AppTransaction']['conversion_percentage']=0;   
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['conversion_percentage'] = $row['AppTransaction']['conversion_percentage'];
                    }
                }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
        }
        else if($sortType=='conversion_percentage' && $sortDirection=='asc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['conversion_percentage']))){
                        $newApprovedCount[$key]['AppTransaction']['conversion_percentage']=0;   
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['conversion_percentage'] = $row['AppTransaction']['conversion_percentage'];
                    }
                }
                array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='clicks'&& $sortDirection=='asc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row){
                    $newApprovedCount[$key][0]['count'] = $row[0]['count'];
                }
                array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='clicks'&& $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row){
                    $newApprovedCount[$key][0]['count'] = $row[0]['count'];
                        }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
                }
        }       


        $this->set('appTransactions', $approvedCounts);
        $this->set('totalClicks', $totalClicks);
        $this->set('totalApproved', $totalApproved);
}

        public function admin_retailer(){
                $this->AppTransaction->recursive = -1;
                $type = $this->request->query('date');
                $date_from = $this->request->query('date_from');
                $date_to = $this->request->query('date_to');
                if(!isset($type) && !isset($date_from) && !isset($date_to)){
                        $date = date('Y-m-d',time());           
                        $this->Paginator->settings = array(
                'fields' => array('AppTransaction.app_id','retailer_id','app_name', 
                'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date),
                'limit' => $this->AppTransaction->find('count',array('group'=>'retailer_id','conditions'=>array('Date(AppTransaction.transaction_time)'=>$date))),
                'order' => 'count desc',
                'group' => 'retailer_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT retailer_id,count(1) from app_transactions where date(transaction_time)='$date' and payout_description='Approved' group by retailer_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['retailer_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['retailer_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }
                }
                else if($type=='yesterday'){
                        $date = date('Y-m-d',time()-86400);             
                        $this->Paginator->settings = array(
                'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date),
                'limit' => $this->AppTransaction->find('count',array('group'=>'retailer_id','conditions'=>array('Date(AppTransaction.transaction_time)'=>$date))),
                'order' => 'count desc',
                'group' => 'retailer_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT retailer_id,count(1) from app_transactions where date(transaction_time)='$date' and payout_description='Approved' group by retailer_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['retailer_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['retailer_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }       
                }else if(isset($date_from) && isset($date_to)){
                        $this->Paginator->settings = array(
                        'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time) BETWEEN ? AND ?' =>array($date_from, $date_to)),
                'limit'=> $this->AppTransaction->find(
                'count',array('group'=>'retailer_id','conditions' => 
                        array('Date(AppTransaction.transaction_time) BETWEEN ? AND ?' =>
                                array($date_from, $date_to)))),
                'order' => 'count desc' ,
                'group' => 'retailer_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT retailer_id,count(1) from app_transactions where date(transaction_time) BETWEEN '$date_from' and '$date_to' and payout_description='Approved' group by retailer_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['retailer_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['retailer_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }               
                }else{
                        $date = date('Y-m-d',time());           
                        $this->Paginator->settings = array(
                'fields' => array('AppTransaction.app_id','retailer_id','app_name', 'COUNT(*) AS count'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date),
                'limit' => $this->AppTransaction->find('count',array('group'=>'retailer_id','conditions'=>array('Date(AppTransaction.transaction_time)'=>$date))),
                'order' => 'count desc' ,
                'group' => 'retailer_id'
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                        $sql="SELECT retailer_id,count(1) from app_transactions where date(transaction_time)='$date' and payout_description='Approved' group by retailer_id";
                        $approved = $this->AppTransaction->query($sql);
                        foreach ($approved as $key => $value1) {
                                $app_id=$value1['app_transactions']['retailer_id'];
                                $value22=$value1['0']['count(1)'];
                                foreach ($approvedCounts as $key2 => $value) {
                                        if($app_id==$value['AppTransaction']['retailer_id']){
                                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                                        }
                                }
                        }
                }
        $totalClicks=0; 
        $totalApproved=0;
        foreach ($approvedCounts as $key => $value) {
                $totalClicks+=$value[0]['count'];
                if(!(isset($value['AppTransaction']['approved']))){
                        $totalApproved+=0;
                }else{
                        $totalApproved+=$value['AppTransaction']['approved'];
                }
        }
        $url=$_SERVER['REQUEST_URI'];
        if (strpos($url,'sort') == false) {
        
        }else{
        $new1=explode("/sort:", $url);
        $new2=explode("/direction:", $new1[1]);
        $new2=explode("/direction:", $new1[1]);
        $sortType=$new2[0];
        if (strpos($new2[1],'page') == false) {
                $sortDirection=$new2[1];
        }else{
                $new3=explode("/page:", $new2[1]);
                $sortDirection=$new3[0];
        }
        if (strpos($new2[1],'date') == false) {
                $sortDirection=$new2[1];
        }else{
                $new3=explode("?date", $new2[1]);
                $sortDirection=$new3[0];
        }
        if($sortType=='approved' && $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['approved']))){
                        $newApprovedCount[$key]['AppTransaction']['approved']=0;        
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['approved'] = $row['AppTransaction']['approved'];
                    }
                }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
        }
        else if($sortType=='approved' && $sortDirection=='asc'){
                        $newApprovedCount = array();
                        foreach ($approvedCounts as $key => $row)
                        {
                                if(!(isset($row['AppTransaction']['approved']))){
                                $newApprovedCount[$key]['AppTransaction']['approved']=0;        
                                }else{
                            $newApprovedCount[$key]['AppTransaction']['approved'] = $row['AppTransaction']['approved'];
                            }
                        }
                        array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='conversion_percentage' && $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['conversion_percentage']))){
                        $newApprovedCount[$key]['AppTransaction']['conversion_percentage']=0;   
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['conversion_percentage'] = $row['AppTransaction']['conversion_percentage'];
                    }
                }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
        }
        else if($sortType=='conversion_percentage' && $sortDirection=='asc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['conversion_percentage']))){
                        $newApprovedCount[$key]['AppTransaction']['conversion_percentage']=0;   
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['conversion_percentage'] = $row['AppTransaction']['conversion_percentage'];
                    }
                }
                array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='clicks'&& $sortDirection=='asc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row){
                    $newApprovedCount[$key][0]['count'] = $row[0]['count'];
                }
                array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='clicks'&& $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row){
                    $newApprovedCount[$key][0]['count'] = $row[0]['count'];
                        }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
                }
        }       
        $this->set('appTransactions', $approvedCounts);
        $this->set('totalClicks', $totalClicks);
        $this->set('totalApproved', $totalApproved);
        }

        public function admin_user($retailer_id=null){
        
        $this->Paginator->settings = array(
        'fields' => array('AppTransaction.app_id','retailer_id','app_name','transaction_time','count(*) as count'),
        'conditions' => array('retailer_id'=>$retailer_id),
        'group' => 'app_id',
        'order' => 'count desc'
        );
        $approvedCounts =  $this->Paginator->paginate();
        $sql="SELECT app_id,count(1) from app_transactions where payout_description='Approved' and retailer_id=$retailer_id group by app_id ";
        $approved = $this->AppTransaction->query($sql);
        foreach ($approved as $key => $value1) {
                $app_id=$value1['app_transactions']['app_id'];
                $value22=$value1['0']['count(1)'];
                foreach ($approvedCounts as $key2 => $value) {
                        if($app_id==$value['AppTransaction']['app_id']){
                                $approvedCounts[$key2]['AppTransaction']['approved'] = $value22;
                                $approvedCounts[$key2]['AppTransaction']['conversion_percentage']=ceil(($value22/$value[0]['count'])*100);
                        }
                }
        }
        $url=$_SERVER['REQUEST_URI'];
        if (strpos($url,'sort') == false) {
        
        }else{
        $new1=explode("/sort:", $url);
        $new2=explode("/direction:", $new1[1]);
        $new2=explode("/direction:", $new1[1]);
        $sortType=$new2[0];
        if (strpos($new2[1],'page') == false) {
                $sortDirection=$new2[1];
        }else{
                $new3=explode("/page:", $new2[1]);
                $sortDirection=$new3[0];
        }
        if (strpos($new2[1],'date') == false) {
                $sortDirection=$new2[1];
        }else{
                $new3=explode("?date", $new2[1]);
                $sortDirection=$new3[0];
        }
        if($sortType=='approved' && $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['approved']))){
                        $newApprovedCount[$key]['AppTransaction']['approved']=0;        
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['approved'] = $row['AppTransaction']['approved'];
                    }
                }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
        }
        else if($sortType=='approved' && $sortDirection=='asc'){
                        $newApprovedCount = array();
                        foreach ($approvedCounts as $key => $row)
                        {
                                if(!(isset($row['AppTransaction']['approved']))){
                                $newApprovedCount[$key]['AppTransaction']['approved']=0;        
                                }else{
                            $newApprovedCount[$key]['AppTransaction']['approved'] = $row['AppTransaction']['approved'];
                            }
                        }
                        array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='conversion_percentage' && $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['conversion_percentage']))){
                        $newApprovedCount[$key]['AppTransaction']['conversion_percentage']=0;   
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['conversion_percentage'] = $row['AppTransaction']['conversion_percentage'];
                    }
                }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
        }
        else if($sortType=='conversion_percentage' && $sortDirection=='asc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row)
                {
                        if(!(isset($row['AppTransaction']['conversion_percentage']))){
                        $newApprovedCount[$key]['AppTransaction']['conversion_percentage']=0;   
                        }else{
                    $newApprovedCount[$key]['AppTransaction']['conversion_percentage'] = $row['AppTransaction']['conversion_percentage'];
                    }
                }
                array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='clicks'&& $sortDirection=='asc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row){
                    $newApprovedCount[$key][0]['count'] = $row[0]['count'];
                }
                array_multisort($newApprovedCount, SORT_ASC, $approvedCounts);
        }
        else if($sortType=='clicks'&& $sortDirection=='desc'){
                $newApprovedCount = array();
                foreach ($approvedCounts as $key => $row){
                    $newApprovedCount[$key][0]['count'] = $row[0]['count'];
                        }
                array_multisort($newApprovedCount, SORT_DESC, $approvedCounts);
                }
        }       
        $this->set('retailerId',$retailer_id)   ;
        $this->set('appTransactions',$approvedCounts)   ;
        }

        public function admin_pricewise(){
                $this->AppTransaction->recursive = -1;
                $type = $this->request->query('date');
                $date_from = $this->request->query('date_from');
                $date_to = $this->request->query('date_to');
                if(!isset($type) && !isset($date_from) && !isset($date_to)){
                        $date = date('Y-m-d',time());           
                        $this->Paginator->settings = array(
                'fields' => array('date(transaction_time) as date','sum(offer_price) as offer_price','sum(final_user_payout) as payout_amount'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date,'payout_description'=>'Approved'),
                );
                        $approvedCounts =  $this->Paginator->paginate();
                }
                else if($type=='yesterday'){
                        $date = date('Y-m-d',time()-86400);             
                        $this->Paginator->settings = array(
                'fields' => array('date(transaction_time) as date','sum(offer_price) as offer_price','sum(final_user_payout) as payout_amount'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date,'payout_description'=>'Approved'),
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                }else if(isset($date_from) && isset($date_to)){
                        $this->Paginator->settings = array(
                'fields' => array('date(transaction_time) as date','sum(offer_price) as offer_price','sum(final_user_payout) as payout_amount'),
                'conditions' => array('Date(AppTransaction.transaction_time) BETWEEN ? AND ?' =>array($date_from, $date_to),'payout_description'=>'Approved'),
                'group' => 'Date(transaction_time)',
                'order' => 'date desc',
                'limit' => '50',
                );
                        $approvedCounts =  $this->Paginator->paginate();
                }else{
                        $date = date('Y-m-d',time());
                        $this->Paginator->settings = array(
                'fields' => array('date(transaction_time) as date','sum(offer_price) as offer_price','sum(final_user_payout) as payout_amount'),
                'conditions' => array('Date(AppTransaction.transaction_time)'=>$date,'payout_description'=>'Approved'),
                        );
                        $approvedCounts =  $this->Paginator->paginate();
                }
                $totalSum=$this->AppTransaction->find('all',array(
                        'fields' => array('sum(offer_price) as total_offer_price','sum(final_user_payout)as total_payout_amount'),
                'conditions' => array('payout_description'=>'Approved')
            ));         
                $this->set('datewiseTotal',$approvedCounts);
                $this->set('total',$totalSum);
        }
}