public function indexAction_bk()
 {
     $str = '';
     $strOrder = '';
     $fromDate = '';
     $toDate = '';
     $strUser = '';
     $strMenu = '';
     $strMenuForAllMenu = '';
     if ($this->getRequest()->isPost()) {
         $params = $this->params()->fromPost();
         $fromDate = $params['formDate'];
         $toDate = $params['toDate'];
         $user = $params['user'];
         $strUserOrder = '';
         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['user']) && $params['user'] != 0) {
             $strUserOrder .= ' AND table.userId = ' . $user;
             $strUser .= ' AND table.userId = ' . $user;
         }
         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);
     $reportMenu = reportModel::convertMenuReportArray($reportMenu);
     $reportPayment = $this->modelPayment->createQuery('table.id != 0');
     $reportPayment = reportModel::convertPaymenttArray($reportPayment);
     $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);
     }
     $reportMenuType = $this->modelOrderDetail->createQueryMenuType('table.isdelete = 0 ' . $strOrder);
     $reportMenuType = reportModel::convertMenuTypeReportArray($reportMenuType);
     //linkEcel
     $link = renderExcel::renderMenuOrder($reportMenu);
     //tableTitle = table heading
     //datarow row of table... render by heading key
     //heading key = table column name
     //$dataRow = $this->modelCategories->convertToArray($categories);
     //setup data user table
     $dataUser = array('tableTitle' => $this->translator->translate('Report user'), 'link' => 'admin/order', 'data' => $reportUser, 'heading' => array('userId' => $this->translator->translate('User create'), 'count_user' => $this->translator->translate('Count number')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //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('orderDetailId' => $this->translator->translate('Order Detail Id'), 'OrderId' => $this->translator->translate('Order Id'), 'menuId' => $this->translator->translate('Name'), 'menuName' => $this->translator->translate('Menu'), 'count_menu' => $this->translator->translate('Count number'), 'realCost' => $this->translator->translate('Real cost'), 'time' => $this->translator->translate('Time')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //setup data cost type menu
     $dataMenuCostType = array('tableTitle' => $this->translator->translate('Report menu'), 'link' => 'admin/order', 'data' => $reportMenuType, 'heading' => array('costType' => $this->translator->translate('Cost type'), 'cost_type_quantity' => $this->translator->translate('Count number'), 'realCost' => $this->translator->translate('Real cost')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //setup data Payment table
     $dataPayment = array('tableTitle' => $this->translator->translate('Report payment'), 'link' => 'admin/payment', 'data' => $reportPayment, 'heading' => array('title' => $this->translator->translate('Title'), 'value' => $this->translator->translate('Value'), 'reason' => $this->translator->translate('Reason'), 'time' => $this->translator->translate('Time')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     return new ViewModel(array('data_table' => $dataTable, 'data_user' => $dataUser, 'data_menu' => $dataMenu, 'data_menu_costtype' => $dataMenuCostType, 'data_payment' => $dataPayment, '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'), 'payment_menu_box' => $this->translator->translate('Report payment'), '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'), 'fromDateText' => $this->translator->translate('From date'), 'allMonthInYearText' => $this->translator->translate('All month in year'), 'toDateText' => $this->translator->translate('To date'), 'submitText' => $this->translator->translate('Report'), 'reportMonth' => $reportMonth, 'fromDate' => $fromDate, 'toDate' => $toDate, 'excelLink' => $link));
 }
 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));
 }
 public function indexAction()
 {
     $message = '';
     if (!(is_executable('public/export') && is_writable('public/export'))) {
         $message = '<div class="alert alert-dismissable alert-success">
             <h3 style="text-align:center">Make "public/export" writeable</h3></div>';
         echo $message;
         return true;
     }
     $str = '';
     $strOrder = '';
     $fromDate = '';
     $toDate = '';
     $strUser = '';
     if ($this->getRequest()->isPost()) {
         $params = $this->params()->fromPost();
         $fromDate = $params['formDate'];
         $toDate = $params['toDate'];
         $user = $params['user'];
         $strUserOrder = '';
         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['user']) && $params['user'] != 0) {
             $strUserOrder .= ' AND table.userId = ' . $user;
             $strUser .= ' AND table.userId = ' . $user;
         }
     }
     $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);
     $reportMenu = reportModel::convertMenuReportArray($reportMenu);
     $reporAllOrder = $this->modelOrder->createQueryAllMenu('table.isdelete = 0 ' . $str . $strUser);
     $reportMenuType = $this->modelOrderDetail->createQueryMenuType('table.isdelete = 0 ' . $strOrder);
     $reportMenuType = reportModel::convertMenuTypeReportArray($reportMenuType);
     //linkEcel
     $link = renderExcel::renderMenuOrder($reportMenu);
     //tableTitle = table heading
     //datarow row of table... render by heading key
     //heading key = table column name
     //$dataRow = $this->modelCategories->convertToArray($categories);
     //setup data user table
     $dataUser = array('tableTitle' => $this->translator->translate('Report User'), 'link' => 'admin/order', 'data' => $reportUser, 'heading' => array('userId' => $this->translator->translate('User Create'), 'count_user' => $this->translator->translate('Count Number')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //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 By Menu Item'), 'link' => 'admin/order', 'data' => $reportMenu, 'heading' => array('orderDetailId' => $this->translator->translate('Order Detail Id'), 'OrderId' => $this->translator->translate('Order Id'), 'menuId' => $this->translator->translate('Name'), 'menuName' => $this->translator->translate('Menu'), 'count_menu' => $this->translator->translate('Count Number'), 'realCost' => $this->translator->translate('Real cost')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //setup data cost type menu
     $dataMenuCostType = array('tableTitle' => $this->translator->translate('Report By Type ( Stay Here Take Away )'), 'link' => 'admin/order', 'data' => $reportMenuType, 'heading' => array('costType' => $this->translator->translate('Cost type'), 'cost_type_quantity' => $this->translator->translate('Count Number'), 'realCost' => $this->translator->translate('Real cost')), 'hideEditButton' => 1, 'hideDeleteButton' => 1, 'hideDetailButton' => 1);
     //setup data Payment table
     return new ViewModel(array('data_table' => $dataTable, 'data_user' => $dataUser, 'data_menu' => $dataMenu, 'data_menu_costtype' => $dataMenuCostType, '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 By Menu Item'), 'report_menu_cost_type' => $this->translator->translate('Report Menu Cost Type'), 'payment_menu_box' => $this->translator->translate('Report Payment'), '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'), 'fromDateText' => $this->translator->translate('From Date'), 'allMonthInYearText' => $this->translator->translate('All Month In Year'), 'toDateText' => $this->translator->translate('To Date'), 'submitText' => $this->translator->translate('Report'), 'reportMonth' => $reportMonth, 'fromDate' => $fromDate, 'toDate' => $toDate, 'excelLink' => $link));
 }