116 lines
3.0 KiB
PHP
116 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace common\models;
|
|
|
|
use Yii;
|
|
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".
|
|
*
|
|
* @property integer $id_money_movement
|
|
* @property integer $id_account
|
|
* @property integer $id_user
|
|
* @property string $name
|
|
* @property integer $type
|
|
* @property integer $money
|
|
* @property string $comment
|
|
* @property string $created_at
|
|
* @property string $updated_at
|
|
*/
|
|
class MoneyMovement extends \yii\db\ActiveRecord
|
|
{
|
|
|
|
const TYPE_OUT = 10;
|
|
|
|
public $_account;
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public static function tableName()
|
|
{
|
|
return 'money_movement';
|
|
}
|
|
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function behaviors()
|
|
{
|
|
return ArrayHelper::merge( [
|
|
[
|
|
'class' => TimestampBehavior::className(),
|
|
'value' => function(){ return date('Y-m-d H:i:s' ); }
|
|
],
|
|
[
|
|
'class' => AccountAwareBehavior::className(),
|
|
],
|
|
[
|
|
'class' => UserAwareBehavior::className(),
|
|
],
|
|
], parent::behaviors());
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['id_account', 'name', 'money'], 'required'],
|
|
[['id_account' , 'money'], 'integer'],
|
|
[['name'], 'string', 'max' => 64],
|
|
[['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
|
|
*/
|
|
public function attributeLabels()
|
|
{
|
|
return [
|
|
'id_money_movement' => Yii::t('common/money-movement', 'Id Money Movement'),
|
|
'id_account' => Yii::t('common/money-movement', 'Id Account'),
|
|
'id_user' => Yii::t('common/money-movement', 'Id User'),
|
|
'name' => Yii::t('common/money-movement', 'Name'),
|
|
'type' => Yii::t('common/money-movement', 'Type'),
|
|
'money' => Yii::t('common/money-movement', 'Money'),
|
|
'comment' => Yii::t('common/money-movement', 'Comment'),
|
|
'created_at' => Yii::t('common/money-movement', 'Created At'),
|
|
'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();
|
|
}
|
|
|
|
}
|