Example #1
0
    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>';
    }
Example #2
0
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';
}
?>
Example #3
0
    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"> &#9662;</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;
    }
Example #4
0
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":
Example #5
0
 /**
  * @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;
 }
Example #6
0
    /**
     * @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;
    }
Example #7
0
    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>';
    }
Example #8
0
 /**
  * @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;
 }
Example #9
0
	</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";
Example #10
0
    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%">&nbsp;</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();">&nbsp;
						' . 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>';
    }
Example #11
0
 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;
 }
Example #12
0
 /**
  * @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;
 }
Example #13
0
 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;
 }