public function indexAction()
 {
     $str = '';
     $strOrder = '';
     $strUser = '';
     $strMenu = '';
     $strMenuForAllMenu = '';
     $params = $this->params()->fromPost();
     $fromDate = date('Y-m-d');
     $fromDate = str_replace('-', '/', $fromDate);
     $fromDate = date('Y-m-d', strtotime($fromDate . "-29 days"));
     $toDate = date('Y-m-d');
     if ($fromDate) {
         $fromDateTime = strtotime($fromDate . ' 00:00:00');
         $str .= ' AND table.createDate >= ' . $fromDateTime;
         $strOrder .= ' AND o.createDate >= ' . $fromDateTime;
     }
     if ($toDate) {
         $toDateTime = strtotime($toDate . ' 23:59:00');
         $str .= ' AND table.createDate <= ' . $toDateTime;
         $strOrder .= ' AND o.createDate <= ' . $toDateTime;
     }
     if (isset($params['menu']) && $params['menu'] != 0) {
         $strMenu .= ' AND mn.catId =' . $params['menu'];
         $strMenuForAllMenu .= ' AND table.id = od.orderId AND od.menuId = mn.id ' . $strMenu;
     }
     //        }
     $year = date('Y');
     if ($this->params()->fromQuery('year')) {
         $year = $this->params()->fromQuery('year');
     }
     //        $reportMonth = $this->modelOrder->reportAllMonth($year);
     //$categories = $this->modelCategories->findBy(array('isdelete'=>'0'));
     $reportUser = $this->modelOrder->createQuery('table.isdelete = 0 ' . $str . $strUser);
     $reportUser = reportModel::convertUserReportArray($reportUser);
     $reportTable = $this->modelOrder->createQueryTable('table.isdelete = 0 ' . $str . $strUser);
     $reportTable = reportModel::convertTableReportArray($reportTable);
     $reportMenu = $this->modelOrderDetail->createQueryMenu('table.isdelete = 0 ' . $strOrder . $strMenu, 0, 10);
     $reportMenu = reportModel::convertMenuReportArray($reportMenu);
     $reporAllOrder = $this->modelOrder->createQueryAllMenu('table.isdelete = 0 ' . $str . $strUser);
     /*  report order and count cost by menu id  */
     if (isset($params['menu']) && $params['menu'] != 0) {
         $reporAllOrder = $this->modelOrder->createQueryByMenu('table.isdelete = 0 ' . $str . $strUser . $strMenuForAllMenu, 0, 10);
     }
     $reportMenuType = $this->modelOrderDetail->createQueryMenuType('table.isdelete = 0 ' . $strOrder);
     $reportMenuType = reportModel::convertMenuTypeReportArray($reportMenuType);
     //        //linkEcel
     //        $link = renderExcel::renderMenuOrder($reportMenu);
     //setup data user table
     $dataUser = Utility::getUserForPieChart($reportUser);
     $dataUserCountOrder = Utility::getUserForPieChart($reportUser, 'userId', 'count_user');
     // $dataUserCountOrder = Utility::getUserForPieChart($reportUser);
     //setup data table
     $dataTable = array('tableTitle' => $this->translator->translate('Report table'), 'link' => 'admin/order', 'data' => $reportTable, 'heading' => array('tableId' => $this->translator->translate('Table name'), 'count_table' => $this->translator->translate('Count number')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //setup data menu
     $dataMenu = array('tableTitle' => $this->translator->translate('Report menu'), 'link' => 'admin/order', 'data' => $reportMenu, 'heading' => array('menuName' => $this->translator->translate('Menu'), 'count_menu' => $this->translator->translate('Count number'), 'realCost' => $this->translator->translate('Real cost')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     $dataByDay = Utility::rsReportPerDay(30);
     return new ViewModel(array('data_table' => $dataTable, 'data_user' => $dataUser, 'data_user_count_order' => $dataUserCountOrder, 'data_menu' => $dataMenu, 'title' => $this->translator->translate('Report'), 'report_table_box' => $this->translator->translate('Report table'), 'report_user_box' => $this->translator->translate('Report user'), 'report_menu_box' => $this->translator->translate('Report menu'), 'allOrder' => $reporAllOrder, 'allOrderText' => $this->translator->translate('You have total:'), 'allOrderTotalCostText' => $this->translator->translate('Total cost'), 'allOrderTotalRealCostText' => $this->translator->translate('Total real cost'), 'datetimeReport' => $this->translator->translate('Date time report'), 'reportPerDay' => $dataByDay));
 }