- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/checkmanager.php
- Класс: BitrixSaleCashboxCheckManager
- Вызов: CheckManager::getRelatedEntitiesForShipment
static function getRelatedEntitiesForShipment($checkType, $shipmentId, $registryType = SaleRegistry::REGISTRY_TYPE_ORDER)
{
$result = array();
if (!Manager::isSupportedFFD105())
{
return $result;
}
$check = self::createByType($checkType);
if ($check === null)
{
throw new MainArgumentTypeException($checkType);
}
$registry = SaleRegistry::getInstance($registryType);
/** @var SaleShipment $shipmentClassName */
$shipmentClassName = $registry->getShipmentClassName();
$dbRes = $shipmentClassName::getList(array(
'select' => array('ORDER_ID'),
'filter' => array('=ID' => $shipmentId)
));
$shipmentData = $dbRes->fetch();
if (!$shipmentData)
{
return $result;
}
if ($check::getSupportedRelatedEntityType() === Check::SUPPORTED_ENTITY_TYPE_SHIPMENT
|| $check::getSupportedRelatedEntityType() === Check::SUPPORTED_ENTITY_TYPE_ALL
)
{
$dbRes = $shipmentClassName::getList(array(
'select' => array('ID', 'ACCOUNT_NUMBER', 'PRICE_DELIVERY', 'CURRENCY', 'NAME' => 'DELIVERY.NAME'),
'filter' => array(
'!ID' => $shipmentId,
'=ORDER_ID' => $shipmentData['ORDER_ID'],
'SYSTEM' => 'N'
)
));
while ($data = $dbRes->fetch())
{
$result['SHIPMENTS'][$data['ID']] = $data;
}
}
if ($check::getSupportedRelatedEntityType() === Check::SUPPORTED_ENTITY_TYPE_PAYMENT
|| $check::getSupportedRelatedEntityType() === Check::SUPPORTED_ENTITY_TYPE_ALL
)
{
/** @var SalePayment $paymentClassName */
$paymentClassName = $registry->getPaymentClassName();
$dbRes = $paymentClassName::getList(array(
'select' => array('ID', 'ACCOUNT_NUMBER', 'SUM', 'CURRENCY', 'NAME' => 'PAY_SYSTEM.NAME'),
'filter' => array(
'=ORDER_ID' => $shipmentData['ORDER_ID']
)
));
while ($data = $dbRes->fetch())
{
$data['PAYMENT_TYPES'] = array(
array(
'CODE' => SaleCashboxCheck::PAYMENT_TYPE_ADVANCE,
'NAME' => Loc::getMessage('SALE_CASHBOX_CHECK_ADVANCE'),
),
array(
'CODE' => SaleCashboxCheck::PAYMENT_TYPE_CREDIT,
'NAME' => Loc::getMessage('SALE_CASHBOX_CHECK_CREDIT'),
)
);
$result['PAYMENTS'][$data['ID']] = $data;
}
}
return $result;
}