fix displaying available accounts on frontend/sellTicket

This commit is contained in:
2017-05-16 08:10:57 +02:00
parent 4d22e60760
commit 22cf5883ac
3 changed files with 32 additions and 15 deletions

View File

@@ -6,6 +6,8 @@ use Yii;
use yii\behaviors\TimestampBehavior; use yii\behaviors\TimestampBehavior;
use yii\helpers\ArrayHelper; use yii\helpers\ArrayHelper;
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
/** /**
* This is the model class for table "account". * This is the model class for table "account".
* *
@@ -86,7 +88,7 @@ class Account extends \yii\db\ActiveRecord
public function getStatusHuman(){ public function getStatusHuman(){
$result = null; $result = null;
$s = self::statuses($this->status); $s = self::statuses();
if ( array_key_exists($this->status, $s)){ if ( array_key_exists($this->status, $s)){
$result = $s[$this->status]; $result = $s[$this->status];
} }
@@ -102,7 +104,7 @@ class Account extends \yii\db\ActiveRecord
public function getTypeHuman(){ public function getTypeHuman(){
$result = null; $result = null;
$s = self::types($this->type); $s = self::types();
if ( array_key_exists($this->type, $s)){ if ( array_key_exists($this->type, $s)){
$result = $s[$this->type]; $result = $s[$this->type];
} }
@@ -112,14 +114,17 @@ class Account extends \yii\db\ActiveRecord
public function isInactive(){ public function isInactive(){
return $this->status == self::STATUS_DELETED; return $this->status == self::STATUS_DELETED;
} }
/** /**
* $param int $forceIncludeAccount id account, that should be included in list, even if it is inactive * $param int $forceIncludeAccount id account, that should be included in list, even if it is inactive
* */ * @param null $forceIncludeAccount the next account should be included too, even if it is not
* allowed for user
* @return array|null|\yii\db\ActiveRecord[]
*/
public static function readAccounts($forceIncludeAccount = null){ public static function readAccounts($forceIncludeAccount = null){
$accounts = null; $accounts = null;
if ( $forceIncludeAccount == null){ if ( $forceIncludeAccount == null) {
$accounts = Account::find()->andWhere(['status' => Account::STATUS_ACTIVE])->all(); $accounts = Account::find()->andWhere(['status' => Account::STATUS_ACTIVE])->all();
}else{ }else{
$accounts = Account::find()->andWhere( ['or', ['status' => Account::STATUS_ACTIVE], ['id_account' => $forceIncludeAccount ] ])->all(); $accounts = Account::find()->andWhere( ['or', ['status' => Account::STATUS_ACTIVE], ['id_account' => $forceIncludeAccount ] ])->all();
@@ -134,6 +139,7 @@ class Account extends \yii\db\ActiveRecord
$query->innerJoinWith('userAccountAssignments'); $query->innerJoinWith('userAccountAssignments');
$query->andWhere(['user_account_assignment.id_user' => Yii::$app->user->id]); $query->andWhere(['user_account_assignment.id_user' => Yii::$app->user->id]);
if ( $forceIncludeAccount == null){ if ( $forceIncludeAccount == null){
$query->andWhere(['status' => Account::STATUS_ACTIVE])->all(); $query->andWhere(['status' => Account::STATUS_ACTIVE])->all();
}else{ }else{
@@ -166,7 +172,7 @@ class Account extends \yii\db\ActiveRecord
/** /**
* read default transfer object * read default transfer object
* return the default account or null, if not found * return the default account or null, if not found
* @return common\models\Account * @return \common\models\Account
* */ * */
public static function readDefaultObject( ){ public static function readDefaultObject( ){
$account = null; $account = null;
@@ -176,11 +182,13 @@ class Account extends \yii\db\ActiveRecord
} }
return $account; return $account;
} }
/** /**
* read assigned account * read assigned account.
* */ * @param $idAccount integer The id of the account to read
* @return array|null|\yii\db\ActiveRecord
*/
public static function readOne($idAccount){ public static function readOne($idAccount){
$accounts = null; $accounts = null;

View File

@@ -8,6 +8,8 @@ use yii\db\Query;
use yii\db\Expression; use yii\db\Expression;
use common\components\Helper; use common\components\Helper;
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
/** /**
* This is the model class for table "ticket". * This is the model class for table "ticket".
* *
@@ -30,6 +32,8 @@ use common\components\Helper;
* @property string $created_at * @property string $created_at
* @property string $updated_at * @property string $updated_at
* @property int id_contract * @property int id_contract
*
* @property \common\models\Card card
*/ */
class Ticket extends \common\models\BaseFitnessActiveRecord class Ticket extends \common\models\BaseFitnessActiveRecord
{ {

View File

@@ -2,18 +2,16 @@
namespace frontend\controllers; namespace frontend\controllers;
use Exception;
use Yii; use Yii;
use common\models\Ticket; use common\models\Ticket;
use frontend\models\TicketSearch; use frontend\models\TicketSearch;
use frontend\models\ReceptionForm;
use frontend\models\TicketCreate; use frontend\models\TicketCreate;
use yii\web\Controller;
use yii\web\NotFoundHttpException; use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter; use yii\filters\VerbFilter;
use common\models\Discount; use common\models\Discount;
use common\models\TicketType; use common\models\TicketType;
use common\models\Account; use common\models\Account;
use yii\base\Object;
use common\models\Transfer; use common\models\Transfer;
use common\models\User; use common\models\User;
use common\models\ShoppingCart; use common\models\ShoppingCart;
@@ -30,6 +28,7 @@ class TicketController extends FrontendController
{ {
public function behaviors() public function behaviors()
{ {
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
return [ return [
'verbs' => [ 'verbs' => [
'class' => VerbFilter::className(), 'class' => VerbFilter::className(),
@@ -60,7 +59,9 @@ class TicketController extends FrontendController
/** /**
* Lists all Ticket models. * Lists all Ticket models.
* @param null $number
* @return mixed * @return mixed
* @throws NotFoundHttpException
*/ */
public function actionIndex($number = null) public function actionIndex($number = null)
{ {
@@ -84,7 +85,9 @@ class TicketController extends FrontendController
/** /**
* Creates a new Ticket model. * Creates a new Ticket model.
* If creation is successful, the browser will be redirected to the 'view' page. * If creation is successful, the browser will be redirected to the 'view' page.
* @param null $number
* @return mixed * @return mixed
* @throws NotFoundHttpException
*/ */
public function actionCreate($number = null) public function actionCreate($number = null)
{ {
@@ -108,7 +111,7 @@ class TicketController extends FrontendController
$ticketTypes = TicketType::read(null, null); $ticketTypes = TicketType::read(null, null);
$accounts = Account::readAccounts(); $accounts = Account::read();
$user = User::findOne( [ 'id' => Yii::$app->user->id ] ); $user = User::findOne( [ 'id' => Yii::$app->user->id ] );
@@ -138,7 +141,9 @@ class TicketController extends FrontendController
} }
public function actionUpdate($id){ public function actionUpdate($id){
$model = TicketUpdate::findOne($id);
/** @var \frontend\models\TicketUpdate $model */
$model = TicketUpdate::findOne($id);
if ( !isset($model)){ if ( !isset($model)){
throw new NotFoundHttpException('The requested page does not exist.'); throw new NotFoundHttpException('The requested page does not exist.');