public static function getEditTemplate($data, $index) { return ' <div class="adm-bus-pay"> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table "> <tbody> <tr> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage('SALE_ORDER_SHIPMENT_STATUS') . ':</td> <td class="adm-detail-content-cell-r">' . \Bitrix\Sale\Helpers\Admin\OrderEdit::makeSelectHtml("SHIPMENT[" . $index . "][STATUS_ID]", self::getShipmentStatusList(), $data['STATUS_ID'], false, array("class" => "adm-bus-select", "id" => "SHIPMENT_STATUS_ID")) . '</td> </tr> </tbody> </table> </div>'; }
echo Admin\Blocks\OrderAdditional::getScripts(); echo Admin\Blocks\OrderFinanceInfo::getScripts(); echo Admin\Blocks\OrderShipment::getScripts(); echo Admin\Blocks\OrderAnalysis::getScripts(); echo $orderBasket->getScripts(); $fastNavItems = array(); foreach ($defaultBlocksOrder as $item) { $fastNavItems[$item] = Loc::getMessage("SALE_OVIEW_BLOCK_TITLE_" . toUpper($item)); } // navigation echo Admin\OrderEdit::getFastNavigationHtml($fastNavItems); // yellow block with brief echo Admin\Blocks\OrderInfo::getView($saleOrder, $orderBasket); // Problem block if ($saleOrder->getField("MARKED") == "Y") { echo Admin\OrderEdit::getProblemBlockHtml($saleOrder->getField("REASON_MARKED")); } $aTabs = array(array("DIV" => "tab_order", "TAB" => Loc::getMessage("SALE_OVIEW_TAB_ORDER"), "TITLE" => Loc::getMessage("SALE_OVIEW_TAB_ORDER"), "SHOW_WRAP" => "N", "IS_DRAGGABLE" => "Y"), array("DIV" => "tab_history", "TAB" => Loc::getMessage("SALE_OVIEW_TAB_HISTORY"), "TITLE" => Loc::getMessage("SALE_OVIEW_TAB_HISTORY")), array("DIV" => "tab_analysis", "TAB" => Loc::getMessage("SALE_OVIEW_TAB_ANALYSIS"), "TITLE" => Loc::getMessage("SALE_OVIEW_TAB_ANALYSIS"))); $tabControl = new CAdminTabControlDrag($formId, $aTabs, $moduleId, false, true); $tabControl->Begin(); //TAB order -- $tabControl->BeginNextTab(); $blocksOrder = $tabControl->getCurrentTabBlocksOrder($defaultBlocksOrder); $statusOnPaid = Bitrix\Main\Config\Option::get('sale', 'status_on_paid'); $statusOnAllowDelivery = Bitrix\Main\Config\Option::get('sale', 'status_on_allow_delivery'); $statusOnPaid2AllowDelivery = Bitrix\Main\Config\Option::get('sale', 'status_on_payed_2_allow_delivery'); $autoChangeStatus = 'Y'; if (empty($statusOnPaid) && (empty($statusOnAllowDelivery) || empty($statusOnPaid2AllowDelivery))) { $autoChangeStatus = 'N'; } ?>
private static function getEditTemplate($data, $index, $post = array()) { $paid = $post ? $post['PAID'] : $data['PAID']; $id = $post ? $post['PAYMENT_ID'] : $data['ID']; $paidString = $paid == 'Y' ? 'YES' : 'NO'; if (!$post) { if ($data['SUM'] > 0) { $sum = $data['SUM']; } else { $sum = $data['ORDER_PRICE'] - $data['ORDER_PAYMENT_SUM'] <= 0 ? 0 : $data['ORDER_PRICE'] - $data['ORDER_PAYMENT_SUM']; } } else { $sum = $post['SUM']; } $psData = self::getPaySystemParams(isset($post['PAY_SYSTEM_ID']) ? $post['PAY_SYSTEM_ID'] : $data['PAY_SYSTEM_ID'], $data['PERSON_TYPE_ID']); if (isset($psData["LOGOTIP_PATH"])) { $data['PAY_SYSTEM_LOGOTIP'] = $psData["LOGOTIP_PATH"]; } $paymentStatus = '<span><span id="BUTTON_PAID_' . $index . '" ' . ($paid != 'Y' ? 'class="notpay"' : '') . '>' . Loc::getMessage('SALE_ORDER_PAYMENT_STATUS_' . $paidString) . '</span><span class="triangle"> ▾</span></span>'; $note = BeginNote(); $note .= Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_ALERT'); $note .= EndNote(); $hiddenPaySystemInnerId = ''; if ($index == 1) { $hiddenPaySystemInnerId = '<input type="hidden" value="' . PaySystemInner::getId() . '" id="PAYMENT_INNER_BUDGET_ID">'; } $notPaidBlock = $paid == 'N' && !empty($data['EMP_PAID_ID']) ? '' : 'style="display:none;"'; $return = $post['IS_RETURN'] == 'Y' ? '' : 'style="display:none;"'; $returnInformation = ' <tr ' . $return . ' class="return"> <td class="adm-detail-content-cell-l fwb">' . Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_TO') . ':</td> <td class="adm-detail-content-cell-r"> <select name="PAYMENT[' . $index . '][OPERATION_ID]" id="OPERATION_ID_' . $index . '" class="adm-bus-select"> <option value="RETURN">' . Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_ACCOUNT') . '</option> </select> </td> </tr> <tr ' . $return . ' class="return"> <td colspan="2" style="text-align: center">' . $note . '</td> </tr> <tr ' . $notPaidBlock . ' class="not_paid"> <td class="adm-detail-content-cell-l" width="40%"><br>' . Loc::getMessage('SALE_ORDER_PAYMENT_PAY_RETURN_NUM') . ':</td> <td class="adm-detail-content-cell-r tal"> <br> <input type="text" class="adm-bus-input" name="PAYMENT[' . $index . '][PAY_RETURN_NUM]" id="PAYMENT_RETURN_NUM_' . $index . '" value="' . htmlspecialcharsbx($post['PAY_RETURN_NUM'] ? $post['PAY_RETURN_NUM'] : $data['PAY_RETURN_NUM']) . '" maxlength="20"> </td> </tr> <tr ' . $notPaidBlock . ' class="not_paid"> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PAY_RETURN_DATE') . ':</td> <td class="adm-detail-content-cell-r tal"> <div class="adm-input-wrap adm-calendar-second" style="display: inline-block;"> <input type="text" class="adm-input adm-calendar-to" name="PAYMENT[' . $index . '][PAY_RETURN_DATE]" id="PAYMENT_RETURN_DATE_' . $index . '" size="15" value="' . htmlspecialcharsbx($post['PAY_RETURN_DATE'] ? $post['PAY_RETURN_DATE'] : $data['PAY_RETURN_DATE']) . '"> <span class="adm-calendar-icon" title="' . Loc::getMessage('SALE_ORDER_PAYMENT_CHOOSE_DATE') . '" onclick="BX.calendar({node:this, field:\'PAYMENT_RETURN_DATE_' . $index . '\', form: \'\', bTime: false, bHideTime: false});"></span> </div> </td> </tr> <tr ' . $notPaidBlock . ' class="not_paid"> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_COMMENT') . ':</td> <td class="adm-detail-content-cell-r tal"> <div class="adm-input-wrap adm-calendar-second" style="display: inline-block;"> <textarea name="PAYMENT[' . $index . '][PAY_RETURN_COMMENT]" id="PAYMENT_RETURN_COMMENTS_' . $index . '">' . htmlspecialcharsbx(isset($post['PAY_RETURN_COMMENT']) ? $post['PAY_RETURN_COMMENT'] : $data['PAY_RETURN_COMMENT']) . '</textarea> </div> </td> </tr>'; $lang = Main\Application::getInstance()->getContext()->getLanguage(); $title = $id > 0 ? Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_EDIT_PAYMENT_TITLE') . '#' . $id : Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_NEW_PAYMENT_TITLE') . '#' . $index; $curFormat = \CCurrencyLang::getCurrencyFormat($data['CURRENCY']); $currencyLang = trim(str_replace("#", '', $curFormat["FORMAT_STRING"])); $disabled = $data['PAID'] == 'Y' ? 'readonly' : ''; $companyList = OrderEdit::getCompanyList(); if (!empty($companyList)) { $companies = \Bitrix\Sale\Helpers\Admin\OrderEdit::makeSelectHtml('PAYMENT[' . $index . '][COMPANY_ID]', $companyList, isset($post["COMPANY_ID"]) ? $post["COMPANY_ID"] : $data["COMPANY_ID"], true, array("class" => "adm-bus-select", "id" => "COMPANY_ID")); } else { $companies = str_replace("#URL#", "/bitrix/admin/sale_company_edit.php?lang=" . $lang, Loc::getMessage('SALE_ORDER_PAYMENT_ADD_COMPANY')); } $result = '<div> <div class="adm-bus-pay" id="payment_container_' . $index . '"> <input type="hidden" name="PAYMENT[' . $index . '][PAYMENT_ID]" id="payment_id_' . $index . '" value="' . $id . '"> <input type="hidden" name="PAYMENT[' . $index . '][INDEX]" value="' . $index . '" class="index"> <input type="hidden" name="PAYMENT[' . $index . '][PAID]" id="PAYMENT_PAID_' . $index . '" value="' . (empty($paid) ? 'N' : $paid) . '"> <input type="hidden" name="PAYMENT[' . $index . '][IS_RETURN]" id="PAYMENT_IS_RETURN_' . $index . '" value="' . ($post['IS_RETURN'] ? $post['IS_RETURN'] : 'N') . '"> ' . $hiddenPaySystemInnerId . ' <div class="adm-bus-component-content-container"> <div class="adm-bus-pay-section"> <div class="adm-bus-pay-section-title-container"> <div class="adm-bus-pay-section-title">' . $title . '</div> <div class="adm-bus-pay-section-action-block">' . (!isset($data['ID']) || $data['ID'] <= 0 ? '<div class="adm-bus-pay-section-action" id="SECTION_' . $index . '_DELETE">' . Loc::getMessage('SALE_ORDER_PAYMENT_DELETE') . '</div>' : '') . '</div> </div> <div class="adm-bus-pay-section-content" id="SECTION_' . $index . '"> <div class="adm-bus-pay-section-sidebar"> <div class="adm-bus-pay-section-sidebar-service-logo"> <img id="LOGOTIP_' . $index . '" src="' . $data['PAY_SYSTEM_LOGOTIP'] . '" alt=""> </div> </div> <div class="adm-bus-pay-section-right"> <div class="adm-bus-table-container caption border"> <div class="adm-bus-table-caption-title" style="background: #eef5f5;">' . Loc::getMessage('SALE_ORDER_PAYMENT_METHOD') . '</div> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table "> <tbody> <tr> <td class="adm-detail-content-cell-l fwb" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PAY_SYSTEM') . ':</td> <td class="adm-detail-content-cell-r">' . self::makePaymentSelectHtml('PAYMENT[' . $index . '][PAY_SYSTEM_ID]', self::getPaySystemList(), isset($post['PAY_SYSTEM_ID']) ? $post['PAY_SYSTEM_ID'] : $data['PAY_SYSTEM_ID'], array("class" => "adm-bus-select", "id" => "PAY_SYSTEM_ID_" . $index)) . '</td> </tr> </tbody> </table> </div> <div class="adm-bus-table-container caption border"> <div class="adm-bus-table-caption-title" style="background: #eef5f5;">' . Loc::getMessage('SALE_ORDER_PAYMENT_SUM') . '</div> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table "> <tbody> <tr> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PAYABLE_SUM') . ':</td> <td class="adm-detail-content-cell-r tal"><input type="text" class="adm-bus-input-price" name="PAYMENT[' . $index . '][SUM]" id="PAYMENT_SUM_' . $index . '" value="' . round($sum, 2) . '" ' . $disabled . '> ' . $currencyLang . '<br></td> </tr> </tbody> </table> </div> <div class="adm-bus-table-container caption border" style="padding-top:10px;"> <div class="adm-bus-table-caption-title" style="background: #eef5f5;">' . Loc::getMessage('SALE_ORDER_PAYMENT_STATUS') . '</div> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table alternation edit-table" id="PAYMENT_BLOCK_STATUS_' . $index . '"> <tbody> <tr> <td class="adm-detail-content-cell-l vat payment-status" width="40%"> ' . $paymentStatus . ' </td> <td class="adm-detail-content-cell-r tal" id="PAYMENT_CHANGE_USER_INFO_' . $index . '"> ' . $data['DATE_PAID'] . ' <a href="/bitrix/admin/user_edit.php?lang=' . $lang . '&ID=' . $data['EMP_PAID_ID'] . '">' . htmlspecialcharsbx($data['EMP_PAID_ID_NAME']) . ' ' . htmlspecialcharsbx($data['EMP_PAID_ID_LAST_NAME']) . '</a> </td> </tr> </tbody> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table" id="PAYMENT_BLOCK_STATUS_INFO_' . $index . '"> <tbody> <tr> <td class="adm-detail-content-cell-l" width="40%"><br>' . Loc::getMessage('SALE_ORDER_PAYMENT_PAY_VOUCHER_NUM') . ':</td> <td class="adm-detail-content-cell-r tal"> <br> <input type="text" class="adm-bus-input" id="PAYMENT_NUM" name="PAYMENT[' . $index . '][PAY_VOUCHER_NUM]" value="' . htmlspecialcharsbx(isset($post['PAY_VOUCHER_NUM']) ? $post['PAY_VOUCHER_NUM'] : $data['PAY_VOUCHER_NUM']) . '" maxlength="20"> </td> </tr> <tr> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PAY_VOUCHER_DATE') . ':</td> <td class="adm-detail-content-cell-r tal"> <div class="adm-input-wrap adm-calendar-second" style="display: inline-block;"> <input type="text" class="adm-input adm-calendar-to" id="PAYMENT_DATE_' . $index . '" name="PAYMENT[' . $index . '][PAY_VOUCHER_DATE]" size="15" value="' . htmlspecialcharsbx($post['PAY_VOUCHER_DATE'] ? $post['PAY_VOUCHER_DATE'] : $data['PAY_VOUCHER_DATE']) . '"> <span class="adm-calendar-icon" title="' . Loc::getMessage('SALE_ORDER_PAYMENT_CHOOSE_DATE') . '" onclick="BX.calendar({node:this, field:\'PAYMENT_DATE_' . $index . '\', form: \'\', bTime: false, bHideTime: false});"></span> </div> </td> </tr> ' . $returnInformation . ' </tbody> </table> </div>'; if (isset($data['PS_STATUS']) && !empty($data['PS_STATUS'])) { $result .= '<div class="adm-bus-table-container caption border"> <div class="adm-bus-table-caption-title" style="background: #eef5f5;">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_TITLE') . '</div> <a href="javascript:void(0);" id="PS_INFO_' . $index . '">' . Loc::getMessage('SALE_ORDER_PAYMENT_TOGGLE_DOWN') . '</a> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table" style="display: none"> <tbody> <tr> <td class="adm-detail-content-cell-l vat" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS') . ':</td> <td class="adm-detail-content-cell-r tal">' . $data['PS_STATUS'] . '</td> </tr> <tr> <td class="adm-detail-content-cell-l vat" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_CODE') . ':</td> <td class="adm-detail-content-cell-r tal">' . $data['PS_STATUS_CODE'] . '</td> </tr> <tr> <td class="adm-detail-content-cell-l vat" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_DESCRIPTION') . ':</td> <td class="adm-detail-content-cell-r tal">' . $data['PS_STATUS_DESCRIPTION'] . '</td> </tr> <tr> <td class="adm-detail-content-cell-l vat" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_CURRENCY') . ':</td> <td class="adm-detail-content-cell-r tal">' . $data['PS_CURRENCY'] . '</td> </tr> <tr> <td class="adm-detail-content-cell-l vat" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_SUM') . ':</td> <td class="adm-detail-content-cell-r tal">' . $data['PS_SUM'] . '</td> </tr> <tr> <td class="adm-detail-content-cell-l vat" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_PS_DATE') . ':</td> <td class="adm-detail-content-cell-r tal">' . $data['PS_RESPONSE_DATE'] . '</td> </tr> </tbody> </table> </div>'; } $result .= ' <div class="adm-bus-table-container caption border"> <div class="adm-bus-table-caption-title" style="background: #eef5f5;">' . Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_COMPANY') . '</div> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table "> <tbody> <tr> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage('SALE_ORDER_PAYMENT_COMPANY_BY') . ':</td> <td class="adm-detail-content-cell-r">' . $companies . '</td> </tr> </tbody> </table> </div> </div> <div class="clb"></div> </div> </div> </div> </div> </div>'; $params = array('index' => $index, 'functionOnSave' => 'saveInHiddenFields', 'isPaid' => $data['PAID'] == 'Y', 'viewForm' => false, 'isAvailableChangeStatus' => true); $result .= self::initJsPayment($params); return $result; }
echo $lang; ?> "> <input type="hidden" id="order_id" name="order_id" value="<?php echo $orderId; ?> "> <input type="hidden" id="site_id" name="site_id" value="<?php echo $siteId; ?> "> <?php echo bitrix_sessid_post(); \Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/admin/order_ajaxer.js"); echo \Bitrix\Sale\Helpers\Admin\Blocks\OrderAdditional::getScripts(); echo \Bitrix\Sale\Helpers\Admin\OrderEdit::getScripts($saleOrder, $formId); echo \Bitrix\Sale\Helpers\Admin\Blocks\OrderShipment::getScripts(); echo $shipmentOrderBasket->getScripts($dataForRecovery); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/general/admin_tool.php"; ?> <tr> <td> <div style="position: relative; vertical-align: top"> <?php $tabControl->DraggableBlocksStart(); ?> <?php foreach ($blocksOrder as $blockCode) { $tabControl->DraggableBlockBegin(GetMessage("SALE_BLOCK_TITLE_" . toUpper($blockCode)), $blockCode); switch ($blockCode) { case "goodsList":
/** * @param bool $error * @param bool $needRecalculate * @return mixed */ protected static function prepareData($error = false, $needRecalculate = true) { global $USER; static $users = array(); $result['SHIPMENT'] = array(); if ($error) { $fields = self::$defaultFields; } else { $fields = self::$shipment->getFieldValues(); $fields['DELIVERY_STORE_ID'] = self::$shipment->getStoreId(); $fields["EXTRA_SERVICES"] = self::$shipment->getExtraServices(); $fields["STORE"] = self::$shipment->getStoreId(); } $date = new Date($fields['DELIVERY_DOC_DATE']); $fields['DELIVERY_DOC_DATE'] = $date->toString(); $empDeductedId = $fields['EMP_DEDUCTED_ID']; if ($empDeductedId > 0) { if (!array_key_exists($empDeductedId, $users)) { $users[$empDeductedId] = $USER->GetByID($empDeductedId)->Fetch(); } $fields['EMP_DEDUCTED_ID_NAME'] = $users[$empDeductedId]['NAME']; $fields['EMP_DEDUCTED_ID_LAST_NAME'] = $users[$empDeductedId]['LAST_NAME']; } $empAllowDeliveryId = $fields['EMP_ALLOW_DELIVERY_ID']; if ($empAllowDeliveryId > 0) { if (!array_key_exists($empAllowDeliveryId, $users)) { $users[$empAllowDeliveryId] = $USER->GetByID($empAllowDeliveryId)->Fetch(); } $fields['EMP_ALLOW_DELIVERY_ID_NAME'] = $users[$empAllowDeliveryId]['NAME']; $fields['EMP_ALLOW_DELIVERY_ID_LAST_NAME'] = $users[$empAllowDeliveryId]['LAST_NAME']; } $empCanceledId = $fields['EMP_CANCELED_ID']; if ($empCanceledId > 0) { if (!array_key_exists($empCanceledId, $users)) { $users[$empCanceledId] = $USER->GetByID($empCanceledId)->Fetch(); } $fields['EMP_CANCELLED_ID_NAME'] = $users[$empCanceledId]['NAME']; $fields['EMP_CANCELLED_ID_LAST_NAME'] = $users[$empCanceledId]['LAST_NAME']; } $empMarkedId = $fields['EMP_MARKED_ID']; if ($empMarkedId > 0) { if (!array_key_exists($empMarkedId, $users)) { $users[$empMarkedId] = $USER->GetByID($empMarkedId)->Fetch(); } $fields['EMP_MARKED_ID_NAME'] = $users[$empMarkedId]['NAME']; $fields['EMP_MARKED_ID_LAST_NAME'] = $users[$empMarkedId]['LAST_NAME']; } /** @var \Bitrix\Sale\Order $order */ $order = self::$shipment->getCollection()->getOrder(); $fields['CURRENCY'] = $order->getCurrency(); $fields['CUSTOM_PRICE'] = self::getDeliveryPrice(self::$shipment); if ($fields['CUSTOM_PRICE_DELIVERY'] == 'Y' && $fields['ID'] <= 0) { $fields['BASE_PRICE_DELIVERY'] = self::$shipment->getField('BASE_PRICE_DELIVERY'); } $discounts = OrderEdit::getDiscountsApplyResult($order, $needRecalculate); $shipmentIds = $order->getDiscount()->getShipmentsIds(); foreach ($shipmentIds as $shipmentId) { if ($shipmentId == self::$shipment->getId()) { $fields['DISCOUNTS'] = $discounts; } } $result['SHIPMENT'][] = $fields; return $result; }
/** * @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 getEditSimple($userId, $fieldName, $status) { return ' <table border="0" cellspacing="0" cellpadding="0" width="100%" class="adm-detail-content-table edit-table "> <tbody> <tr> <td class="adm-detail-content-cell-l" width="40%">' . Loc::getMessage("SALE_ORDER_STATUS") . ':' . '</td> <td class="adm-detail-content-cell-r">' . \Bitrix\Sale\Helpers\Admin\OrderEdit::makeSelectHtml($fieldName, self::getStatusesList($userId, $status), $status, false, array("class" => "adm-bus-select", "id" => "STATUS_ID")) . '</td> </tr> </tbody> </table>'; }
/** * @param $formData * @return Sale\Order * @throws ArgumentNullException * @throws UserMessageException */ protected function getOrder(array $formData, Result &$result = null) { if (!isset($formData["ID"])) { $formData["ID"] = 0; } else { $formData["ID"] = intval($formData["ID"]); } if ($this->order !== null && !$this->formDataChanged && $this->order->getId() == $formData["ID"]) { return $this->order; } if (!$result) { $result = new Result(); } Admin\OrderEdit::initCouponsData(intval($formData["USER_ID"]) > 0 ? intval($formData["USER_ID"]) : 0, intval($formData["ID"]) > 0 ? intval($formData["ID"]) : 0, intval($formData["OLD_USER_ID"]) > 0 ? intval($formData["OLD_USER_ID"]) : null); if ($formData["ID"] > 0) { $this->order = Sale\Order::load($formData["ID"]); if (!$this->order) { throw new UserMessageException("Can't load order with id:\"" . $formData["ID"] . "\"!"); } } else { $this->order = Admin\OrderEdit::createOrderFromForm($formData, $this->userId, false, array(), $result); if (!$this->order) { throw new UserMessageException("Can't create order!"); } } $this->formDataChanged = false; return $this->order; }
</td> </tr> <?php $tabControl->EndTab(); //-- TAB analysis $tabControl->Buttons(array("back_url" => "/bitrix/admin/sale_order_edit.php?lang=" . LANGUAGE_ID . "&dontsave=Y&ID=" . $ID . GetFilterParams("filter_"))); $tabControl->End(); ?> </form> <div style="display: none;"> <?php echo $orderBasket->getSettingsDialogContent(); ?> </div> <?php if (!$result->isSuccess() || $isNeedFieldsRestore) { ?> <script type="text/javascript"> BX.ready( function(){ BX.Sale.Admin.OrderEditPage.restoreFormData( <?php echo CUtil::PhpToJSObject(OrderEdit::restoreFieldsNames(array_diff_key($_POST, array("USER_ID" => true)))); ?> ); }); </script> <?php } require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
public static function getProductEditDialogHtml($currency, $objName) { return ' <input id="FORM_BASKET_PRODUCT_ID" name="BASKET_PRODUCT_ID" value="" type="hidden"> <input id="FORM_PROD_BASKET_CUSTOM_PRICE" name="BASKET_CUSTOM_PRICE" value="Y" type="hidden"> <table class="edit-table"> <tr> <td width="40%"> </td> <td align="left" width="60%"> <div id="basketError" style="display:none;"> <table class="message message-error" border="0" cellpadding="0" cellspacing="0" style="border:2px solid #FF0000;color:#FF0000"> <tr> <td> <table class="content" border="0" cellpadding="0" cellspacing="0" style="margin:4px;"> <tr> <td valign="top"><div class="icon-error"></div></td> <td> <span class="message-title" style="font-weight:bold;">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ERROR") . '</span><br> <div class="empty" style="height: 5px;"></div><div id="basketErrorText"></div> </td> </tr> </table> </td> </tr> </table> </div></td> </tr> <tr id="FORM_NEWPROD_CODE"> <td class="adm-detail-content-cell-l" width="30%">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_ID") . ':</td> <td width="70%"><input size="10" id="FORM_PROD_BASKET_OFFER_ID" name="FORM_PROD_BASKET_OFFER_ID" type="text" value="" tabindex="1"></td> </tr> <tr class="adm-detail-required-field"> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_NAME") . ':</td> <td><input size="40" id="FORM_PROD_BASKET_NAME" name="FORM_PROD_BASKET_NAME" type="text" value="" tabindex="2" onkeyup="' . $objName . '.productEditDialog.disableButton();"></td> </tr> <tr> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_PATH") . ':</td> <td><input id="FORM_PROD_BASKET_DETAIL_PAGE_URL" name="FORM_PROD_BASKET_DETAIL_PAGE_URL" value="" size="40" type="text" tabindex="3"></td> </tr> <tr> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_CATALOG_XML") . ':</td> <td><input id="FORM_PROD_BASKET_CATALOG_XML_ID" name="FORM_PROD_BASKET_CATALOG_XML_ID" value="" size="40" type="text" tabindex="4"></td> </tr> <tr> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_PRODUCT_XML") . ':</td> <td><input id="FORM_PROD_BASKET_PRODUCT_XML_ID" name="FORM_PROD_BASKET_PRODUCT_XML_ID" value="" size="40" type="text" tabindex="5"></td> </tr> <tr> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_NOTES") . ':</td> <td><input name="FORM_PROD_BASKET_NOTES" id="FORM_PROD_BASKET_NOTES" size="40" maxlength="250" value="" type="text" tabindex="6"></td> </tr> <tr> <td class="adm-detail-content-cell-l" valign="top" width="40%">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_PROPS") . ':</td> <td width="60%"> <table id="BASKET_PROP_TABLE" class="internal" border="0" cellpadding="3" cellspacing="1" style="width: 521px; margin-top: 20px;"> <tr class="heading" style="border-collapse:collapse;background-color:#E7EAF5;color:#525355;"> <td align="center">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_IP_NAME") . '</td> <td align="center">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_IP_VALUE") . '</td> <td align="center">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_IP_CODE") . '</td> <td align="center">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_IP_SORT") . '</td> </tr> <tr id="FORM_PROD_BASKET_EMPTY_PROP_ROW"> <td colspan="4" style="text-align: center;"> ' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_EMPTY_PROP_ROW") . ' </td> </tr> </table> <div width="100%" style="text-align: right;"> <input value="' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_PROPERTY_MORE") . '" onclick="' . $objName . '.productEditDialog.addPropRow();" type="button" style="margin-top: 10px;"> </div> </td> </tr> <tr class="adm-detail-required-field"> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_QUANTITY") . ':</td> <td> <input name="FORM_PROD_BASKET_QUANTITY" id="FORM_PROD_BASKET_QUANTITY" size="10" maxlength="20" value="" type="text" tabindex="7" onkeyup="' . $objName . '.productEditDialog.disableButton();"> ' . OrderEdit::makeSelectHtml('FORM_PROD_BASKET_MEASURE_CODE', self::getCatalogMeasures(), '', true, array('id' => 'FORM_PROD_BASKET_MEASURE_CODE')) . ' </td> </tr> <tr class="adm-detail-required-field"> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_PRICE") . ':</td> <td><input name="FORM_PROD_BASKET_PRICE" id="FORM_PROD_BASKET_PRICE" size="10" maxlength="20" value="" type="text" tabindex="8" onkeyup="' . $objName . '.productEditDialog.disableButton();"> (' . \CUtil::JSEscape($currency) . ')</td> </tr> <tr> <td class="adm-detail-content-cell-l">' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_WEIGHT") . ':</td> <td><input name="FORM_PROD_BASKET_WEIGHT" id="FORM_PROD_BASKET_WEIGHT" size="10" maxlength="20" value="" type="text" tabindex="9"> (' . Loc::getMessage("SALE_ORDER_BASKET_PROD_EDIT_ITEM_GRAMM") . ')</td> </tr> </table>'; }
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; }
/** * @param BasketItem $item * @param array $productData * @return \Bitrix\Sale\Result * @throws SystemException */ public static function fillBasketItem(BasketItem &$item, array $productData, Order $order, Basket $basket, $needDataUpdate = false) { $basketCode = $item->getBasketCode(); if (isset($productData["PRODUCT_PROVIDER_CLASS"]) && strlen($productData["PRODUCT_PROVIDER_CLASS"]) > 0) { $item->setField("PRODUCT_PROVIDER_CLASS", trim($productData["PRODUCT_PROVIDER_CLASS"])); } $item->setField("QUANTITY", $productData["QUANTITY"]); $product = array(); $data = array(); /* Get actual info from provider * cases: * 1) add new product to basket; * 2) saving operation; */ if (!self::$isTrustProductFormData || $needDataUpdate) { $data = Provider::getProductData($basket, array("PRICE"), $item); if (isset($data[$basketCode])) { $product = $data[$basketCode]; if (isset($product['DISCOUNT_PRICE'])) { $product['DISCOUNT_PRICE'] = roundEx($product['DISCOUNT_PRICE'], SALE_VALUE_PRECISION); } if (isset($product['BASE_PRICE'])) { $product['PRICE'] = $product['BASE_PRICE'] - $product['DISCOUNT_PRICE']; } $discount = $order->getDiscount(); if ($discount !== null) { if (isset($data[$basketCode]['BASE_PRICE']) && isset($data[$basketCode]['CURRENCY'])) { $discount->setBasketItemBasePrice($basketCode, $data[$basketCode]['BASE_PRICE'], $data[$basketCode]['CURRENCY']); } if (!empty($data[$basketCode]['DISCOUNT_LIST'])) { $discount->setBasketItemDiscounts($basketCode, $data[$basketCode]['DISCOUNT_LIST']); } } } } /* * Let's extract cached provider product data from field * cases: * 1) all activity through ajax */ if (empty($data[$basketCode]) && !empty($productData["PROVIDER_DATA"])) { $data[$basketCode] = unserialize($productData["PROVIDER_DATA"]); } if (!empty($productData["SET_ITEMS_DATA"])) { $productData["SET_ITEMS"] = unserialize($productData["SET_ITEMS_DATA"]); } if (is_array($data[$basketCode]) && !empty($data[$basketCode])) { self::setProviderTrustData($item, $order, $data[$basketCode]); } if (!self::$isTrustProductFormData) { if (isset($productData["MODULE"]) && $productData["MODULE"] == "catalog") { $data = OrderBasket::getProductDetails($item->getProductId(), $productData["QUANTITY"], $order->getUserId(), $order->getSiteId()); $product = array_merge($product, $data); } unset($productData["CURRENCY"]); } $product = array_merge($product, $productData); if (isset($product["OFFER_ID"]) || intval($product["OFFER_ID"]) >= 0) { $product["PRODUCT_ID"] = $product["OFFER_ID"]; } $product = array_intersect_key($product, array_flip($item::getAvailableFields())); if (isset($product["MEASURE_CODE"]) && strlen($product["MEASURE_CODE"]) > 0) { $measures = OrderBasket::getCatalogMeasures(); if (isset($measures[$product["MEASURE_CODE"]]) && strlen($measures[$product["MEASURE_CODE"]]) > 0) { $product["MEASURE_NAME"] = $measures[$product["MEASURE_CODE"]]; } } if (!isset($product["CURRENCY"]) || strlen($product["CURRENCY"]) <= 0) { $product["CURRENCY"] = $order->getCurrency(); } if ($productData["IS_SET_PARENT"] == "Y") { $product["TYPE"] = BasketItem::TYPE_SET; } OrderEdit::setProductDetails($productData["OFFER_ID"], $order->getUserId(), $order->getSiteId(), array_merge($product, $productData)); $result = self::setBasketItemFields($item, $product); 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; }