public static function prepareData(Order $order) { $currencyBudget = 0; if ($order->getUserId() > 0) { $res = \CSaleUserAccount::getList(array(), array('USER_ID' => $order->getUserId(), 'CURRENCY' => $order->getCurrency(), 'LOCKED' => 'N'), false, false, array('CURRENT_BUDGET')); $userAccount = $res->Fetch(); $currencyBudget = $userAccount['CURRENT_BUDGET']; } $payable = $order->getPrice() - $order->getSumPaid(); $price = $order->getPrice(); $sumPaid = $order->getSumPaid(); $data = array('PRICE' => $price ? $price : 0, 'SUM_PAID' => $sumPaid ? $sumPaid : 0, 'PAYABLE' => $payable >= 0 ? $payable : 0, 'CURRENCY' => $order->getCurrency(), 'BUYER_BUDGET' => $currencyBudget, 'STATUS_ID' => $order->getField('STATUS_ID')); return $data; }
public static function getView(Order $order, OrderBasket $orderBasket, $selectPayment = null, $selectId = null) { // prepare data $orderId = $order->getId(); $data = $orderBasket->prepareData(); $items = $data['ITEMS']; $documents = array(); $itemNo = 0; /** @var \Bitrix\Sale\Payment $payment */ foreach ($order->getPaymentCollection() as $payment) { $documents[] = $payment; } /** @var \Bitrix\Sale\Shipment $shipment */ foreach ($order->getShipmentCollection() as $shipment) { if (!$shipment->isSystem()) { if (!$shipment->isCanceled() && $shipment->isShipped()) { /** @var \Bitrix\Sale\ShipmentItem $shipmentItem */ foreach ($shipment->getShipmentItemCollection() as $shipmentItem) { $basketItem = $shipmentItem->getBasketItem(); if (isset($items[$basketItem->getBasketCode()])) { $item =& $items[$basketItem->getBasketCode()]; if ($shippedQuantity =& $item['SHIPPED_QUANTITY']) { $shippedQuantity += (double) $shipmentItem->getField('QUANTITY'); } else { $shippedQuantity = (double) $shipmentItem->getField('QUANTITY'); } } } } $documents[] = $shipment; } } unset($item, $shippedQuantity); usort($documents, array(__CLASS__, 'sortDocumentsByDate')); // render view ob_start(); ?> <div class="adm-s-order-table-ddi"> <table class="adm-s-order-table-ddi-table adm-s-bus-ordertable-option" style="width: 100%;"> <thead> <tr> <td class="tac"><?php echo Loc::getMessage('SALE_OANALYSIS_ITEM_NUMBER'); ?> </td> <td><?php echo Loc::getMessage('SALE_OANALYSIS_ITEM_NAME'); ?> </td> <td class="tac"><?php echo Loc::getMessage('SALE_OANALYSIS_ITEM_PROPERTIES'); ?> </td> <td class="tac"><?php echo Loc::getMessage('SALE_OANALYSIS_ITEM_PLANNED'); ?> </td> <td class="tac"><?php echo Loc::getMessage('SALE_OANALYSIS_ITEM_SHIPPED'); ?> </td> <td class="tac"><?php echo Loc::getMessage('SALE_OANALYSIS_ITEM_TO_SHIP'); ?> </td> </tr> </thead> <tbody> <?php foreach ($items as $item) { $properties = '<table style="margin: auto; width: 50%;">'; if (is_array($item['SKU_PROPS'])) { foreach ($item['SKU_PROPS'] as $skuProp) { $properties .= '<tr>'; $properties .= '<td style="text-align: left;">' . htmlspecialcharsbx($skuProp['NAME']) . ' : ' . '</td>'; if (isset($skuProp['VALUE']['PICT']) && $skuProp['VALUE']['PICT']) { $properties .= '<td><span class="color"><img src="' . $skuProp['VALUE']['PICT'] . '" alt=""></span></td>'; } else { $properties .= '<td><span>' . htmlspecialcharsbx($skuProp['VALUE']['NAME']) . '</span></td>'; } $properties .= '</tr>'; } } $properties .= '</table>'; if (!($quantity = (double) $item['QUANTITY'])) { $quantity = 0; } if (!($shippedQuantity = $item['SHIPPED_QUANTITY'])) { $shippedQuantity = 0; } ?> <tr class="bdb-line"> <td class="tac"><?php echo ++$itemNo; ?> </td> <td style="text-align: left;"><a class="fwb" href="<?php echo $item['EDIT_PAGE_URL']; ?> "><?php echo htmlspecialcharsbx($item['NAME']); ?> </a></td> <td class="tac"><?php echo $properties; ?> </td> <td class="tac"><?php echo $quantity . ' ' . $item['MEASURE_TEXT']; ?> </td> <td class="tac"><?php echo $shippedQuantity . ' ' . $item['MEASURE_TEXT']; ?> </td> <td class="tac"><?php echo $quantity - $shippedQuantity . ' ' . $item['MEASURE_TEXT']; ?> </td> </tr> <?php } ?> <tr><td colspan="8" style="padding: 16px; background: #f7fafa; text-align: left;" class="fwb"><?php echo Loc::getMessage('SALE_OANALYSIS_ITEMS_QUANTITY') . ': ' . count($items); ?> </td></tr> </tbody> </table> <div class="adm-bus-table-contaier-white caption border" style="margin-top: 25px;"> <div class="adm-bus-table-caption-white-title"><?php echo Loc::getMessage('SALE_OANALYSIS_DOCUMENTS'); ?> :</div> <div class="adm-bus-orderdocs-threelist-container"> <div class="adm-bus-orderdocs-threelist-block-top<?php echo $selectPayment === null ? ' adm-bus-orderdocs-threelist-block-children-open' : ''; ?> "> <div class="adm-bus-orderdocs-threelist-block-img adm-bus-orderdocs-threelist-block-img-order"></div> <div class="adm-bus-orderdocs-threelist-block-content"> <div class="adm-bus-orderdocs-threelist-block-title"> <a class="adm-bus-orderdocs-threelist-block-title-link fwb" href="/bitrix/admin/sale_order_edit.php?lang=ru&ID=<?php echo $orderId; ?> "> <?php echo Loc::getMessage('SALE_OANALYSIS_ORDER_TITLE', array('#USER_ID#' => $order->getField('USER_ID'), '#ORDER_ID#' => $orderId)); ?> </a> </div> <?php self::renderBottomBlocks($order->getField('DATE_INSERT'), $order->getField('RESPONSIBLE_ID')); ?> </div> <div class="clb"></div> </div> <?php foreach ($documents as $document) { $isPayment = $document instanceof Payment; $documentId = $document->getId(); ?> <div class="adm-bus-orderdocs-threelist-block-children<?php echo $selectPayment === $isPayment && $selectId == $documentId ? ' adm-bus-orderdocs-threelist-block-children-open' : ''; ?> "> <div class="adm-bus-orderdocs-threelist-block-img adm-bus-orderdocs-threelist-block-img-doc_<?php echo $isPayment ? 'payment' : 'shipping'; ?> "></div> <div class="adm-bus-orderdocs-threelist-block-content"> <div class="adm-bus-orderdocs-threelist-block-title"> <?php if ($isPayment) { ?> <?php if ($document->isPaid()) { ?> <span class="adm-bus-orderdocs-docstatus adm-bus-orderdocs-docstatus-paid"><?php echo Loc::getMessage('SALE_OANALYSIS_PAYMENT_PAID'); ?> </span> <?php } elseif ($document->isReturn()) { ?> <span class="adm-bus-orderdocs-docstatus"><?php echo Loc::getMessage('SALE_OANALYSIS_PAYMENT_RETURN'); ?> </span> <?php } ?> <a href="/bitrix/admin/sale_order_payment_edit.php?order_id=<?php echo $orderId; ?> &payment_id=<?php echo $documentId; ?> " class="adm-bus-orderdocs-threelist-block-title-link"> <?php echo Loc::getMessage('SALE_OANALYSIS_PAYMENT_TITLE', array('#SYSTEM_NAME#' => htmlspecialcharsbx($document->getField('PAY_SYSTEM_NAME')), '#PAYMENT_ID#' => $documentId, '#SUM#' => SaleFormatCurrency($document->getField('SUM'), $document->getField('CURRENCY')))); ?> </a> <?php } else { /* shipment*/ ?> <?php if ($document->isShipped()) { ?> <span class="adm-bus-orderdocs-docstatus adm-bus-orderdocs-docstatus-shippingallowed"><?php echo Loc::getMessage('SALE_OANALYSIS_SHIPMENT_SHIPPED'); ?> </span> <?php } elseif ($document->isCanceled()) { ?> <span class="adm-bus-orderdocs-docstatus adm-bus-orderdocs-docstatus-canceled"><?php echo Loc::getMessage('SALE_OANALYSIS_SHIPMENT_CANCELED'); ?> </span> <?php } elseif ($document->isAllowDelivery()) { ?> <span class="adm-bus-orderdocs-docstatus adm-bus-orderdocs-docstatus-shippingallowed"><?php echo Loc::getMessage('SALE_OANALYSIS_SHIPMENT_ALLOWED'); ?> </span> <?php } ?> <a href="/bitrix/admin/sale_order_shipment_edit.php?order_id=<?php echo $orderId; ?> &shipment_id=<?php echo $documentId; ?> " class="adm-bus-orderdocs-threelist-block-title-link<?php echo $document->isCanceled() ? 'adm-bus-orderdocs-threelist-block-title-link-canceled' : ''; ?> "> <?php echo Loc::getMessage('SALE_OANALYSIS_SHIPMENT_TITLE', array('#SHIPMENT_ID#' => $documentId, '#ORDER_ID#' => $orderId)); ?> </a> <?php } ?> </div> <?php self::renderBottomBlocks($document->getField($isPayment ? 'DATE_BILL' : 'DATE_INSERT'), $document->getField('RESPONSIBLE_ID')); ?> </div> <div class="clb"></div> </div> <?php } ?> </div> </div> </div> <?php $result = ob_get_contents(); ob_end_clean(); return $result; }
/** * @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; }
public static function getScripts(Order $order, $userId) { $langPhrases = array("SALE_ORDER_STATUS_SAVE", "SALE_ORDER_STATUS_CANCEL", "SALE_ORDER_STATUS_CHANGE_ERROR", "SALE_ORDER_STATUS_CANCEL_ERROR", "SALE_ORDER_STATUS_CANCEL_CANCEL", "SALE_ORDER_STATUS_CHANGED_SUCCESS", "SALE_ORDER_STATUS_CANCELED", "SALE_ORDER_STATUS_CANCELING"); $result = ' <script type="text/javascript"> BX.ready(function(){ BX.Sale.Admin.OrderEditPage.registerFieldsUpdaters({ STATUS_ID: { callback: BX.Sale.Admin.OrderEditPage.setStatus, context: this } }); BX.Sale.Admin.OrderEditPage.statusesNames = ' . \CUtil::PhpToJSObject(self::getStatusesList($userId, $order->getField('STATUS_ID'))) . '; BX.Sale.Admin.OrderEditPage.callFieldsUpdaters(' . \CUtil::PhpToJSObject(self::prepareData($order)) . ');'; foreach ($langPhrases as $phrase) { $result .= ' BX.message({' . $phrase . ': "' . \CUtil::JSEscape(Loc::getMessage($phrase)) . '"});'; } $result .= '}); </script>'; return $result; }
public static function prepareData(Order $order) { $result = array("USER_ID" => $order->getUserId(), "PERSON_TYPE_ID" => $order->getPersonTypeId(), "BUYER_USER_NAME" => OrderEdit::getUserName($order->getUserId()), "USER_DESCRIPTION" => $order->getField("USER_DESCRIPTION")); return $result; }
protected static function prepareData(Order $order) { static $result = null; if ($result === null) { $creator = static::getUserInfo($order->getField("CREATED_BY")); $creatorName = $creator["LOGIN"]; if (strlen($creator["NAME"]) > 0) { $creatorName = $creator["NAME"] . " (" . $creatorName . ")"; } $canceler = static::getUserInfo($order->getField("EMP_CANCELED_ID")); $cancelerName = $canceler["LOGIN"]; if (strlen($canceler["NAME"]) > 0) { $cancelerName = $canceler["NAME"] . " (" . $cancelerName . ")"; } $result = array("DATE_INSERT" => $order->getDateInsert()->toString(), "DATE_UPDATE" => $order->getField('DATE_UPDATE')->toString(), "CREATOR_USER_NAME" => $creatorName, "CREATOR_USER_ID" => $creator["ID"], "STATUS_ID" => $order->getField('STATUS_ID'), "CANCELED" => $order->getField("CANCELED"), "EMP_CANCELED_NAME" => $cancelerName); } return $result; }
public static function prepareData(Order $order) { if (\CBXFeatures::IsFeatureEnabled('SaleAccounts')) { $strBuyerProfileUrl = '/bitrix/admin/sale_buyers_profile.php?USER_ID=' . $order->getUserId() . '&lang=' . LANGUAGE_ID; } else { $strBuyerProfileUrl = '/bitrix/admin/user_edit.php?ID=' . $order->getUserId() . '&lang=' . LANGUAGE_ID; } $result = array("USER_ID" => $order->getUserId(), "PERSON_TYPE_ID" => $order->getPersonTypeId(), "BUYER_USER_NAME" => OrderEdit::getUserName($order->getUserId()), "USER_DESCRIPTION" => $order->getField("USER_DESCRIPTION"), "BUYER_URL" => $strBuyerProfileUrl); return $result; }