Ejemplo n.º 1
0
 public static function getBasePrice(Order $order)
 {
     return $order->getPrice() - $order->getTaxValue() - $order->getDiscountPrice() - $order->getDeliveryPrice();
 }
Ejemplo n.º 2
0
 /**
  * @param Sale\Order $order
  *
  * @return array
  */
 public static function getOrderFields(Sale\Order $order)
 {
     $result = new Sale\Result();
     $paymentSystemId = false;
     $deliveryId = false;
     /** @var Sale\PaymentCollection $paymentCollection */
     if ($paymentCollection = $order->getPaymentCollection()) {
         /** @var Sale\Payment $payment */
         if ($payment = $paymentCollection->rewind()) {
             $paymentSystemId = $payment->getPaymentSystemId();
         }
     }
     /** @var Sale\ShipmentCollection $shipe */
     if ($shipmentCollection = $order->getShipmentCollection()) {
         /** @var Sale\Shipment $shipment */
         foreach ($shipmentCollection as $shipment) {
             if ($shipment->getDeliveryId() > 0) {
                 $deliveryId = $shipment->getDeliveryId();
                 break;
             }
         }
     }
     $fields = array("SITE_ID" => $order->getSiteId(), "LID" => $order->getSiteId(), "PERSON_TYPE_ID" => $order->getPersonTypeId(), "PRICE" => $order->getPrice(), "CURRENCY" => $order->getCurrency(), "USER_ID" => $order->getUserId(), "PAY_SYSTEM_ID" => $paymentSystemId, "PRICE_DELIVERY" => $order->getDeliveryPrice(), "DELIVERY_ID" => $deliveryId, "DISCOUNT_VALUE" => $order->getDiscountPrice(), "TAX_VALUE" => $order->getTaxValue(), "TRACKING_NUMBER" => $order->getField('TRACKING_NUMBER'), "PAYED" => $order->getField('PAYED'), "CANCELED" => $order->getField('CANCELED'), "STATUS_ID" => $order->getField('STATUS_ID'), "RESERVED" => $order->getField('RESERVED'));
     $orderFields = static::convertOrderToArray($order);
     if (is_array($orderFields)) {
         $orderFields = $fields + $orderFields;
         $orderFields = static::convertDateFieldsToOldFormat($orderFields);
     }
     $result->setData(array('FIELDS' => $fields, 'ORDER_FIELDS' => $orderFields));
     return $result;
 }
Ejemplo n.º 3
0
 public static function getTotalPrices(Order $order, OrderBasket $orderBasket, $needRecalculate = true)
 {
     $result = array('PRICE_TOTAL' => $order->getPrice(), 'TAX_VALUE' => $order->getTaxValue(), 'PRICE_DELIVERY_DISCOUNTED' => $order->getDeliveryPrice(), 'SUM_PAID' => $order->getSumPaid());
     $result["SUM_UNPAID"] = $result["PRICE_TOTAL"] - $result["SUM_PAID"];
     if (!$result["PRICE_DELIVERY_DISCOUNTED"]) {
         $result["PRICE_DELIVERY_DISCOUNTED"] = 0;
     }
     if (!$result["TAX_VALUE"]) {
         $result["TAX_VALUE"] = 0;
     }
     $orderDiscount = $order->getDiscount();
     if ($orderDiscount) {
         $discountsList = self::getDiscountsApplyResult($order, $needRecalculate);
     } else {
         $discountsList = array();
     }
     if (isset($discountsList["PRICES"]["DELIVERY"]["DISCOUNT"])) {
         $result['DELIVERY_DISCOUNT'] = $discountsList["PRICES"]["DELIVERY"]["DISCOUNT"];
     } else {
         $result['DELIVERY_DISCOUNT'] = 0;
     }
     $result['PRICE_DELIVERY'] = $result['PRICE_DELIVERY_DISCOUNTED'] + $result['DELIVERY_DISCOUNT'];
     $basketData = $orderBasket->prepareData(array("DISCOUNTS" => $discountsList));
     $result["PRICE_BASKET_DISCOUNTED"] = $basketData["BASKET_PRICE"];
     $result["PRICE_BASKET"] = $basketData["BASKET_PRICE_BASE"];
     return $result;
 }