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

@@ -13,7 +13,6 @@ class AccountAwareBehavior extends Behavior{
if (isset($account)){
$result = $account->name;
}
return $result;
}

View File

@@ -32,7 +32,7 @@ return [
'Id Transfer' => 'Pénzmozgás',
'Id User' => 'Felhasználó',
'Item Price' => 'Termék ár',
'Money' => 'Ár',
'Money' => 'Összeg',
'Money Currency' => 'Ár valuta',
'Rate' => 'Árfolyam',
'Status' => 'Státusz',

View File

@@ -25,7 +25,7 @@ return [
'Delete' => 'Törlés',
'Search' => 'Keresés',
'Termékeladás' => 'Termékeladás',
'Transfers' => 'Pénzmozgások',
'Transfers' => 'Tranzakciók',
'Update' => 'Módosítás',
'Update {modelClass}: ' => '{modelClass} módosítás: ',
'pieces' => 'db',

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'),
];