Version 4.0.13.1
This commit is contained in:
1 parent
f9e857d255
commit
c6a86f0d9b
7517 files changed
+597400
-668041
No files matched your search
@@ -0,0 +1,163 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief Renewal Term Object
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Social Suite
|
||||
* @subpackage Nexus
|
||||
* @since 13 Feb 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\nexus\Purchase;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renewal Term Object
|
||||
*/
|
||||
class _RenewalTerm
|
||||
{
|
||||
/**
|
||||
* @brief Cost
|
||||
*/
|
||||
public $cost;
|
||||
|
||||
/**
|
||||
* @brief Interval
|
||||
*/
|
||||
public $interval;
|
||||
|
||||
/**
|
||||
* @brief Tax
|
||||
*/
|
||||
public $tax;
|
||||
|
||||
/**
|
||||
* @brief Add to base price?
|
||||
*/
|
||||
public $addToBase = FALSE;
|
||||
|
||||
/**
|
||||
* @brief Grace period
|
||||
*/
|
||||
public $gracePeriod;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param \IPS\nexus\Money|array $cost Cost
|
||||
* @param \DateInterval $interval Interval
|
||||
* @param \IPS\nexus\Tax|NULL $tax Tax
|
||||
* @param bool $addToBase Add to base?
|
||||
* @param \DateInterval|NULL $gracePeriod Grace period
|
||||
* @return void
|
||||
*/
|
||||
public function __construct( $cost, \DateInterval $interval, \IPS\nexus\Tax $tax = NULL, $addToBase = FALSE, \DateInterval $gracePeriod = NULL )
|
||||
{
|
||||
$this->cost = $cost;
|
||||
$this->interval = $interval;
|
||||
$this->tax = $tax;
|
||||
$this->addToBase = $addToBase;
|
||||
$this->gracePeriod = $gracePeriod;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get term
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getTerm()
|
||||
{
|
||||
if( $this->interval->y )
|
||||
{
|
||||
return array( 'term' => $this->interval->y, 'unit' => 'y' );
|
||||
}
|
||||
elseif( $this->interval->m )
|
||||
{
|
||||
return array( 'term' => $this->interval->m, 'unit' => 'm' );
|
||||
}
|
||||
else
|
||||
{
|
||||
return array( 'term' => $this->interval->d, 'unit' => 'd' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get term unit
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTermUnit()
|
||||
{
|
||||
$term = $this->getTerm();
|
||||
$lang = \IPS\Member::loggedIn()->language();
|
||||
switch( $term['unit'] )
|
||||
{
|
||||
case 'd':
|
||||
return $lang->pluralize( $lang->get('renew_days'), array( $term['term'] ) );
|
||||
case 'm':
|
||||
return $lang->pluralize( $lang->get('renew_months'), array( $term['term'] ) );
|
||||
case 'y':
|
||||
return $lang->pluralize( $lang->get('renew_years'), array( $term['term'] ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Number of days
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function days()
|
||||
{
|
||||
$days = 0;
|
||||
if ( $this->interval->y )
|
||||
{
|
||||
$days += ( 365 * $this->interval->y );
|
||||
}
|
||||
if ( $this->interval->m )
|
||||
{
|
||||
$days += ( ( 365 / 12 ) * $this->interval->m );
|
||||
}
|
||||
if ( $this->interval->d )
|
||||
{
|
||||
$days += $this->interval->d;
|
||||
}
|
||||
return $days;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate cost per day
|
||||
*
|
||||
* @return \IPS\nexus\Money Cost per day
|
||||
*/
|
||||
public function costPerDay()
|
||||
{
|
||||
$days = $this->days();
|
||||
if ( !$days )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new \IPS\nexus\Money( $this->cost->amount / $days, $this->cost->currency );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To String
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
//return \IPS\Member::loggedIn()->language()->addToStack( 'renew_option', FALSE, array( 'sprintf' => array( $this->cost, $this->getTermUnit() ) ) );
|
||||
return sprintf( \IPS\Member::loggedIn()->language()->get( 'renew_option'), $this->cost, $this->getTermUnit() ) ;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user