fitness-web/common/models/CollectionCreate.php

68 lines
1.7 KiB
PHP

<?php
namespace common\models;
use Yii;
use common\components\AccountAwareBehavior;
use common\components\UserAwareBehavior;
use yii\helpers\ArrayHelper;
use yii\behaviors\TimestampBehavior;
/**
* This is the model class for table "collection".
*
* @property integer $id_collection
* @property integer $id_user
* @property integer $created_by
* @property integer $id_account
* @property integer $money
* @property string $start
* @property string $end
* @property integer $type
* @property string $created_at
* @property string $updated_at
*/
class CollectionCreate extends \common\models\Collection
{
public $lastCollection;
public $accounts;
public $accountMap;
public $account;
public $totals;
public $timestampEnd;
public $timestampStart;
public function rules(){
return [
['end','required'],
[[ 'end' , ], 'date' ,'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ],
[[ 'end' ], 'validateEndDate' ]
];
}
public function validateEndDate($attribute,$params){
if ( isset($this->lastCollection)){
if ( strtotime( $this->lastCollection->end ) >= strtotime( $this->timestampEnd ) ){
$this->addError($attribute,Yii::t('frontend/collection' ,'End date is invalid') );
}
}
}
public function beforeSave($insert){
if (parent::beforeSave($insert)) {
$this->id_user = Yii::$app->user->id;
$this->created_by = Yii::$app->user->id;
$paidAt = Transfer::mkPaidAtTotals($this->timestampStart, $this->timestampEnd, $this->user->id, null, $this->account->id_account, $this->accounts, $this->accountMap);
$this->money = $paidAt['total'];
return true;
} else {
return false;
}
}
}