TimestampBehavior::class, 'createdAtAttribute' => 'created_at', 'updatedAtAttribute' => 'updated_at', 'value' => new Expression('NOW()'), ], ]; } /** * {@inheritdoc} */ public function rules() { return [ [['title', 'template_id'], 'required'], [['company_id', 'contractor_company_id', 'manager_id', 'contractor_manager_id', 'template_id'], 'integer'], [['body'], 'string'], [['created_at', 'updated_at'], 'safe'], [['title'], 'string', 'max' => 255], [['company_id'], 'exist', 'skipOnError' => true, 'targetClass' => Company::className(), 'targetAttribute' => ['company_id' => 'id']], [['contractor_company_id'], 'exist', 'skipOnError' => true, 'targetClass' => Company::className(), 'targetAttribute' => ['contractor_company_id' => 'id']], [['contractor_manager_id'], 'exist', 'skipOnError' => true, 'targetClass' => CompanyManager::className(), 'targetAttribute' => ['contractor_manager_id' => 'id']], [['template_id'], 'exist', 'skipOnError' => true, 'targetClass' => DocumentTemplate::className(), 'targetAttribute' => ['template_id' => 'id']], [['manager_id'], 'exist', 'skipOnError' => true, 'targetClass' => CompanyManager::className(), 'targetAttribute' => ['manager_id' => 'id']], ['body', 'required', 'on' => self::SCENARIO_UPDATE_DOCUMENT_BODY], ['body', function ($attribute, $params) { preg_match_all('/\${(\w+|№|№+w)}/', $this->$attribute,$out); if (!empty($out[0])) { $this->addError('body', 'В теле документа все переменные должны быть заменены!'); } }, 'on' => self::SCENARIO_DOWNLOAD_DOCUMENT ], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'company_id' => 'Компания', 'contractor_company_id' => 'Компания контрагент', 'manager_id' => 'Менеджер', 'contractor_manager_id' => 'Менеджер контрагент', 'template_id' => 'Шаблон документа', 'title' => 'Название', 'body' => 'Тело документа', 'created_at' => 'Created At', 'updated_at' => 'Updated At', ]; } /** * @return \yii\db\ActiveQuery */ public function getTemplate() { return $this->hasOne(DocumentTemplate::className(), ['id' => 'template_id']); } /** * @return \yii\db\ActiveQuery */ public function getCompany() { return $this->hasOne(Company::className(), ['id' => 'company_id']); } /** * @return \yii\db\ActiveQuery */ public function getContractorCompany() { return $this->hasOne(Company::className(), ['id' => 'contractor_company_id']); } /** * @return \yii\db\ActiveQuery */ public function getContractorManager() { return $this->hasOne(CompanyManager::className(), ['id' => 'contractor_manager_id']); } /** * @return \yii\db\ActiveQuery */ public function getManager() { return $this->hasOne(CompanyManager::className(), ['id' => 'manager_id']); } }