Initial import: Carteasy Shop (Dev-Stand)
This commit is contained in:
@@ -0,0 +1,573 @@
|
||||
<?php
|
||||
/**
|
||||
* KlarnaPClass
|
||||
*
|
||||
* PHP Version 5.3
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @category Payment
|
||||
* @package KlarnaAPI
|
||||
* @author MS Dev <ms.modules@klarna.com>
|
||||
* @copyright 2012 Klarna AB (http://klarna.com)
|
||||
* @license http://opensource.org/licenses/BSD-2-Clause BSD-2
|
||||
* @link http://integration.klarna.com/
|
||||
*/
|
||||
|
||||
/**
|
||||
* PClass object used for part payment.
|
||||
*
|
||||
* PClasses are used in conjunction with KlarnaCalc to determine part payment costs.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @category Payment
|
||||
* @package KlarnaAPI
|
||||
* @author MS Dev <ms.modules@klarna.com>
|
||||
* @copyright 2012 Klarna AB (http://klarna.com)
|
||||
* @license http://opensource.org/licenses/BSD-2-Clause BSD-2
|
||||
* @link http://integration.klarna.com/
|
||||
*/
|
||||
class KlarnaPClass
|
||||
{
|
||||
|
||||
/**
|
||||
* Invoice type/identifier, used for invoice purchases.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const INVOICE = -1;
|
||||
|
||||
/**
|
||||
* Campaign type pclass.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const CAMPAIGN = 0;
|
||||
|
||||
/**
|
||||
* Account type pclass.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const ACCOUNT = 1;
|
||||
|
||||
/**
|
||||
* Special campaign type pclass.<br>
|
||||
* "Buy now, pay in x month"<br>
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const SPECIAL = 2;
|
||||
|
||||
/**
|
||||
* Fixed campaign type pclass
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const FIXED = 3;
|
||||
|
||||
/**
|
||||
* Delayed campaign type pclass.<br>
|
||||
* "Pay in X months"<br>
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const DELAY = 4;
|
||||
|
||||
/**
|
||||
* Klarna Mobile type pclass
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const MOBILE = 5;
|
||||
|
||||
/**
|
||||
* The description for this PClass.
|
||||
* HTML entities for special characters.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var string
|
||||
*/
|
||||
protected $description;
|
||||
|
||||
/**
|
||||
* Number of months for this PClass.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var int
|
||||
*/
|
||||
protected $months;
|
||||
|
||||
/**
|
||||
* PClass starting fee.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var float
|
||||
*/
|
||||
protected $startFee;
|
||||
|
||||
/**
|
||||
* PClass invoice/handling fee.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var float
|
||||
*/
|
||||
protected $invoiceFee;
|
||||
|
||||
/**
|
||||
* PClass interest rate.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var float
|
||||
*/
|
||||
protected $interestRate;
|
||||
|
||||
/**
|
||||
* PClass minimum amount for purchase/product.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var float
|
||||
*/
|
||||
protected $minAmount;
|
||||
|
||||
/**
|
||||
* PClass country.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @see KlarnaCountry
|
||||
* @var int
|
||||
*/
|
||||
protected $country;
|
||||
|
||||
/**
|
||||
* PClass ID.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var int
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* PClass type.
|
||||
*
|
||||
* @see self::CAMPAIGN
|
||||
* @see self::ACCOUNT
|
||||
* @see self::SPECIAL
|
||||
* @see self::FIXED
|
||||
* @see self::DELAY
|
||||
* @see self::MOBILE
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var int
|
||||
*/
|
||||
protected $type;
|
||||
|
||||
/**
|
||||
* Expire date / valid until date as unix timestamp.<br>
|
||||
* Compare it with e.g. $_SERVER['REQUEST_TIME'].<br>
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var int
|
||||
*/
|
||||
protected $expire;
|
||||
|
||||
/**
|
||||
* Merchant ID / Estore ID.
|
||||
*
|
||||
* @ignore Do not show in PHPDoc.
|
||||
* @var int
|
||||
*/
|
||||
protected $eid;
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
*
|
||||
* The optional array argument can be:
|
||||
* array (
|
||||
* 0 = eid (this is created in the API)
|
||||
* 1 = id number
|
||||
* 2 = description
|
||||
* 3 = amount of months for part payment
|
||||
* 4 = start fee
|
||||
* 5 = invoice fee
|
||||
* 6 = interest rate
|
||||
* 7 = minimum purchase amount for pclass
|
||||
* 8 = country
|
||||
* 9 = type
|
||||
* (This is used to determine which pclass-id is an account and
|
||||
* a campaign, 0 = campaign, 1 = account, 2 = special campaign
|
||||
* i.e. x-mas campaign)
|
||||
* 10 = expire date
|
||||
*
|
||||
* @param null|array $arr Associative or numeric array of PClass data.
|
||||
*/
|
||||
public function __construct($arr = null)
|
||||
{
|
||||
if (!is_array($arr) || count($arr) < 11) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($arr as $key => $val) {
|
||||
switch($key) {
|
||||
case "0":
|
||||
case "eid":
|
||||
$this->setEid($val);
|
||||
break;
|
||||
case "1":
|
||||
case "id":
|
||||
$this->setId($val);
|
||||
break;
|
||||
case "2":
|
||||
case "desc":
|
||||
case "description":
|
||||
$this->setDescription($val);
|
||||
break;
|
||||
case "3":
|
||||
case "months":
|
||||
$this->setMonths($val);
|
||||
break;
|
||||
case "4":
|
||||
case "startfee":
|
||||
$this->setStartFee($val);
|
||||
break;
|
||||
case "5":
|
||||
case "invoicefee":
|
||||
$this->setInvoiceFee($val);
|
||||
break;
|
||||
case "6":
|
||||
case "interestrate":
|
||||
$this->setInterestRate($val);
|
||||
break;
|
||||
case "7":
|
||||
case "minamount":
|
||||
$this->setMinAmount($val);
|
||||
break;
|
||||
case "8":
|
||||
case "country":
|
||||
$this->setCountry($val);
|
||||
break;
|
||||
case "9":
|
||||
case "type":
|
||||
$this->setType($val);
|
||||
break;
|
||||
case "10":
|
||||
case "expire":
|
||||
$this->setExpire($val);
|
||||
break;
|
||||
default:
|
||||
//Array index not supported.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an associative array mirroring this PClass.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
return array(
|
||||
'eid' => $this->eid,
|
||||
'id' => $this->id,
|
||||
'description' => $this->description,
|
||||
'months' => $this->months,
|
||||
'startfee' => $this->startFee,
|
||||
'invoicefee' => $this->invoiceFee,
|
||||
'interestrate' => $this->interestRate,
|
||||
'minamount' => $this->minAmount,
|
||||
'country' => $this->country,
|
||||
'type' => $this->type,
|
||||
'expire' => $this->expire
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the descriptiton, converts to HTML entities.
|
||||
*
|
||||
* @param string $description PClass description.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setDescription($description)
|
||||
{
|
||||
$this->description = $description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number of months.
|
||||
*
|
||||
* @param int $months Number of months.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMonths($months)
|
||||
{
|
||||
$this->months = intval($months);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the starting fee.
|
||||
*
|
||||
* @param float $startFee Starting fee.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setStartFee($startFee)
|
||||
{
|
||||
$this->startFee = floatval($startFee);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the invoicing/handling fee.
|
||||
*
|
||||
* @param float $invoiceFee Invoicing fee.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setInvoiceFee($invoiceFee)
|
||||
{
|
||||
$this->invoiceFee = floatval($invoiceFee);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the interest rate.
|
||||
*
|
||||
* @param float $interestRate Interest rate.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setInterestRate($interestRate)
|
||||
{
|
||||
$this->interestRate = floatval($interestRate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the Minimum amount to use this PClass.
|
||||
*
|
||||
* @param float $minAmount Minimum amount.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMinAmount($minAmount)
|
||||
{
|
||||
$this->minAmount = floatval($minAmount);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the country for this PClass.
|
||||
*
|
||||
* @param int $country {@link KlarnaCountry} constant.
|
||||
*
|
||||
* @see KlarnaCountry
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setCountry($country)
|
||||
{
|
||||
$this->country = intval($country);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ID for this pclass.
|
||||
*
|
||||
* @param int $id PClass identifier.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setId($id)
|
||||
{
|
||||
$this->id = intval($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the type for this pclass.
|
||||
*
|
||||
* @param int $type PClass type identifier.
|
||||
*
|
||||
* @see self::CAMPAIGN
|
||||
* @see self::ACCOUNT
|
||||
* @see self::SPECIAL
|
||||
* @see self::FIXED
|
||||
* @see self::DELAY
|
||||
* @see self::MOBILE
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
$this->type = intval($type);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the ID for this PClass.
|
||||
*
|
||||
* @return int PClass identifier.
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns this PClass's type.
|
||||
*
|
||||
* @see self::CAMPAIGN
|
||||
* @see self::ACCOUNT
|
||||
* @see self::SPECIAL
|
||||
* @see self::FIXED
|
||||
* @see self::DELAY
|
||||
* @see self::MOBILE
|
||||
*
|
||||
* @return int PClass type identifier.
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Merchant ID or Estore ID connected to this PClass.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getEid()
|
||||
{
|
||||
return $this->eid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Merchant ID or Estore ID connected to this PClass.
|
||||
*
|
||||
* @param int $eid Merchant ID.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setEid($eid)
|
||||
{
|
||||
$this->eid = intval($eid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether this PClass is valid.
|
||||
*
|
||||
* @param int $now Unix timestamp
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isValid($now = null)
|
||||
{
|
||||
if ($this->expire == null
|
||||
|| $this->expire == '-'
|
||||
|| $this->expire <= 0
|
||||
) {
|
||||
//No expire, or unset? assume valid.
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($now === null || !is_numeric($now)) {
|
||||
$now = time();
|
||||
}
|
||||
|
||||
//If now is before expire, it is still valid.
|
||||
return ($now > $this->expire) ? false : true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the valid until/expire date unix timestamp.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getExpire()
|
||||
{
|
||||
return $this->expire;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the valid until/expire date unix timestamp.
|
||||
*
|
||||
* @param int $expire unix timestamp for expire
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setExpire($expire)
|
||||
{
|
||||
$this->expire = $expire;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the description for this PClass.
|
||||
*
|
||||
* <b>Note</b>:<br>
|
||||
* Encoded with HTML entities.
|
||||
*
|
||||
* @return string PClass description.
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of months for this PClass.
|
||||
*
|
||||
* @return int Number of months.
|
||||
*/
|
||||
public function getMonths()
|
||||
{
|
||||
return $this->months;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the starting fee for this PClass.
|
||||
*
|
||||
* @return float Starting fee.
|
||||
*/
|
||||
public function getStartFee()
|
||||
{
|
||||
return $this->startFee;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the invoicing/handling fee for this PClass.
|
||||
*
|
||||
* @return float Invoicing fee.
|
||||
*/
|
||||
public function getInvoiceFee()
|
||||
{
|
||||
return $this->invoiceFee;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the interest rate for this PClass.
|
||||
*
|
||||
* @return float Interest rate.
|
||||
*/
|
||||
public function getInterestRate()
|
||||
{
|
||||
return $this->interestRate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the minimum order/product amount for which this PClass is allowed.
|
||||
*
|
||||
* @return float Minimum amount to use this PClass.
|
||||
*/
|
||||
public function getMinAmount()
|
||||
{
|
||||
return $this->minAmount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the country related to this PClass.
|
||||
*
|
||||
* @see KlarnaCountry
|
||||
* @return int {@link KlarnaCountry} constant.
|
||||
*/
|
||||
public function getCountry()
|
||||
{
|
||||
return $this->country;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user