<?php

class PreNominaSeguimiento extends CActiveRecord
{
    public function tableName()
    {
        return 'prestamos.pre_nomina_seguimiento';
    }

    public function rules()
    {
        return [
            ['id_estatus_pre_nomina, id_pre_nomina_credito', 'required'],
            ['actual, observacion', 'safe'],
            ['id_estatus_pre_nomina, id_pre_nomina_credito, fecha_registro, actual', 'safe', 'on' => 'search'],
        ];
    }

    public function relations()
    {
        return [
            'idEstatusPreNomina' => [self::BELONGS_TO, 'EstatusPreNomina', 'id_estatus_pre_nomina'],
        ];
    }

    public function attributeLabels()
    {
        return [
            'id_estatus_pre_nomina' => 'Id Estatus Pre Nomina',
            'id_pre_nomina_credito' => 'Id Pre Nomina Credito',
            'fecha_registro' => 'Fecha Registro',
            'actual' => 'Actual',
        ];
    }

    public function search()
    {
        $criteria = new CDbCriteria();
        $criteria->compare('id_estatus_pre_nomina', $this->id_estatus_pre_nomina, true);
        $criteria->compare('id_pre_nomina_credito', $this->id_pre_nomina_credito, true);
        $criteria->compare('fecha_registro', $this->fecha_registro, true);
        $criteria->compare('actual', $this->actual);

        return new CActiveDataProvider($this, [
            'criteria' => $criteria,
        ]);
    }

    public function beforeSave()
    {
        $this->id_usuario = Yii::app()->user->id;
        if ($this->fecha_registro == '') {
            $this->fecha_registro = date('d-m-Y H:m:s');
        }

        return parent::beforeSave();
    }

    public static function model($className = __CLASS__)
    {
        return parent::model($className);
    }

    public static function crear($datos)
    {
        self::model()->updateAll(['actual' => false], 'id_pre_nomina_credito=:id', [
            'id' => $datos['id_pre_nomina_credito']
        ]);

        $model = new self();
        $model->setattributes($datos);

        if (! $model->save()) {
            throw new Exception('Error al guardar seguimiento de la prenómina.');
        }
    }
}
