_locked) return false; $taxName = HIPAY_MAPI_UTF8::forceUTF8($taxName); $len = HIPAY_MAPI_UTF8::strlen_utf8($taxName); if ($len < 1 || $len > HIPAY_MAPI_MAX_TAX_NAME_LENGTH) return false; $this->taxName = $taxName; return true; } /** * retourne le nom de la taxe * * @return string nom de la taxe */ public function getTaxName() { return $this->taxName; } /** * assigne la valeur de la taxe * * @param float $taxVal valeur de la taxe * @param boolean $percentage true si la valeur de la taxe est un pourcentage * @return boolean true si l'assignation s'est bien déroulée */ public function setTaxVal($taxVal, $percentage = true) { if ($this->_locked) return false; if (!is_bool($percentage)) return false; $taxVal = sprintf('%.02f', (float)$taxVal); if ($percentage && ($taxVal <= 0 || $taxVal > 100)) return false; $this->taxVal = $taxVal; $this->percentage = $percentage; return true; } /** * retourne la valeur de la taxe * * @return float valeur de la taxe */ public function getTaxVal() { return $this->taxVal; } /** * détermine si la valeur de la taxe est un pourcentage * * @return boolean true si la valeur de la taxe est un pourcentage */ public function isPercentage() { return $this->percentage; } /** * effectue une vérification des propriétés de la taxe * * @return boolean true si les propriétés de la taxe sont correctes */ public function check() { if ($this->taxName == '' || $this->taxVal < 0) throw new Exception('Tax name or Tax value not initialized'); return true; } /** * initilise les propriétés de la taxe * */ protected function init() { $this->taxVal = -1; $this->taxName = ''; $this->percentage = false; $this->_amount = 0; $this->_locked = false; } /** * assigne le montant calculé de la taxe * * @param float $amount montant calculé * @return boolean true si l'assignation s'est bien déroulée */ public function setTaxAmount($amount) { if ($this->_locked) return false; $amount = (float)$amount; if ($amount < 0) $amount = 0; $this->_amount = sprintf("%.02f", $amount); return true; } /** * retourne le montant calculé de la taxe * * @return float montant calculé */ public function getTaxAmount() { return $this->_amount; } /** * constructeur * */ function __construct() { $this->init(); parent::__construct(); } }