<?php

class SeguimientoReembolso extends CActiveRecord
{
    public function tableName()
    {
        return 'reembolso.reembolso_seguimiento';
    }

    public function rules()
    {
        return array(
            array('id_reembolso, id_estatus_reembolso', 'required'),
            array('actual, descripcion', 'safe'),
        );
    }

    public function attributeLabels()
    {
        return array(
            'id' => 'ID',
            'id_reembolso' => 'Reembolso',
            'id_estatus_reembolso' => 'Estatus reembolso',
            'descripcion' => 'Descripción',
        );
    }

    public function search()
    {
        $criteria = new CDbCriteria();

        $criteria->compare('id', $this->id);

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

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

    /**
     * Genera un seguimiento para un reembolso dado, junto con le estatus.
     *
     * @param  Reembolso $reembolso
     * @param  $idEstatus integer
     * @return void|Exception
     */
    public static function crear($reembolso, $idEstatus)
    {
        self::model()->updateAll(array('actual' => false), 'id_reembolso=:id', array(':id' => $reembolso->id));

        $model = new self();
        $model->id_reembolso = $reembolso->id;
        $model->id_estatus_reembolso = $idEstatus;
        if (! $model->save()) {
            throw new Exception('Error al hacer seguimiento del reembolso');
        }
    }
}
