static function getViewTemplate($data, $index, $formType)
{
global $USER;
$index++;
$isUserResponsible = null;
$isAllowCompany = null;
if (array_key_exists('IS_USER_RESPONSIBLE', $data))
{
$isUserResponsible = $data['IS_USER_RESPONSIBLE'];
}
if (array_key_exists('IS_ALLOW_COMPANY', $data))
{
$isAllowCompany = $data['IS_ALLOW_COMPANY'];
}
if (self::$backUrl !== '')
$backUrl = self::$backUrl;
else
$backUrl = $_SERVER['REQUEST_URI'];
$allowDeliveryString = ($data['ALLOW_DELIVERY'] == 'Y') ? 'YES' : 'NO';
$deductedString = ($data['DEDUCTED'] == 'Y') ? 'YES' : 'NO';
$allowedStatusesDelivery = DeliveryStatus::getStatusesUserCanDoOperations($USER->GetID(), array('delivery'));
$isAllowDelivery = in_array($data["STATUS_ID"], $allowedStatusesDelivery) && $formType != 'archive' && $formType != 'edit';
$isActive = ($formType != 'edit' && $formType != 'archive') && !$data['ORDER_LOCKED'];
$triangle = ($isActive && $isAllowDelivery) ? ' ▾ ' : '';
if ($data['ALLOW_DELIVERY'] == 'Y')
$class = ($isActive && $isAllowDelivery) ? '' : 'class="not_active"';
else
$class = ($isActive && $isAllowDelivery) ? 'class="notdelivery"' : 'class="notdelivery not_active"';
$allowDelivery = ''.Loc::getMessage('SALE_ORDER_SHIPMENT_ALLOW_DELIVERY_'.$allowDeliveryString).' '.$triangle.' ';
$allowedStatusesDeduction = DeliveryStatus::getStatusesUserCanDoOperations($USER->GetID(), array('deduction'));
$isAllowDeduction = in_array($data["STATUS_ID"], $allowedStatusesDeduction) && $formType != 'archive' && $formType != 'edit';
$triangle = ($isActive && $isAllowDeduction) ? ' ▾ ' : '';
if ($data['DEDUCTED'] == 'Y')
$class = ($isActive && $isAllowDeduction) ? '' : 'class="not_active"';
else
$class = ($isActive && $isAllowDeduction) ? 'class="notdeducted"' : 'class="notdeducted not_active"';
$deducted = ''.Loc::getMessage('SALE_ORDER_SHIPMENT_DEDUCTED_'.$deductedString).' '.$triangle.' ';
$map = ($data['DELIVERY_ID'] > 0) ? self::getMap($data['DELIVERY_ID'], $index, $data['DELIVERY_STORE_ID'], 'view') : '';
$lang = MainApplication::getInstance()->getContext()->getLanguage();
$service = null;
$extraServiceHTML = '';
$mainLogoPath = '/bitrix/images/sale/logo-default-d.gif';
$shortLogoPath = '/bitrix/images/sale/logo-default-d.gif';
if (($isAllowCompany !== false || $isUserResponsible !== false) && $data['DELIVERY_ID'] > 0)
{
$service = ServicesManager::getObjectById($data['DELIVERY_ID']);
$extraServiceManager = new BitrixSaleDeliveryExtraServicesManager($data['DELIVERY_ID']);
$extraServiceManager->setOperationCurrency($data['CURRENCY']);
if ($data['EXTRA_SERVICES'])
$extraServiceManager->setValues($data['EXTRA_SERVICES']);
if ($service && $service->getLogotip() > 0)
{
$mainLogo = self::getMainImgPath($service->getLogotip());
$shortLogo = self::getShortImgPath($service->getLogotip());
$mainLogoPath = $mainLogo['src'];
$shortLogoPath = $shortLogo['src'];
}
$extraService = $extraServiceManager->getItems();
if ($extraService)
$extraServiceHTML = self::getExtraServiceEditControl($extraService, $index, true, self::$shipment);
}
$companyList = OrderEdit::getCompanyList();
$shipmentStatusList = OrderShipmentStatus::getShipmentStatusList($data['STATUS_ID']);
$jsShipmentStatus = array();
foreach ($shipmentStatusList as $id => $name)
{
$jsShipmentStatus[] = array(
'ID' => $id,
'NAME' => htmlspecialcharsbx($name)
);
}
$allowedStatusesFrom = DeliveryStatus::getStatusesUserCanDoOperations($USER->GetID(), array('from'));
$canChangeStatus = in_array($data["STATUS_ID"], $allowedStatusesFrom) && $formType != 'archive' && $formType != 'edit';
$triangle = ($isActive && $canChangeStatus) ? ' ▾ ' : '';
$class = ($isActive && $canChangeStatus) ? '' : 'class="not_active"';
$shipmentStatus = '' . htmlspecialcharsbx($shipmentStatusList[$data['STATUS_ID']]) . ' '.$triangle.' ';
$shippingBlockId = '';
if(($isAllowCompany !== false || $isUserResponsible !== false) && ($isActive || $data['TRACKING_NUMBER'] <> ''))
{
$shippingBlockId = '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_TRACKING_NUMBER').':
'.htmlspecialcharsbx($data['TRACKING_NUMBER']).' ';
if ($isActive)
$shippingBlockId .= '
';
if($data['HAS_TRACKING'] && $data['TRACKING_NUMBER'] <> '')
{
$shippingBlockId .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_TRACKING_STATUS').':
'.
''.(intval($data['TRACKING_STATUS']) >= 0 ? BitrixSaleDeliveryTrackingManager::getStatusName($data['TRACKING_STATUS']) : '-').' '.
' ['.Loc::getMessage('SALE_ORDER_SHIPMENT_TRACKING_STATUS_REFRESH').' ]
'.Loc::getMessage('SALE_ORDER_SHIPMENT_TRACKING_DESCRIPTION').':
'.($data['TRACKING_DESCRIPTION'] <> '' ? $data['TRACKING_DESCRIPTION'] : '-').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_TRACKING_LAST_CHANGE').':
'.($data['TRACKING_LAST_CHANGE'] <> '' ? $data['TRACKING_LAST_CHANGE'] : '-').'
';
if(!empty($data['TRACKING_URL']))
{
$shippingBlockId .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_TRACKING_URL').':
'.$data['TRACKING_URL'].'
';
}
}
}
$shippingBlockDocNum = '';
if (($isAllowCompany !== false || $isUserResponsible !== false) && $data['DELIVERY_DOC_NUM'] <> '')
{
$shippingBlockDocNum = '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_DOC_NUM').':
' . htmlspecialcharsbx($data['DELIVERY_DOC_NUM']) . '
';
}
$shippingBlockDocDate = '';
if (($isAllowCompany !== false || $isUserResponsible !== false) && $data['DELIVERY_DOC_DATE'] <> '')
{
$shippingBlockDocDate = '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_DOC_DATE').':
' . htmlspecialcharsbx($data['DELIVERY_DOC_DATE']) . '
';
}
$dateInsert = new Date($data['DATE_INSERT']);
$checkLink = '';
if ($data['FFD_105_ENABLED'] === 'Y')
{
$checkLink .= '';
if (!empty($data['CHECK']))
{
$checkLink .= OrderShipment::buildCheckHtml($data['CHECK']);
}
$checkLink .= " ";
if($formType != 'archive' && $data['HAS_ENABLED_CASHBOX'] === 'Y' && $data['CAN_PRINT_CHECK'] === 'Y')
{
$checkLink .= ''.Loc::getMessage('SALE_ORDER_SHIPMENT_CHECK_ADD').' ';
}
}
$sectionDelete = '';
$allowedDeliveryStatusesDelete = DeliveryStatus::getStatusesUserCanDoOperations($USER->GetID(), array('delete'));
if (in_array($data["STATUS_ID"], $allowedDeliveryStatusesDelete) && !$data['ORDER_LOCKED'] && $formType != 'archive')
$sectionDelete = ''.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_SHIPMENT_DELETE').'
';
$sectionEdit = '';
$allowedOrderStatusesUpdate = DeliveryStatus::getStatusesUserCanDoOperations($USER->GetID(), array('update'));
if (in_array($data["STATUS_ID"], $allowedOrderStatusesUpdate) && !$data['ORDER_LOCKED'] && $formType != 'archive')
{
$sectionEdit = ''.
static::renderShipmentEditLink($data+['backurl'=>$backUrl]).
Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_SHIPMENT_EDIT').'
';
}
$weightView = roundEx(
floatval(
$data['WEIGHT']/self::getWeightKoef($data['SITE_ID'])
),
SALE_WEIGHT_PRECISION
)." ".self::getWeightUnit($data['SITE_ID']);
$result = '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_EDIT_SHIPMENT_TITLE', array("#ID#" => $data['ID'], '#DATE_INSERT#' => $dateInsert)).'
'.$sectionDelete.$sectionEdit.'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_SHIPMENT_TOGGLE_UP').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_SERVICE').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_SERVICE').':
'.(($isAllowCompany === false && $isUserResponsible === false) ? Loc::getMessage('SALE_ORDER_SHIPMENT_HIDDEN') : htmlspecialcharsbx($data['DELIVERY_NAME']).' ['.$data['DELIVERY_ID'].']'). '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_BLOCK_PRICE').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_SUM_PRICE').':
'.SaleFormatCurrency(floatval($data['BASE_PRICE_DELIVERY']), $data['CURRENCY']).'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DISCOUNT').':
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_SUM_DISCOUNT_PRICE').':
'.SaleFormatCurrency(floatval($data['PRICE_DELIVERY']), $data['CURRENCY']).'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_BLOCK_WEIGHT').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_WEIGHT').':
'.$weightView.'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_SHIPMENT').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_OFFICE').':
'.(($isAllowCompany === false && $isUserResponsible === false) ? Loc::getMessage('SALE_ORDER_SHIPMENT_HIDDEN') : (isset($companyList[$data['COMPANY_ID']]) ? htmlspecialcharsbx($companyList[$data['COMPANY_ID']]) : Loc::getMessage('SALE_ORDER_SHIPMENT_NO_COMPANY'))).'
';
if ($checkLink)
{
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_CHECK_LINK_TITLE').'
';
}
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_STATUS').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_ALLOW_DELIVERY').':
'.$allowDelivery.'
'.((!empty($data['EMP_ALLOW_DELIVERY_ID'])) ? '
' : '').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DEDUCTED').':
'.$deducted.'
'.((!empty($data['EMP_DEDUCTED_ID'])) ? '
' : '').'
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DELIVERY_DOC_STATUS').':
'.$shipmentStatus.'
';
if (!empty($shippingBlockId) || !empty($shippingBlockDocNum) || !empty($shippingBlockDocDate) || !empty($extraServiceHTML))
{
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_DELIVERY_INFO').'
' . $shippingBlockId . $shippingBlockDocNum . $shippingBlockDocDate . '
' . $extraServiceHTML . '
';
}
if(!empty($data['DELIVERY_REQUEST_NAME']) || !empty($data['DELIVERY_REQUEST_ERROR_DESCRIPTION']))
{
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DEL_REQ_INFO').'
';
if(!empty($data['DELIVERY_REQUEST_NAME']))
{
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DEL_REQ').':
'.$data['DELIVERY_REQUEST_NAME'].'
';
}
if(!empty($data['DELIVERY_REQUEST_ERROR_DESCRIPTION']))
{
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_DEL_REQ_ERROR').':
'.$data['DELIVERY_REQUEST_ERROR_DESCRIPTION'].'
';
}
$result.='
';
}
if(is_array($data['DELIVERY_ADDITIONAL_INFO_VIEW']) && !empty($data['DELIVERY_ADDITIONAL_INFO_VIEW']))
{
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BLOCK_DELIVERY_ADDITIONAL').'
';
foreach($data['DELIVERY_ADDITIONAL_INFO_VIEW'] as $name => $params)
{
$result .='
'.$params['LABEL'].':
'.BitrixSaleInternalsInputManager::getViewHtml($params).'
';
}
$result .= '
';
}
$result .= '
'.Loc::getMessage('SALE_ORDER_SHIPMENT_BASKET').'
';
$shipmentBasket = new OrderBasketShipment(self::$shipment, "BX.Sale.Admin.ShipmentBasketObj_".$index, "shipment_basket_".$index);
$result .= $shipmentBasket->getView($index);
$result .='
';
$result .= self::getShortViewTemplate($data, $index, $shortLogoPath, $formType);
$result .= '
';
$params = array(
'index' => $index,
'canAllow' => $isAllowDelivery,
'canDeduct' => $isAllowDeduction,
'canChangeStatus' => $canChangeStatus,
'id' => (int)$data['ID'],
'extra_service' => array(),
'shipment_statuses' => $jsShipmentStatus,
'isAjax' => true,
'active' => $isActive,
'discounts' => $data["DISCOUNTS"],
'discountsMode' => ($formType == "edit" ? "edit" : "view"),
'templateType' => 'view',
'weightKoef' => self::getWeightKoef($data['SITE_ID']),
'weightUnit' => self::getWeightUnit($data['SITE_ID'])
);
$result .= self::initJsShipment($params);
return $result;
}