%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/lib/helpers/order/builder/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/lib/helpers/order/builder/director.php |
<?
namespace Bitrix\Sale\Helpers\Order\Builder;
use Bitrix\Crm\Order\Payment;
use Bitrix\Crm\Order\Shipment;
final class Director
{
public function createOrder(OrderBuilder $builder, array $data)
{
try{
$builder->build($data);
}
catch(BuildingException $e)
{
return null;
}
return $builder->getOrder();
}
/**
* @param OrderBuilder $builder
* @param array $shipmentData
* @return Shipment
* @throws \Bitrix\Main\ArgumentNullException
*/
public function getUpdatedShipment(OrderBuilder $builder, array $shipmentData)
{
try{
$builder->createOrder(
array(
'ID' => $shipmentData['ORDER_ID'],
'SITE_ID' => $shipmentData['SITE_ID'],
'SHIPMENT' => array($shipmentData)
))
->setDiscounts() //?
->buildShipments()
->setDiscounts() //?
->finalActions();
}
catch(BuildingException $e)
{
return null;
}
$order = $builder->getOrder();
$collection = $order->getShipmentCollection();
if((int)$shipmentData['ID'] > 0)
{
return $collection->getItemById($shipmentData['ID']);
}
else
{
foreach($collection as $shipment)
{
if($shipment->getId() <= 0)
{
return $shipment;
}
}
}
return null;
}
/**
* @param OrderBuilder $builder
* @param array $shipmentData
* @return Payment
* @throws \Bitrix\Main\ArgumentNullException
*/
public function getUpdatedPayment(OrderBuilder $builder, array $paymentData)
{
try{
$builder->createOrder(
array(
'ID' => $paymentData['ORDER_ID'],
'SITE_ID' => $paymentData['SITE_ID'],
'PAYMENT' => array($paymentData)
))
->setDiscounts()
->buildPayments()
->setDiscounts()
->finalActions();
}
catch(BuildingException $e)
{
return null;
}
$order = $builder->getOrder();
$collection = $order->getPaymentCollection();
if((int)$paymentData['ID'] > 0)
{
return $collection->getItemById($paymentData['ID']);
}
else
{
foreach($collection as $payment)
{
if($payment->getId() <= 0)
{
return $payment;
}
}
}
return null;
}
}