add changes to backend transfers2

This commit is contained in:
2015-10-20 09:02:57 +02:00
parent 71384b6453
commit 1a1477b26b
14 changed files with 174 additions and 61 deletions

View File

@@ -7,6 +7,8 @@ use yii\helpers\ArrayHelper;
use yii\behaviors\TimestampBehavior;
use common\components\AccountAwareBehavior;
use common\components\UserAwareBehavior;
use yii\base\Object;
use common\models\Transfer;
/**
* This is the model class for table "money_movement".
@@ -23,6 +25,10 @@ use common\components\UserAwareBehavior;
*/
class MoneyMovement extends \yii\db\ActiveRecord
{
const TYPE_OUT = 10;
public $_account;
/**
* @inheritdoc
@@ -58,13 +64,22 @@ class MoneyMovement extends \yii\db\ActiveRecord
public function rules()
{
return [
[['id_account', 'id_user', 'name', 'type', 'money'], 'required'],
[['id_account', 'id_user', 'type', 'money'], 'integer'],
[['id_account', 'name', 'money'], 'required'],
[['id_account' , 'money'], 'integer'],
[['name'], 'string', 'max' => 64],
[['comment'], 'string', 'max' => 255]
[['comment'], 'string', 'max' => 255],
[['id_account'], 'validateAccount'],
];
}
public function validateAccount($attribute,$params){
$this->_account = Account::findOne(['id_account' => $this->id_account] );
if ( !isset( $this->_account ) ){
$this->addError($attribute, Yii::t('common/money-movement', 'Invalid account!'));
}
}
/**
* @inheritdoc
*/
@@ -82,4 +97,19 @@ class MoneyMovement extends \yii\db\ActiveRecord
'updated_at' => Yii::t('common/money-movement', 'Updated At'),
];
}
public function afterSave($insert, $changedAttributes){
parent::afterSave($insert, $changedAttributes);
if ( $insert) {
$this->createTransfer();
}
}
protected function createTransfer(){
$transfer = Transfer::createMoneyMovementOutTransfer($this->_account, $this);
$transfer->id_user = Yii::$app->user->id;
$transfer->save();
}
}

View File

@@ -94,6 +94,7 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
'id_discount' => Yii::t('common/transfer', 'Id Discount'),
'id_currency' => Yii::t('common/transfer', 'Id Currency'),
'id_object' => Yii::t('common/transfer', 'Id Object'),
'objectName' => Yii::t('common/transfer', 'Id Object'),
'status' => Yii::t('common/transfer', 'Status'),
'type' => Yii::t('common/transfer', 'Type'),
'item_price' => Yii::t('common/transfer', 'Item Price'),
@@ -115,9 +116,12 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
public function getProduct(){
return $this->hasOne( Product::className(), ["id_product" =>"id_object" ] );
}
public function getMoneyMovement(){
return $this->hasOne( MoneyMovement::className(), ["id_money_movement" =>"id_object" ] );
}
public function getTicket(){
return $this->hasOne( Ticket::className(), ["id_ticket" =>"id_object" ] );
return $this->hasOne( Ticket::className(), ["id_ticket" =>"id_object", ] ) ;
}
public function getTicketType(){
@@ -192,13 +196,30 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
$result = "";
if ( $this->type == Transfer::TYPE_TICKET ){
$result = Yii::t('common/transfer','Ticket');
}else{
}else if ( $this->type == Transfer::TYPE_PRODUCT ){
$result = Yii::t('common/transfer','Product');
}else if ( $this->type == Transfer::TYPE_MONEY_MOVEMENT_OUT ){
$result = Yii::t('common/transfer','Money movement');
}
// $result .= " xx";
// $result .= $this->type;
return $result;
}
public function getSignedMoney(){
$m = 1;
$result = $this->money;
if ( $this->direction == self::DIRECTION_OUT ){
$m = -1;
}
$result = $result * $m;
return $result;
}
public function toProductSoldString(){
$s = "";
@@ -248,6 +269,27 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
return $transfer;
}
/**
* @param $account common\models\Account
* @param $discount common\models\Discount
* @param $currency common\models\Currency
* @param $moneyMovement common\models\MoneyMovement
* */
public static function createMoneyMovementOutTransfer($account , $moneyMovement ){
$transfer = new Transfer();
$transfer->type = Transfer::TYPE_MONEY_MOVEMENT_OUT;
$transfer->status = Transfer::STATUS_PAID;
$transfer->direction = Transfer::DIRECTION_OUT;
$transfer->count = 0;
$transfer->id_object = $moneyMovement->id_money_movement;
$transfer->money = $moneyMovement->money;
$transfer->id_account = $account->id_account;
return $transfer;
}
/**
* @param $account common\models\Account
* @param $discount common\models\Discount
@@ -307,16 +349,20 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
$result = "";
if ( $transfer->type == Transfer::TYPE_TICKET ){
$result = $transfer->ticket->ticketTypeName;
}else{
}else if ( $transfer->type == Transfer::TYPE_PRODUCT ){
$result = $transfer->product->name;
}else if ( $transfer->type == Transfer::TYPE_MONEY_MOVEMENT_OUT ){
$result = "Pénzmozgás";
}
return $result;
},
'category' => function ($transfer) {
if ( $transfer->type == Transfer::TYPE_TICKET ){
return Yii::t('frontend/transfer','Ticket');
}else{
}else if ( $transfer->type == Transfer::TYPE_PRODUCT ){
return $transfer->product->productCategoryName;
}else if ( $transfer->type == Transfer::TYPE_MONEY_MOVEMENT_OUT ){
return "Pénzmozgás";
}
},
],
@@ -338,6 +384,7 @@ class Transfer extends \common\models\BaseFitnessActiveRecord
public static function types( ) {
return [
self::TYPE_MONEY_MOVEMENT_OUT => Yii::t('common/transfer','Pénzmozgás'),
self::TYPE_PRODUCT => Yii::t('common/transfer','Product'),
self::TYPE_TICKET => Yii::t('common/transfer','Ticket'),
];