Пример #1
0
 public function printPreview()
 {
     $tableId = parent::readCookie('cti');
     $takeawayNo = parent::readCookie('ctn');
     $deliveryNo = parent::readCookie('cdn');
     Log::debug('Current tableId :-' . $tableId);
     Log::debug('Current takeawayNo :- ' . $takeawayNo);
     Log::debug('Current delivery number :- ' . $takeawayNo);
     if (!$tableId and !$takeawayNo and !$deliveryNo) {
         $this->redirect('login');
     }
     $billController = new BillController();
     $billInfo = $billController->getBill($tableId, $takeawayNo, $deliveryNo);
     if (is_null($billInfo)) {
         Log::error('Bill has not generated for this table');
         $this->set([MESSAGE => DTO\ErrorDto::prepareMessage(124), COLOR => ERROR_COLOR]);
         return;
     }
     Log::debug('Bill has generated for this table');
     $billDetailsController = new BillDetailsController();
     $billDeatilsInfo = $billDetailsController->getOrderId($billInfo->billNo);
     $orders = array();
     foreach ($billDeatilsInfo as $info) {
         array_push($orders, $info->orderId);
     }
     $orderDetailsController = new OrderDetailsController();
     $billOrderDetails = $orderDetailsController->getbillOrderDetails($orders);
     $billPrintInfo = array();
     $indexCounter = 0;
     $menuTitleList = array();
     foreach ($billOrderDetails as $menu) {
         if (!key_exists($menu->menuTitle, $menuTitleList)) {
             $menuTitleList[$menu->menuTitle] = $menu;
         } else {
             foreach ($menuTitleList as $key => $value) {
                 if ($value->menuId == $menu->menuId and $value->subMenuId == $menu->subMenuId) {
                     $value->qty += $menu->qty;
                     $value->orderPrice += $menu->orderPrice;
                 }
             }
         }
     }
     foreach ($menuTitleList as $key => $value) {
         $billPrintDto = new DownloadDTO\BillPrintDwnldDto($indexCounter + 1, $value->menuId, $value->menuTitle, $value->qty, $value->orderPrice / $menu->qty, $value->orderPrice);
         $billPrintInfo[$indexCounter++] = $billPrintDto;
     }
     $restId = parent::readCookie('cri');
     $restaurantController = new RestaurantController();
     $restaurantInfo = $restaurantController->getAdminRestaurants(array($restId));
     $userController = new UserController();
     $userInfo = $userController->getUserName($billInfo->userId);
     $rtableController = new RTablesController();
     $tableNo = $rtableController->getBillTableNo($tableId);
     if (isset($billInfo) and isset($restaurantInfo) and isset($billPrintInfo)) {
         $this->set(['table' => $tableNo, 'bill' => $billInfo, 'restaurants' => $restaurantInfo, 'printInfo' => $billPrintInfo, 'user' => $userInfo->userName]);
     } else {
         $this->set([MESSAGE => DTO\ErrorDto::prepareMessage(124), COLOR => ERROR_COLOR]);
     }
 }
Пример #2
0
 public function placeOrder()
 {
     if (!$this->isLogin()) {
         $this->redirect('login');
     }
     $data = explode('/', $this->request->url);
     Log::debug($data);
     $userController = new UserController();
     $restaurantId = $this->readCookie('cri');
     $users = $userController->getUsers($restaurantId);
     $menuCategoryController = new MenuCategoryController();
     $categories = $menuCategoryController->getMenuCategories();
     $menuController = new MenuController();
     $menus = $menuController->getMenus($restaurantId);
     $tableId = $this->readCookie('cti');
     $takeawayNo = $this->readCookie('ctn');
     $deliveryNo = $this->readCookie('cdn');
     $rtableController = new RTablesController();
     if ($tableId) {
         $tableTransactionController = new TableTransactionController();
         $custId = $tableTransactionController->getCurrentCustomer($tableId, $restaurantId);
     } else {
         if ($takeawayNo) {
             $takeawayController = new TakeawayController();
             $custId = $takeawayController->getTakeawayCustomer($takeawayNo, $restaurantId);
         } else {
             if ($deliveryNo) {
                 $deliverycontroller = new DeliveryController();
                 $custId = $deliverycontroller->getCurrentCustomer($deliveryNo, $restaurantId);
             }
         }
     }
     $rconfigSettingcontroller = new RConfigSettingsController();
     $set = ['users' => $users, 'menus' => $menus, 'categories' => $categories, 'option' => $data[0], 'tableId' => $tableId, 'takeawayNo' => $takeawayNo, 'deliveryNo' => $deliveryNo, 'custId' => $custId, 'kot_permission' => $rconfigSettingcontroller->allow($restaurantId, KOT_CONFIG_KEY)];
     if ($tableId) {
         $set['isOccupied'] = $rtableController->isOccupied($tableId);
         $set['tableNo'] = $rtableController->getBillTableNo($tableId);
     }
     $this->set($set);
 }
Пример #3
0
 private function tableOccupy($operationData, $userInfo)
 {
     $tableOccupyUploadRequest = UploadDTO\RTableUploadDto::Deserialize($operationData);
     $rtableController = new RTablesController();
     return $rtableController->occupyTable($tableOccupyUploadRequest, $userInfo->restaurantId);
 }
Пример #4
0
 public function displayBill()
 {
     $this->autoRender = FALSE;
     $restId = parent::readCookie('cri');
     $request = $this->request->query;
     Log::debug($request);
     Log::debug('Current restaurantId in order controller :- ' . $restId);
     if (isset($restId)) {
         $tableId = $request['table'];
         $takeawayNo = $request['takeaway'];
         $deliveryNo = $request['delivery'];
         Log::debug('Now bill list shows for table :-' . $tableId . 'or for takeawayNo :- ' . $takeawayNo);
         $latestBill = $this->getTableObj()->getTableBill($tableId, $takeawayNo, $deliveryNo, $restId);
         if (is_null($latestBill)) {
             $this->response->body(json_encode([MESSAGE => DTO\ErrorDto::prepareMessage(126)]));
             return;
         }
         $userController = new UserController();
         $rtableController = new RTablesController();
         foreach ($latestBill as $bill) {
             $user = $userController->getUserName($bill->user);
             $bill->user = $user->userName;
             $bill->tableNo = $rtableController->getBillTableNo($bill->tableNo);
             $bill->date = date('d-m-Y H:i', strtotime('+330 minutes', strtotime($bill->date)));
         }
         if ($this->request->is('ajax')) {
             $response = json_encode($latestBill);
             Log::debug($response);
             $this->response->body($response);
         }
     } else {
         if ($this->request->is('ajax')) {
             $this->response->body(json_encode([MESSAGE => DTO\ErrorDto::prepareMessage(126)]));
         }
     }
 }