Source of file TransactionInterface.php
Size: 3,522 Bytes - Last Modified: 2021-12-24T06:51:34+00:00
/var/www/docs.ssmods.com/process/src/src/Transaction/Interfaces/TransactionInterface.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | <?php /** * This file is part of the Ecommerce-Core package * * @package Ecommerce-Core */ /** * Interfaces namespace */ namespace Heystack\Ecommerce\Transaction\Interfaces; use Heystack\Core\Storage\StorableInterface; /** * Defines what functions a Transaction Class needs to implement * * @copyright Heyday * @author Glenn Bautista <glenn@heyday.co.nz> * @package Ecommerce-Core */ interface TransactionInterface extends StorableInterface { /** * Add a TransactionModifier to the Transaction * @param \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface $modifier * @return void */ public function addModifier(TransactionModifierInterface $modifier); /** * Returns a TransactionModifier based on the identifier * @param string $identifier * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface */ public function getModifier($identifier); /** * Returns all the TransactionModifiers held by the Transaction object * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[] */ public function getModifiers(); /** * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[] */ public function getChargeableModifiers(); /** * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[] */ public function getDeductibleModifiers(); /** * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[] */ public function getNeutralModifiers(); /** * Returns modifiers on the transaction by TranactionModifierType * @param string $type * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[] */ public function getModifiersByType($type); /** * Returns the aggregate total of the TransactionModifers held by the Transaction object * @return \SebastianBergmann\Money\Money */ public function getTotal(); /** * Update the aggregate total of the TransactionModifers held by the Transaction object * @return void */ public function updateTotal(); /** * Retrieves the total without adding excluded modifiers * @param array $exclude an array of identifiers to be excluded * @return \SebastianBergmann\Money\Money */ public function getTotalWithExclusions(array $exclude); /** * @param array $exclude * @return \SebastianBergmann\Money\Money */ public function getChargeableTotalWithExclusions(array $exclude); /** * @param array $exclude * @return \SebastianBergmann\Money\Money */ public function getDeductibleTotalWithExclusions(array $exclude); /** * @param \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface $modifier * @param \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[]|void $fromModifiers * @return \Heystack\Ecommerce\Transaction\Interfaces\TransactionModifierInterface[] */ public function getLinkedModifers(TransactionModifierInterface $modifier, array $fromModifiers = null); /** * Sets the status of the transaction * @param string $status the status of the transaction * @return void */ public function setStatus($status); /** * Retrieves the Transaction's status * @return string */ public function getStatus(); } |