示例#1
0
 public function createOrder()
 {
     $order = new PayqrOrder($this->invoice, $this->diafan);
     $orderId = $order->createOrder();
     PayqrLog::log("Создали заказ:" . $orderId);
     $this->invoice->setOrderId($orderId);
     PayqrLog::log("Получаем invoice_id");
     $invoice_id = $this->invoice->getInvoiceId();
     PayqrLog::log("Получили invoice_id: " . $invoice_id);
     if ($order->getOrderPaidStatus($invoice_id)) {
     }
     /**
      * Устанавливаем общую стоимость заказа
      */
     PayqrLog::log("Устанавливаем сумму заказа");
     $total = $order->getTotalAmount();
     /**
      * Устанавливаем пользовательские данные
      */
     $order->setUserOrderData($orderId);
     /**
      * Получаем стоимость доставки
      */
     $delivery = 0;
     $deliverySelected = $this->invoice->getDeliveryCasesSelected();
     if (isset($deliverySelected, $deliverySelected->amountFrom) && !empty($deliverySelected->amountFrom)) {
         $delivery = round((double) $deliverySelected->amountFrom, 2);
         $order->updateDeliverySumm($orderId, $deliverySelected->article, $delivery);
     }
     $this->invoice->setAmount(round($total + $delivery));
     PayqrLog::log("Установили сумму заказа вместе с доставкой: " . $total . "+" . $delivery . " = " . ($total + $delivery));
     //отправка сообщений
     $module = new PayqrModule();
     if ($module->getOption("message-invoice-order-creating")) {
         $message = $this->invoice->getMessage();
         if ($message) {
             $message->article = $module->getOption("message-invoice-order-creating-article");
             $message->text = $module->getOption("message-invoice-order-creating-text");
             $message->imageUrl = $module->getOption("message-invoice-order-creating-imageUrl");
             $message->url = $module->getOption("message-invoice-order-creating-url");
             $this->invoice->setMessage($message);
         }
     }
     //сохраняем заказ
     $db = PayqrModuleDb::getInstance();
     $id = $db->insert(PayqrModuleDb::getInvoiceTable(), array("invoice_id" => $this->invoice->getInvoiceId(), "order_id" => $orderId, "invoice_type" => "invoice.order.creating"), array("%s", "%s", "%s"));
     //сохраняем логи
     $id = $db->insert(PayqrModuleDb::getLogTable(), array("event_id" => $this->invoice->getInvoiceId(), "order_id" => $orderId, "event_type" => "invoice.order.creating", "payqr_number" => $this->invoice->getPayqrNumber(), "datetime" => date("Y-m-d H:i:s"), "data" => file_get_contents("php://input")), array("%s", "%s", "%s", "%s", "%s", "%s"));
     return true;
 }