/** * @internal * @param Sale\Order $order * @return array */ public static function convertOrderToArray(Sale\Order $order) { $fields = $order->getFieldValues(); //getWeight $fields = array_merge($fields, array('ORDER_WEIGHT' => 0, 'BASKET_ITEMS' => array(), 'ORDER_PROP' => array(), 'DISCOUNT_LIST' => array(), 'TAX_LIST' => array(), 'VAT_RATE' => $order->getVatRate(), 'VAT_SUM' => $order->getVatSum())); /** @var Sale\Basket $basket */ if ($basket = $order->getBasket()) { /** @var Sale\BasketItem $basketItem */ foreach ($basket as $basketItem) { $fields['BASKET_ITEMS'][] = BasketCompatibility::convertBasketItemToArray($basketItem); } } /** @var Sale\PropertyValueCollection $basket */ if ($propertyCollection = $order->getPropertyCollection()) { /** @var Sale\PropertyValue $property */ foreach ($propertyCollection as $property) { // $propertyValue = $property->getValue(); $fields['ORDER_PROP'][$property->getPropertyId()] = $property->getValue(); } } if ($propProfileName = $propertyCollection->getProfileName()) { $fields['PROFILE_NAME'] = $propProfileName->getValue(); } if ($propPayerName = $propertyCollection->getPayerName()) { $fields['PAYER_NAME'] = $propPayerName->getValue(); } if ($propUserEmail = $propertyCollection->getUserEmail()) { $fields['USER_EMAIL'] = $propUserEmail->getValue(); } if ($propDeliveryLocationZip = $propertyCollection->getDeliveryLocationZip()) { $fields['DELIVERY_LOCATION_ZIP'] = $propDeliveryLocationZip->getValue(); } if ($propDeliveryLocation = $propertyCollection->getDeliveryLocation()) { $fields['DELIVERY_LOCATION'] = $propDeliveryLocation->getValue(); } if ($propTaxLocation = $propertyCollection->getTaxLocation()) { $fields['TAX_LOCATION'] = $propTaxLocation->getValue(); } /** @var Sale\ShipmentCollection $shipmentCollection */ if ($shipmentCollection = $order->getShipmentCollection()) { $fields['ORDER_WEIGHT'] = $shipmentCollection->getWeight(); } $fields['DISCOUNT_LIST'] = DiscountCompatibility::getOldDiscountResult(); /** @var Sale\Tax $tax */ if ($tax = $order->getTax()) { $fields['TAX_LIST'] = $tax->getTaxList(); } return $fields; }
public static function getOrderPropertiesByJS(Order $order) { if ($order->getId() > 0) { $result = $order->getPropertyCollection()->getArray(); } else { $result = self::getNotRelPropData($order); } return ' <script type="text/javascript"> BX.ready(function(){ BX.Sale.Admin.OrderBuyer.setOrderPropsArray(' . \CUtil::PhpToJSObject($result) . '); }); </script> '; }
/** * @param Order $order * @return string HTML */ public static function getView(Order $order, $orderBasket) { $currency = $order->getCurrency(); $orderProps = $order->getPropertyCollection(); if ($email = $orderProps->getUserEmail()) { $email = $email->getViewHtml(); } if ($phone = $orderProps->getPhone()) { $phone = $phone->getViewHtml(); } if ($name = $orderProps->getPayerName()) { $name = $name->getViewHtml(); } $totalPrices = OrderEdit::getTotalPrices($order, $orderBasket, false); $result = ' <div class="adm-bus-orderinfoblock adm-detail-tabs-block-pin" id="sale-order-edit-block-order-info"> <div class="adm-bus-orderinfoblock-container"> <div class="adm-bus-orderinfoblock-title">' . Loc::getMessage("SALE_ORDER_INFO", array("#ID#" => $order->getId(), "#NUM#" => strlen($order->getField("ACCOUNT_NUMBER")) > 0 ? $order->getField("ACCOUNT_NUMBER") : $order->getId(), "#DATE#" => $order->getDateInsert()->toString())) . " [" . $order->getSiteId() . "]" . '<div class="adm-bus-orderinfoblock-status success" id="order_info_order_status_name">' . $order->getField('STATUS_ID') . '</div> <!-- TODO --> </div> <div class="adm-bus-orderinfoblock-content"> <div class="adm-bus-orderinfoblock-content-block-customer"> <ul class="adm-bus-orderinfoblock-content-customer-info"> <li> <span class="adm-bus-orderinfoblock-content-customer-info-param">' . Loc::getMessage("SALE_ORDER_INFO_FIO") . ':</span> <span class="adm-bus-orderinfoblock-content-customer-info-value" id="order_info_buyer_name">' . $name . '</span> </li> <li> <span class="adm-bus-orderinfoblock-content-customer-info-param">E-Mail:</span> <span class="adm-bus-orderinfoblock-content-customer-info-value" id="order_info_buyer_email">' . $email . '</span> </li> <li> <span class="adm-bus-orderinfoblock-content-customer-info-param">' . Loc::getMessage("SALE_ORDER_INFO_PHONE") . ':</span> <span class="adm-bus-orderinfoblock-content-customer-info-value" id="order_info_buyer_phone">' . $phone . '</span> </li> </ul> </div> <div class="adm-bus-orderinfoblock-content-block-order"> <ul class="adm-bus-orderinfoblock-content-order-info"> <li> <span class="adm-bus-orderinfoblock-content-order-info-param">' . Loc::getMessage("SALE_ORDER_INFO_PRICE") . '</span> <span class="adm-bus-orderinfoblock-content-order-info-value" id="order_info_price_basket">' . SaleFormatCurrency(floatval($totalPrices["PRICE_BASKET"]), $currency) . '</span> </li> <li class="adm-bus-orderinfoblock-content-redtext"> <span class="adm-bus-orderinfoblock-content-order-info-param">' . Loc::getMessage("SALE_ORDER_INFO_DISCOUNT_PRICE") . '</span> <span class="adm-bus-orderinfoblock-content-order-info-value" id="order_info_price_basket_discount">' . SaleFormatCurrency(floatval($totalPrices["PRICE_BASKET_DISCOUNTED"]), $currency) . '</span> </li> <li> <span class="adm-bus-orderinfoblock-content-order-info-param">' . Loc::getMessage("SALE_ORDER_INFO_DELIVERY_PRICE") . '</span> <span class="adm-bus-orderinfoblock-content-order-info-value" id="order_info_delivery_price">' . SaleFormatCurrency(floatval($order->getDeliveryPrice()), $currency) . '</span> </li> </ul> <ul class="adm-bus-orderinfoblock-content-order-info-result"> <li> <span class="adm-bus-orderinfoblock-content-order-info-param">' . Loc::getMessage("SALE_ORDER_INFO_ALL_PRICE") . '</span> <span class="adm-bus-orderinfoblock-content-order-info-value" id="order_info_buyer_price">' . SaleFormatCurrency(floatval($order->getPrice()), $currency) . '</span> </li> </ul> </div> <div class="adm-bus-orderinfoblock-content-block-last"> ' . Loc::getMessage("SALE_ORDER_INFO_PAYED") . ': ' . SaleFormatCurrency(floatval($order->getSumPaid()), $currency) . '<ul class="adm-bus-orderinfoblock-content-last">'; $updatersContent = ""; foreach (self::getPaymentsInfo($order) as $payment) { $result .= '<a href="#payment_' . $payment["ID"] . '" style="text-decoration: none;"> <li id="sale-admin-order-icon-payment-' . $payment["ID"] . '" class="adm-bus-orderinfoblock-content-last-icon ' . ($payment["IS_PAYED"] ? 'green' : 'red') . '" '; if (strval($payment["LOGOTIP_PATH"]) != '') { $result .= 'style="background-image: url(' . $payment["LOGOTIP_PATH"] . ');" '; } $result .= 'title="' . htmlspecialcharsbx($payment["NAME"]) . '"' . '><span></span></li></a>'; if (strlen($updatersContent) > 0) { $updatersContent .= ",\n"; } $updatersContent .= "\tPAYMENT_PAID_" . $payment["ID"] . ": function(paid) { BX.Sale.Admin.OrderInfo.setIconLamp('payment', '" . $payment["ID"] . "', (paid == 'Y' ? 'green' : 'red')); }"; } $result .= '</ul> ' . Loc::getMessage("SALE_ORDER_INFO_SHIPMENT") . ' <ul class="adm-bus-orderinfoblock-content-last">'; foreach (self::getShipmentsInfo($order) as $shipment) { $result .= '<a href="#shipment_' . $shipment["ID"] . '" style="text-decoration: none;"> <li id="sale-admin-order-icon-shipment-' . $shipment["ID"] . '" class="adm-bus-orderinfoblock-content-last-icon ' . ($shipment["DEDUCTED"] == "Y" ? 'green' : 'red') . '" '; if (strval($shipment["LOGOTIP_PATH"]) != '') { $result .= 'style="background-image: url(' . $shipment["LOGOTIP_PATH"] . ');" '; } $result .= 'title="' . htmlspecialcharsbx($shipment["NAME"]) . '"' . '><span></span></li></a>'; if (strlen($updatersContent) > 0) { $updatersContent .= ",\n"; } $updatersContent .= "\tSHIPMENT_STATUS_" . $shipment["ID"] . ": function(shipmentStatus) { BX.Sale.Admin.OrderInfo.setIconLamp('shipment', '" . $shipment["ID"] . "', (shipmentStatus == 'DF' ? 'green' : 'red')); }"; } $result .= '</ul> </div> </div> <div id="sale-order-edit-block-order-info-pin" onclick="BX.Sale.Admin.OrderEditPage.toggleFix(this.id, \'sale-order-edit-block-order-info\');" class="adm-detail-pin-btn-tabs" style="top: 9px;right: 5px;"></div> </div> </div>'; $orderEditOpts = \CUserOptions::GetOption("sale_admin", "sale_order_edit", array()); $isFixed = isset($orderEditOpts["fix_sale-order-edit-block-order-info"]) && $orderEditOpts["fix_sale-order-edit-block-order-info"] == "Y" ? true : false; if ($isFixed) { $result .= ' <script type="text/javascript"> BX.ready(function(){ setTimeout(function(){BX.Sale.Admin.OrderEditPage.toggleFix("sale-order-edit-block-order-info-pin", "sale-order-edit-block-order-info");},1); }); </script>'; } if (strlen($updatersContent) > 0) { $result .= ' <script type="text/javascript"> BX.ready(function(){ BX.Sale.Admin.OrderEditPage.registerFieldsUpdaters({ ' . $updatersContent . ' }); }); </script>'; } return $result; }
public static function saveProfileData($profileId, Order $order, array $formData) { $result = new Result(); $errors = array(); if (!($profileName = $order->getPropertyCollection()->getProfileName())) { $result->addError(new EntityError(Loc::getMessage("SALE_ORDEREDIT_PROFILE_ERROR_NAME"))); return $result; } $res = \CSaleOrderUserProps::DoSaveUserProfile($order->getUserId(), $profileId, $profileName->getValue(), $order->getPersonTypeId(), $propCollection = $formData["PROPERTIES"], $errors); if ($res === false) { if (!empty($errors)) { foreach ($errors as $error) { $result->addError(new EntityError($error . "<br>\n")); } } else { $result->addError(new EntityError(Loc::getMessage("SALE_ORDEREDIT_PROFILE_ERROR_SAVE"))); } } return $result; }