/**
  * Retourne le montant total de la somme devant être
  * distribuée aux affiliés
  */
 protected function _getTotalAmountForAffiliates($installement_nr)
 {
     $affiliates = $this->order[0]->getAffiliate();
     if (!HIPAY_MAPI_UTILS::is_an_array_of($affiliates, 'HIPAY_MAPI_Affiliate')) {
         return false;
     }
     $total_aff = 0;
     foreach ($affiliates as $aff) {
         $total_aff += $aff->getAmount();
     }
     return $total_aff;
 }
Esempio n. 2
0
 /**
  * Vérifie si l'objet est correctement initialisé
  *
  * @return float
  */
 public function check()
 {
     if ($this->price < 0) {
         throw new Exception('Montant invalide ou pas initilisé');
     }
     if (!HIPAY_MAPI_UTILS::is_an_array_of($this->tax, 'HIPAY_MAPI_Tax')) {
         throw new Exception('Taxes invalides ou pas initialisées');
     }
     foreach ($this->tax as $obj) {
         if (!$obj->check()) {
             return false;
         }
     }
     if (!is_bool($this->first)) {
         throw new Exception('Premier paiement ou suivant n\'est pas initialisé');
     }
     return true;
 }
Esempio n. 3
0
 /**
  * Vérifie que l'objet est correctement initialisé
  *
  * @return boolean
  */
 public function check()
 {
     //if ($this->name=='' || $this->quantity<0 || $this->category<0 || $this->price<0 || !HIPAY_MAPI_UTILS::is_an_array_of($this->tax,'HIPAY_MAPI_Tax'))
     if ($this->name == '' || $this->quantity < 0 || $this->category < 0 || !HIPAY_MAPI_UTILS::is_an_array_of($this->tax, 'HIPAY_MAPI_Tax')) {
         throw new Exception('L\'objet n\'à pas été initialisé. Vous devez préciser un nom de produit, une quantité, un prix, une catégorie et des taxes');
     }
     foreach ($this->tax as $obj) {
         if (!$obj->check()) {
             return false;
         }
     }
     return true;
 }
Esempio n. 4
0
 /**
  * Calcul le montant des taxes
  *
  */
 protected function computeTaxes()
 {
     // Taxes sur les produits au niveau de l'item (ligne de commande)
     // @FIXME bug et confusion entre indice d'item et indice d'order ?
     $cur = 0;
     // pour chaque ligne de commande
     foreach ($this->items as $item) {
         // Liste des taxes de la ligne
         $itemTaxes = $item->getTax();
         $tItemsAmount = 0;
         // pour chaque taxe appliquée sur cette ligne
         foreach ($itemTaxes as $tax) {
             $amount = HIPAY_MAPI_UTILS::computeTax($item->getPrice(), $tax);
             $tax->setTaxAmount($amount);
             $tax->lock();
             // mise a jour du montant total des taxes pour cet item (ligne de commande)
             $tItemsAmount += $amount;
         }
         if (!isset($this->order[$cur])) {
             $cur = 0;
         }
         if (!isset($this->_taxItemsAmount[$cur])) {
             $this->_taxItemsAmount[$cur] = 0;
         }
         // mise a jour du montant total des taxes pour cette ligne de commande
         // avec prise en compte du nombre de produits dans l'indice numLigneCommande
         // du tableau _taxItemsAmount de cette commande
         $this->_taxItemsAmount[$cur] += $tItemsAmount * $item->getQuantity();
         $item->lock();
         $cur++;
     }
     // Taxes sur frais d'envoi, assurances, coûts fixes
     // au niveau des commandes
     $cur = 0;
     foreach ($this->order as $order) {
         // Taxes sur frais d'envoi
         $taxArr =& $order->getShippingTax();
         foreach ($taxArr as $key => $tax) {
             $amount = HIPAY_MAPI_UTILS::computeTax($order->getShippingAmount(), $tax);
             $taxArr[$key]->setTaxAmount($amount);
             $taxArr[$key]->lock();
             if (!isset($this->_taxShippingAmount[$cur])) {
                 $this->_taxShippingAmount[$cur] = 0;
             }
             $this->_taxShippingAmount[$cur] += $amount;
         }
         // Taxes sur assurances
         $taxArr =& $order->getInsuranceTax();
         foreach ($taxArr as $key => $tax) {
             $amount = HIPAY_MAPI_UTILS::computeTax($order->getInsuranceAmount(), $tax);
             $taxArr[$key]->setTaxAmount($amount);
             $taxArr[$key]->lock();
             if (!isset($this->_taxInsuranceAmount[$cur])) {
                 $this->_taxInsuranceAmount[$cur] = 0;
             }
             $this->_taxInsuranceAmount[$cur] += $amount;
         }
         // Taxes sur coûts fixes
         $taxArr =& $order->getFixedCostTax();
         foreach ($taxArr as $key => $tax) {
             $amount = HIPAY_MAPI_UTILS::computeTax($order->getFixedCostAmount(), $tax);
             $taxArr[$key]->setTaxAmount($amount);
             $taxArr[$key]->lock();
             if (!isset($this->_taxFixedCostAmount[$cur])) {
                 $this->_taxFixedCostAmount[$cur] = 0;
             }
             $this->_taxFixedCostAmount[$cur] += $amount;
         }
         $cur++;
     }
 }
Esempio n. 5
0
 /**
  * Défini les affiliés qui recevront une rétribution pour cette commande
  *
  * @param array $affiliate
  * @return boolean
  */
 public function setAffiliate($affiliate)
 {
     if ($this->_locked) {
         return false;
     }
     if (empty($affiliate)) {
         return false;
     }
     if (!HIPAY_MAPI_UTILS::is_an_array_of($affiliate, 'HIPAY_MAPI_Affiliate')) {
         return false;
     }
     foreach ($affiliate as $obj) {
         $this->affiliate[] = clone $obj;
     }
     return true;
 }
 /**
  * Assigne l'url du logo du marchand
  *
  * @param string $logo_url
  * @return boolean
  */
 public function setLogoUrl($logo_url)
 {
     if ($this->_locked) {
         return false;
     }
     $logo_url = trim($logo_url);
     if (!HIPAY_MAPI_UTILS::checkURL($logo_url) && $logo_url != '') {
         return false;
     }
     $this->logo_url = $logo_url;
     return true;
 }
Esempio n. 7
0
 /**
  * Vérifie que l'objet est correctement initialisé
  *
  * @return boolean
  */
 public function check()
 {
     if ($this->name == '' || $this->quantity < 0 || $this->category < 0 || $this->price < 0 || !HIPAY_MAPI_UTILS::is_an_array_of($this->tax, 'HIPAY_MAPI_Tax')) {
         throw new Exception('Object not initialized. Please precise a product name, quantity, price, category and taxes');
     }
     foreach ($this->tax as $obj) {
         if (!$obj->check()) {
             return false;
         }
     }
     return true;
 }