<?php

class FormulaProceso extends CActiveRecord
{
    public function tableName()
    {
        return 'configuracion.formula_proceso';
    }

    public function rules()
    {
        return [
            [['id_formula', 'id_proceso'], 'required'],
        ];
    }

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

    public static function firstOrCreate($datos)
    {
        $model = self::model()->find([
            'condition' => 'id_proceso=:proceso AND id_formula=:formula AND blnborrado is false',
            'params' => $datos,
        ]);

        if (! $model) {
            return new self();
        }

        return $model;
    }

    public static function config($datos)
    {
        $model = self::model()->find([
            'condition' => 'id_proceso=:proceso AND id_formula=:formula AND blnborrado is false',
            'params' => $datos,
        ]);

        if (! $model) {
            $proceso = TituloProcesoPago::model()->findByPk($datos['proceso']);
            throw new Exception("No se ha definido una formula de disponibilidad para el proceso '{$proceso->nombre_proceso}'.");
        }

        return $model;
    }
}
