<?php

class PrenominaCuotasSubproceso extends CActiveRecord
{
    public $id_titulo_tipo_credito;
    public $cedula;
    public $id_tipo_credito;
    public $nombre;
    public $titulo_credito;
    public $tipo_credito;
    public $numero_cuota;
    public $tipo_nomina;
    public $tipo_subproceso;
    public $monto_capital;
    public $monto_interes;
    public $monto_cuota;
    public $id_tipo_nomina;

    public function tableName()
    {
        return 'prestamos.pre_nomina_cuotas_subproceso';
    }

    public function rules()
    {
        return [
            [[
                'cedula', 'nombre',
                'id_titulo_tipo_credito',
                'id_tipo_credito',
                'id_tipo_nomina',
                'id_tipo_subproceso',
            ], 'safe', 'on' => 'search'],
        ];
    }

    public function relations()
    {
        return [];
    }

    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'nombre' => 'Nombres y apellidos',
            'id_titulo_tipo_credito' => 'Categoría del préstamo',
            'id_tipo_credito' => 'Plazo',
            'numero_cuota' => 'Número de cuota',
            'monto_capital' => 'Capital',
            'monto_interes' => 'Interes',
            'monto_cuota' => 'Total',
            'id_tipo_nomina' => 'Tipo nómina',
            'id_tipo_subproceso' => 'Tipo subproceso',
        ];
    }

    public function search($prenomina)
    {
        $criteria = new CDbCriteria();
        $criteria->alias = 'pncs';
        $criteria->select = 'pncs.id,
                             pncs.id_pre_nomina_credito,
                             a.cedula,
                             concat(a.nombre, \' \', a.apellidos) as nombre,
                             ttc.id as id_titulo_tipo_credito,
                             ttc.nombre_titulo as titulo_credito,
                             tc.id as id_tipo_credito,
                             tc.descripcion as tipo_credito,
                             cta.numero_cuota,
                             cta.monto_capital,
                             cta.monto_interes,
                             cta.monto_cuota,
                             tn.id as id_tipo_nomina,
                             tn.nombre_nomina as tipo_nomina,
                             pnts.id as id_tipo_subproceso,
                             pnts.nombre as tipo_subproceso,
                             pncs.fecha_registro';
        $criteria->join = 'inner join prestamos.credito_tabla_amortizacion cta on cta.id=pncs.id_tabla_amortizacion
                               and cta.blnborrado is false
                           inner join prestamos.credito c on c.id=cta.idcredito
                               and c.blnborrado is false
                           inner join prestamos.tipo_credito tc on tc.id=c.id_tipo_credito
                           inner join prestamos.titulo_tipo_credito ttc on ttc.id=tc.id_titulo_tipo_credito
                           inner join retenciones.tipo_nomina tn on tn.id=c.id_tipo_nomina
                           inner join asociado a on a.idasociado=c.idasociado
                           inner join prestamos.pre_nomina_tipo_subproceso pnts on pnts.id=pncs.id_tipo_subproceso';
        $criteria->compare('a.cedula::text', $this->cedula, true);
        $criteria->compare('lower(concat(a.nombre, \' \', a.apellidos))', strtolower($this->nombre), true);
        $criteria->compare('ttc.id', $this->id_titulo_tipo_credito);
        $criteria->compare('tc.id', $this->id_tipo_credito);
        $criteria->compare('tn.id', $this->id_tipo_nomina);
        $criteria->compare('pnts.id', $this->id_tipo_subproceso);
        $criteria->addColumnCondition([
            'pncs.id_pre_nomina_credito' => $prenomina,
        ]);

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

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