KataoOrderProduct.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Subclass for representing a row from the 'katao_order_product' table.
  4. *
  5. * @package lib.model
  6. */
  7. class KataoOrderProduct extends BaseKataoOrderProduct {
  8. public function getProductPriceWithoutTaxes() {
  9. return round($this->getProductPriceEuro() * (1 + $this->getProductMargin()), 2);
  10. }
  11. public function getProductPriceWithTaxes() {
  12. return round($this->getProductPriceEuro() * (1 + $this->getProductMargin()) * (1 + $this->getProductTvaRate()), 2);
  13. }
  14. public function getMembersWithoutProduct() {
  15. $return = KataoMemberPeer::getAll(false, false, $this->getKataoOrder()->getKataoNodeId());
  16. $criteria = new Criteria();
  17. $criteria->addSelectColumn(KataoUserPeer::ID);
  18. $criteria->addJoin(KataoUserPeer::ID, KataoCartPeer::KATAO_USER_ID);
  19. $criteria->addJoin(KataoUserPeer::KATAO_MEMBER_ID, KataoMemberPeer::ID);
  20. $criteria->addJoin(KataoCartPeer::ID, KataoCartProductPeer::KATAO_CART_ID);
  21. $criteria->add(KataoCartProductPeer::KATAO_ORDER_PRODUCT_ID, $this->getId());
  22. $rs = KataoUserPeer::doSelectRS($criteria);
  23. while ($rs->next()) {
  24. unset($return[$rs->getInt(1)]);
  25. }
  26. return $return;
  27. }
  28. /**
  29. * KataoOrderProduct::addProductToUser()
  30. *
  31. * @param int $katao_user_id
  32. * @param float $quantity
  33. * @return
  34. */
  35. public function addProductToUser($katao_user_id, $quantity) {
  36. if (null != $katao_user = KataoUserPeer::retrieveByPK($katao_user_id)) {
  37. $katao_order = $this->getKataoOrder();
  38. $katao_cart = $katao_user->getCart($katao_order->getKataoPeriodId(), $katao_order->getKataoNodeId());
  39. $katao_cart->setStatus(KataoCart::STATUS_VALIDATED);
  40. $katao_cart->save();
  41. $katao_cart_product = new KataoCartProduct();
  42. $katao_cart_product->setKataoCart($katao_cart);
  43. $katao_cart_product->setKataoProductId($this->getKataoProductId());
  44. $katao_cart_product->setProductReference($this->getProductReference());
  45. $katao_cart_product->setProductName($this->getProductName());
  46. $katao_cart_product->setProductPriceEuro($this->getProductPriceEuro());
  47. $katao_cart_product->setProductMargin($this->getProductMargin());
  48. $katao_cart_product->setProductTvaRate($this->getProductTvaRate());
  49. $katao_cart_product->setQuantity(0);
  50. $katao_cart_product->setKataoOrderProduct($this);
  51. $katao_cart_product->setQuantityAdjusted($quantity);
  52. $katao_cart_product->setHasBeenAdjusted(true);
  53. $katao_cart_product->save();
  54. }
  55. }
  56. }