From 20d57fd3cffc3276361e2435178c878304c94835 Mon Sep 17 00:00:00 2001 From: Roland Schneider Date: Tue, 2 Feb 2016 08:09:09 +0100 Subject: [PATCH] fix ticket discount calc on create --- common/models/Transfer.php | 3 +++ frontend/models/TicketCreate.php | 42 +++++++++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/common/models/Transfer.php b/common/models/Transfer.php index a70c5e7..8c1b555 100644 --- a/common/models/Transfer.php +++ b/common/models/Transfer.php @@ -430,6 +430,9 @@ class Transfer extends \common\models\BaseFitnessActiveRecord { return $transfer; } + + + public static function modelsToArray($transfers, $default = []) { if ($transfers == null) { return $default; diff --git a/frontend/models/TicketCreate.php b/frontend/models/TicketCreate.php index 610cbf6..fc9e61e 100644 --- a/frontend/models/TicketCreate.php +++ b/frontend/models/TicketCreate.php @@ -26,6 +26,7 @@ class TicketCreate extends Ticket{ public $_account; public $_discount; public $_transfer; + public $_ticketType; public $customer; @@ -92,6 +93,7 @@ class TicketCreate extends Ticket{ public function validateTicketType($attribute,$params){ $type = TicketType::findOne($this->id_ticket_type); + $this->_ticketType = $type; if ( !isset($type)) { $this->addError($attribute,Yii::t('frontend/ticket' , 'Invalid ticket type' )); }else{ @@ -185,8 +187,28 @@ class TicketCreate extends Ticket{ } protected function addTransfer(){ - $transfer = Transfer::createTicketTransfer($this->_account, $this->_discount, null, 1, $this); + //$transfer = Transfer::createTicketTransfer($this->_account, $this->_discount, null, 1, $this); + + $transfer = new Transfer(); + + $transfer->type = Transfer::TYPE_TICKET; + $transfer->direction = Transfer::DIRECTION_IN; + + $transfer->id_object = $this->id_ticket; + + $transfer->item_price = $this->_ticketType->price_brutto; + $transfer->count = 1; + + if (isset ( $this->_discount )) { + $transfer->id_discount = $this->_discount->id_discount; + } + + + $transfer->money = $this->price_brutto; + + $transfer->id_account = $this->_account->id_account; + $status = Transfer::STATUS_PAID; if ( $this->isAppendToUserCart() ){ $status = Transfer::STATUS_NOT_PAID; @@ -206,10 +228,15 @@ class TicketCreate extends Ticket{ } $transfer->id_user = \Yii::$app->user->id; $transfer->id_customer = $this->customer->id_customer; - $transfer->save(); + if ( !$transfer->save(false) ){ + \Yii::error("Nem sikerült mentenei a bérlet tranzakció objektumot!"); + throw new \Exception("Nem sikerült menteni a bérlet tranzakciót"); + } $this->_transfer = $transfer; } + + protected function addToCart(){ if ( $this->isAddToCart()){ $item = new UserSoldItem(); @@ -242,7 +269,10 @@ class TicketCreate extends Ticket{ $item = new UserSoldItem(); $item->id_transfer = $this->_transfer->id_transfer; $item->id_user = \Yii::$app->user->id; - $item->save(false); + if ( !$item->save(false) ){ + \Yii::error("Nem sikerült menteni a bérletet! Recepció kosár hozzárendelés sikertelen!"); + throw new \Exception("Nem sikerült menteni a bérletet! Recepció kosár hozzárendelés sikertelen!"); + } } } @@ -251,7 +281,11 @@ class TicketCreate extends Ticket{ $item = new ShoppingCart(); $item->id_customer = $this->customer->id_customer; $item->id_transfer = $this->_transfer->id_transfer; - $item->save(false); + if ( !$item->save(false) ){ + \Yii::error("Nem sikerült menteni a bérletet! Vendég kosár hozzárendelés sikertelen!"); + throw new \Exception("Nem sikerült menteni a bérletet! Vendég kosár hozzárendelés sikertelen!"); + } + } }