示例#1
0
 private function payedBill($operationData, $userInfo)
 {
     $payedBillRequest = UploadDTO\BillPaymentUploadDto::Deserialize($operationData);
     $billController = new BillController();
     $this->transBegin();
     $payedBillResult = $billController->changeBillPaymetStatus($payedBillRequest, $userInfo);
     if ($payedBillResult) {
         $this->response->body(DTO\ErrorDto::prepareSuccessMessage('Bill payment has been done'));
         $transactionController = new TransactionMasterController();
         $reportResult = $transactionController->createTransactionReport($payedBillRequest->payedBy, $payedBillResult, $userInfo->restaurantId);
         $conditionText = $billController->getBillDetails($payedBillRequest->billNo);
         if (!is_null($conditionText['DeliveryNo'])) {
             $delivery = new DeliveryController();
             $delivery->closeDelivery($conditionText['DeliveryNo']);
         } else {
             if (!is_null($conditionText['TakeawayNo'])) {
                 $takeaway = new TakeawayController();
                 $takeaway->closeTakeway($conditionText['TakeawayNo']);
             }
         }
         if ($reportResult) {
             $this->transCommit();
         } else {
             $this->transRollback();
         }
         return;
     }
     $this->transRollback();
     $this->response->body(DTO\ErrorDto::prepareError(111));
     return;
 }