1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
<?php
/* --------------------------------------------------------------
OrderTotalRepository.inc.php 2015-11-03 gm
Gambio GmbH
http://www.gambio.de
Copyright (c) 2015 Gambio GmbH
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
*/
MainFactory::load_class('OrderTotalRepositoryInterface');
/**
* Class OrderTotalRepository
*
* @category System
* @package Order
* @subpackage Repositories
*/
class OrderTotalRepository implements OrderTotalRepositoryInterface
{
/**
* Order total repository reader.
* @var OrderTotalRepositoryReaderInterface
*/
protected $orderTotalRepositoryReader;
/**
* Order total repository writer.
* @var OrderTotalRepositoryWriterInterface
*/
protected $orderTotalRepositoryWriter;
/**
* #Order total repository deleter.
* @var OrderTotalRepositoryDeleterInterface
*/
protected $orderTotalRepositoryDeleter;
/**
* OrderTotalRepository constructor.
*
* @param OrderTotalRepositoryReader $orderTotalRepositoryReader Order total repository reader.
* @param OrderTotalRepositoryWriter $orderTotalRepositoryWriter Order total repository writer.
* @param OrderTotalRepositoryDeleter $orderTotalRepositoryDeleter Order total repository deleter.
*/
public function __construct(OrderTotalRepositoryReader $orderTotalRepositoryReader,
OrderTotalRepositoryWriter $orderTotalRepositoryWriter,
OrderTotalRepositoryDeleter $orderTotalRepositoryDeleter)
{
$this->orderTotalRepositoryReader = $orderTotalRepositoryReader;
$this->orderTotalRepositoryWriter = $orderTotalRepositoryWriter;
$this->orderTotalRepositoryDeleter = $orderTotalRepositoryDeleter;
}
/**
* Adds an order total object to the order.
*
* @param IdType $orderId ID of order.
* @param OrderTotalInterface $orderTotal Order total object.
*
* @return int ID of stored order total.
*/
public function addToOrder(IdType $orderId, OrderTotalInterface $orderTotal)
{
return $this->orderTotalRepositoryWriter->insertIntoOrder($orderId, $orderTotal);
}
/**
* Updates a stored order total object.
*
* @param StoredOrderTotalInterface $orderTotal Order total.
*
* @return OrderTotalRepository Same instance for method chaining.
*/
public function store(StoredOrderTotalInterface $orderTotal)
{
$this->orderTotalRepositoryWriter->update($orderTotal);
return $this;
}
/**
* Returns an order total object by the given ID.
*
* @param IdType $orderTotalId ID of order total in database table.
*
* @return StoredOrderTotal Fetched order total.
*/
public function getTotalById(IdType $orderTotalId)
{
return $this->orderTotalRepositoryReader->getTotalById($orderTotalId);
}
/**
* Returns an collection of order total objects by the given order ID.
*
* @param IdType $orderId ID of the order in the database table.
*
* @return StoredOrderTotalCollection Fetched order total collection.
*/
public function getTotalsByOrderId(IdType $orderId)
{
return $this->orderTotalRepositoryReader->getTotalsByOrderId($orderId);
}
/**
* Removes an order total by the given order total ID.
*
* @param IdType $orderTotalId ID of order total in the database table.
*
* @return OrderTotalRepository Same instance for method chaining.
*/
public function deleteTotalById(IdType $orderTotalId)
{
$this->orderTotalRepositoryDeleter->deleteTotalById($orderTotalId);
return $this;
}
/**
* Removes multiple order totals by the given order ID.
*
* @param IdType $orderId Order ID.
*
* @return OrderTotalRepository Same instance for method chaining.
*/
public function deleteTotalsByOrderId(IdType $orderId)
{
$this->orderTotalRepositoryDeleter->deleteTotalsByOrderId($orderId);
return $this;
}
}