<?php

/**
 * This is the model class for table "prestamo".
 *
 * The followings are the available columns in table 'prestamo':
 * @property integer $id_prestamo
 * @property integer $id_cliente
 * @property integer $id_gestor
 * @property string $fecha_inicio
 * @property string $dia_prestamo
 * @property integer $id_modalidad
 * @property integer $id_monto
 * @property string $cuota
 * @property string $atrasos
 * @property integer $id_duracion
 * @property integer $num
 * @property string $observacion
 * @property string $estatus
 * @property double $monto_anterior
 * @property double $monto_cuota_renovacion
 * @property double $descuento_seguro
 * @property double $descuento_primera_cuota
 * @property integer $mora_cancelada
 * @property integer $mora_monto
 * @property string $mora_fecha
 * @property string $observacion_mora
 * @property double $monto_mora_renovacion
 * @property string $forma_entrega
 * @property string $borrado
 * @property string $fecha_entrega
 * @property double $monto_entrega
 * @property string $fecha_actualizo_prestamo
 * @property string $hora_creacion
 * @property integer $id_usuario_creador
 * @property string $fecha_creacion
 * @property integer $id_usuario_modificador
 * @property string $fecha_modificacion
 */
class Renovacion extends CActiveRecord
{
	public $fecha_desde;
        public $fecha_hasta;
        public $fecha_final;
        public $atrazos;
        public $cuotas;
        public $dni;
        public $nombre;
        public $apellido;
        public $modalidad;
        public $gestor;
        public $zona;
        public $tasa;
        public $manual;
        public $interes;
        public $id_duracion2;
        public $id_monto2;
    public $hora_entrega;
    
	public function tableName()
	{
		return 'prestamo';
	}

	public function rules()
	{
		
		return array(
                    
			array('fecha_inicio,id_prestamo, dia_prestamo, id_modalidad, cuota', 'required','on'=>'create'),
                        array('id_gestor, fecha_inicio, dia_prestamo, id_modalidad, cuota', 'required','on'=>'update'),
			array('id_cliente, id_gestor, id_modalidad, id_monto, id_duracion, num, mora_cancelada, mora_monto, id_usuario_creador, id_usuario_modificador', 'numerical', 'integerOnly'=>true),
			array('monto_anterior, monto_cuota_renovacion,descuento_primera_cuota,descuento_seguro, monto_mora_renovacion, monto_entrega', 'numerical'),
			array('dia_prestamo, cuota, atrasos, observacion, estatus', 'length', 'max'=>100),
			array('forma_entrega', 'length', 'max'=>50),
			array('borrado', 'length', 'max'=>1),
			array('mora_fecha, observacion_mora, fecha_entrega, fecha_actualizo_prestamo, hora_creacion, fecha_creacion, fecha_modificacion', 'safe'),
			array('id_prestamo,zona,dni,nombre,apellido,gestor,fecha_desde, fecha_hasta, id_cliente, id_gestor, fecha_inicio, dia_prestamo, id_modalidad, id_monto, cuota, atrasos, id_duracion, num, observacion, estatus, monto_anterior, monto_cuota_renovacion,descuento_primera_cuota,descuento_seguro, mora_cancelada, mora_monto, mora_fecha, observacion_mora, monto_mora_renovacion, forma_entrega, borrado, fecha_entrega, monto_entrega, fecha_actualizo_prestamo, hora_creacion, id_usuario_creador, fecha_creacion, id_usuario_modificador, fecha_modificacion', 'safe', 'on'=>'search'),
		);
	}

	
	public function relations()
	{
		return array(
		);
	}


	public function attributeLabels()
	{
		return array(
                    
			'id_prestamo' => 'ID',
			'id_cliente' => 'Cliente',
			'id_gestor' => 'Gestor',
			'fecha_inicio' => 'Fecha de Inicio',
			'dia_prestamo' => 'Dia',
			'id_modalidad' => 'Modalidad',
			'id_monto' => 'Monto crédito S/',
			'cuota' => 'Cuota S/', 
			'atrasos' => 'Atrazos',
			'id_duracion' => 'Duración',
			'num' => 'Num. Renovar',
			'observacion' => 'Observación',
			'estatus' => 'Estatus',
			'monto_anterior' => 'Monto Anterior',
			'monto_cuota_renovacion' => 'Descuento x cuotas',
			'mora_cancelada' => 'Mora Cancelada',
			'mora_monto' => 'Mora Monto',
			'mora_fecha' => 'Mora Fecha',
			'observacion_mora' => 'Observacion Mora',
			'monto_mora_renovacion' => 'Descuento de moras',
			'descuento_seguro' => 'Descuento x seguros',
			'descuento_primera_cuota' => 'Descuento 1ra cuota',
			'forma_entrega' => 'Forma Entrega',
			'borrado' => 'Borrado',
			'fecha_entrega' => 'Fecha Entrega',
			'monto_entrega' => 'Monto Entrega',
			'domingo' => "Domingo",
 			'fecha_actualizo_prestamo' => 'Fecha Actualizo Prestamo',
			'hora_creacion' => 'Hora Creacion',
			'id_usuario_creador' => 'Id Usuario Creador',
			'fecha_creacion' => 'Fecha Creacion',
			'id_usuario_modificador' => 'Id Usuario Modificador',
			'fecha_modificacion' => 'Fecha Modificacion',
                        'cuotas_pagadas'=>'Cuotas Canceladas',
                        'tasa'=>'Tasa %',
                        'interes'=>'Interes S/',
                        'hora_entrega' => 'Hora Entrega',
		);
	}


	public function search()
	{
		
		$criteria=new CDbCriteria;
                $criteria->condition="num!=0 and t.borrado=0 ";
                if(!empty($this->fecha_desde) && empty($this->fecha_hasta)){
                    $criteria->condition="t.fecha_inicio  <= '$this->fecha_desde'    and t.num!=0 and t.borrado=0";
                }elseif(!empty($this->fecha_hasta) && empty($this->fecha_desde)){
                    $criteria->condition="t.fecha_inicio >= '$this->fecha_hasta' and t.num!=0 and t.borrado=0";
                }elseif(!empty($this->fecha_hasta) && !empty($this->fecha_desde)){
                    $criteria->condition="t.fecha_inicio >= '$this->fecha_desde' and t.fecha_inicio <= '$this->fecha_hasta' and t.num!=0 and t.borrado=0 ";
                }
                
                
                
                $criteria->select=array('t.fecha_creacion,t.hora_entrega,t.id_prestamo,t.forma_entrega,t.monto_entrega,t.monto_mora_renovacion,t.monto_cuota_renovacion,t.descuento_primera_cuota,t.descuento_seguro, t.dia_prestamo,t.id_cliente, t.id_gestor, t.fecha_inicio, '
                    . 't.id_modalidad, t.id_monto, t.cuota, t.id_duracion, t.num, t.estatus,t.borrado,  '
                    . 'a.dni as dni,a.nombre as nombre,a.apellido as apellido,'
                    . 'b.descripcion as gestor,c.descripcion as modalidad,'
                    . 'd.descripcion as zona'
                );
                
                $criteria->join="inner join cliente AS a on  a.id_cliente=t.id_cliente "
                        . " inner join gestor AS b on  b.id_gestor=t.id_gestor"
                        . " inner join modalidad AS c on  c.id_modalidad=t.id_modalidad"
                        . " inner join zona AS d on  d.id_zona=a.id_zona"
                        ;
                
                
                
		$criteria->compare('id_prestamo',$this->id_prestamo);
		$criteria->compare('id_cliente',$this->id_cliente);
                $criteria->compare('a.dni',$this->dni,true);
                $criteria->compare('a.id_zona',$this->zona,true);
                
                $criteria->compare('LOWER(a.nombre)',strtolower($this->nombre),true);
                $criteria->compare('LOWER(a.apellido)',strtolower($this->apellido),true);
		$criteria->compare('t.id_gestor',$this->id_gestor);
		$criteria->compare('fecha_inicio',$this->fecha_inicio,true);
		$criteria->compare('dia_prestamo',$this->dia_prestamo,true);
		$criteria->compare('id_modalidad',$this->id_modalidad);
		
		$criteria->compare('LOWER(b.descripcion)',strtolower($this->gestor),true);
		
		$criteria->compare('id_monto',$this->id_monto);
		$criteria->compare('cuota',$this->cuota,true);
		$criteria->compare('atrasos',$this->atrasos,true);
		$criteria->compare('id_duracion',$this->id_duracion);
		$criteria->compare('num',$this->num);
		$criteria->compare('observacion',$this->observacion,true);
		$criteria->compare('estatus',$this->estatus,true);
		$criteria->compare('monto_anterior',$this->monto_anterior);
		$criteria->compare('monto_cuota_renovacion',$this->monto_cuota_renovacion);
		
		$criteria->compare('descuento_primera_cuota',$this->descuento_primera_cuota);
		
		$criteria->compare('descuento_seguro',$this->descuento_seguro);
		
		$criteria->compare('mora_cancelada',$this->mora_cancelada);
		$criteria->compare('mora_monto',$this->mora_monto);
		$criteria->compare('mora_fecha',$this->mora_fecha,true);
		$criteria->compare('observacion_mora',$this->observacion_mora,true);
		$criteria->compare('monto_mora_renovacion',$this->monto_mora_renovacion);
		$criteria->compare('forma_entrega',$this->forma_entrega,true);
		$criteria->compare('fecha_entrega',$this->fecha_entrega,true);
		$criteria->compare('monto_entrega',$this->monto_entrega);
		$criteria->compare('fecha_actualizo_prestamo',$this->fecha_actualizo_prestamo,true);
		$criteria->compare('hora_creacion',$this->hora_creacion,true);
		$criteria->compare('id_usuario_creador',$this->id_usuario_creador);
		$criteria->compare('fecha_creacion',$this->fecha_creacion,true);
		$criteria->compare('id_usuario_modificador',$this->id_usuario_modificador);
		$criteria->compare('fecha_modificacion',$this->fecha_modificacion,true);

		$criteria->compare('t.borrado','0',true);
		
		if(empty($this->fecha_hasta) && empty($this->fecha_desde) && empty($_SESSION['gestor'])){ 
                $criteria->compare('fecha_inicio',date('Y-m-d'));
        }
        
        
                $sort = new CSort();
                $sort->defaultOrder = 'id_prestamo DESC';
                $sort->attributes=array(
                    'id_prestamo'=>array(
                        'asc'=>'id_prestamo ASC',
                        'desc'=>'id_prestamo DESC',
                    ),
                    'dni'=>array(
                        'asc'=>'dni ASC',
                        'desc'=>'dni DESC',
                    ),
                    'nombre'=>array(
                        'asc'=>'nombre ASC',
                        'desc'=>'nombre DESC',
                    ),
                    'zona'=>array(
                        'asc'=>'zona ASC',
                        'desc'=>'zona DESC',
                    ),
                    
                    'gestor'=>array(
                        'asc'=>'gestor ASC',
                        'desc'=>'gestor DESC',
                    ),
                    
                    'apellido'=>array(
                        'asc'=>'apellido ASC',
                        'desc'=>'apellido DESC',
                    ),
                    'fecha_inicio'=>array(
                        'asc'=>'fecha_inicio ASC',
                        'desc'=>'fecha_inicio DESC',
                    ),
                    'id_modalidad'=>array(
                        'asc'=>'id_modalidad ASC',
                        'desc'=>'id_modalidad DESC',
                    ),
                    
                    
                    'monto_mora_renovacion'=>array(
                        'asc'=>'monto_mora_renovacion ASC',
                        'desc'=>'monto_mora_renovacion DESC',
                    ), 
                    'monto_entrega'=>array(
                        'asc'=>'monto_entrega ASC',
                        'desc'=>'monto_entrega DESC',
                    ), 
                    'forma_entrega'=>array(
                        'asc'=>'forma_entrega ASC',
                        'desc'=>'forma_entrega DESC',
                    ), 
                    'num'=>array(
                        'asc'=>'num ASC',
                        'desc'=>'num DESC',
                    ),
                    'id_monto'=>array(
                        'asc'=>'id_monto ASC',
                        'desc'=>'id_monto DESC',
                    ),  
                    'monto_cuota_renovacion'=>array(
                        'asc'=>'monto_cuota_renovacion ASC',
                        'desc'=>'monto_cuota_renovacion DESC',
                    ),  
                    'descuento_seguro'=>array(
                        'asc'=>'descuento_seguro ASC',
                        'desc'=>'descuento_seguro DESC',
                    ),  
                    'descuento_primera_cuota'=>array(
                        'asc'=>'descuento_primera_cuota ASC',
                        'desc'=>'descuento_primera_cuota DESC',
                    ),  
                    'cuota'=>array(
                        'asc'=>'cuota ASC',
                        'desc'=>'cuota DESC',
                    ),
                    'estatus'=>array(
                        'asc'=>'estatus ASC',
                        'desc'=>'estatus DESC',
                    ),
                );
                
                
                
		$data = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'pagination' => array(
                        'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']),
                    ),
                    'sort' => $sort,
                ));
                $session=new CHttpSession;
		$session->open();
                $session['renovacion'] = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'sort' => $sort,
                    "pagination" => false
                ));
                
                return $data;
	}


	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
        
        
        
        public static  function agregar(){
              
            $comision= round($_POST['Renovacion']['id_monto']*0.002, 2);  
              
              
            $sql="INSERT INTO prestamo (
                    num, 
                    id_cliente,
                    fecha_inicio,
                    dia_prestamo, 
                    id_monto,
                    cuota,
                    id_duracion, 
                    id_modalidad, 
                    id_gestor,
                    hora_creacion, 
                    monto_cuota_renovacion, 
                    monto_mora_renovacion, 
                    forma_entrega, 
                    fecha_entrega, 
                    monto_entrega,
                    monto_anterior, 
                    id_usuario_creador,
                    observacion,
                    dia,
                    porcentaje,
                    comision,
                    tasa,
                    interes,
                    hora_entrega,
                    fecha_creacion, 
                    borrado,
                    descuento_seguro,
                    descuento_primera_cuota,
                    domingo
                    ) VALUES(
                    ?,?,?,?,?,?,?,?,?,?,?,?,
                    ?,?,?,?,?,
                    ?,?,?,?,?,
                    ?,?,now(),0,?,?,?)";

            $command=Yii::app()->db->createCommand($sql);
            $command-> bindValue(1,  $_POST['Renovacion']['num'],PDO::PARAM_STR);
            $command-> bindValue(2,  $_POST['Renovacion']['id_cliente'],PDO::PARAM_STR);
            $command-> bindValue(3,  Utility::guardarFecha($_POST['Renovacion']['fecha_inicio']),PDO::PARAM_STR);
            $command-> bindValue(4,$_POST['Renovacion']['dia_prestamo'],PDO::PARAM_STR);
            $command-> bindValue(5,$_POST['Renovacion']['id_monto'],PDO::PARAM_STR); 
            $command-> bindValue(6,$_POST['Renovacion']['cuota'],PDO::PARAM_STR); 
            $command-> bindValue(7,$_POST['Renovacion']['id_duracion'],PDO::PARAM_STR);
            $command-> bindValue(8,$_POST['Renovacion']['id_modalidad'],PDO::PARAM_STR);
            $command-> bindValue(9,$_POST['Renovacion']['id_gestor'],PDO::PARAM_STR);
            $command-> bindValue(10,date(' H:i:s'),PDO::PARAM_STR);
            $command-> bindValue(11,$_POST['Renovacion']['monto_cuota_renovacion'],PDO::PARAM_STR);
            $command-> bindValue(12,$_POST['Renovacion']['monto_mora_renovacion'],PDO::PARAM_STR);
            $command-> bindValue(13, $_POST['Renovacion']['forma_entrega'],PDO::PARAM_STR);
            $command-> bindValue(14,  Utility::guardarFecha($_POST['Renovacion']['fecha_entrega']),PDO::PARAM_STR);
            $command-> bindValue(15,  $_POST['Renovacion']['monto_entrega'],PDO::PARAM_STR);
            $command-> bindValue(16,  $_POST['Renovacion']['monto_anterior'],PDO::PARAM_STR);
            $command-> bindValue(17,Yii::app()->user->id,PDO::PARAM_STR); 
            $command-> bindValue(18,$_POST['Renovacion']['observacion']!=null?Utility::mayuscula($_POST['Renovacion']['observacion']):'',PDO::PARAM_STR);
            $command-> bindValue(19,Utility::dia($_POST['Renovacion']['fecha_inicio']),PDO::PARAM_STR);
            $command-> bindValue(20,"0.2",PDO::PARAM_STR);
            $command-> bindValue(21,$comision,PDO::PARAM_STR);
            $command-> bindValue(22,$_POST['Renovacion']['tasa'],PDO::PARAM_STR);
            $command-> bindValue(23,$_POST['Renovacion']['interes'],PDO::PARAM_STR);
            $command-> bindValue(24,$_POST['Renovacion']['hora_entrega'],PDO::PARAM_STR);
            $command-> bindValue(25,$_POST['Renovacion']['descuento_seguro'],PDO::PARAM_STR);
            $command-> bindValue(26,$_POST['Renovacion']['descuento_primera_cuota'],PDO::PARAM_STR);
            $command-> bindValue(27,$_POST['Renovacion']['domingo'],PDO::PARAM_STR);
            
            
            $command->execute();
            return true;
        }


            public static function editar($id) {
                
            $comision= round($_POST['Renovacion']['id_monto']*0.002, 2);    
                
            $update = Yii::app()->db->createCommand()->
                update("prestamo", array(
                    "fecha_inicio" =>  Utility::guardarFecha($_POST['Renovacion']['fecha_inicio']),
                    "dia_prestamo" =>$_POST['Renovacion']['dia_prestamo'],
                    "id_monto" =>$_POST['Renovacion']['id_monto'],
                    "cuota" =>$_POST['Renovacion']['cuota'],
                    "id_duracion" =>$_POST['Renovacion']['id_duracion'],
                    "id_gestor" =>$_POST['Renovacion']['id_gestor'],
                    "id_modalidad" =>$_POST['Renovacion']['id_modalidad'],
                    "monto_cuota_renovacion" =>$_POST['Renovacion']['monto_cuota_renovacion'],
                    "monto_mora_renovacion" =>$_POST['Renovacion']['monto_mora_renovacion'],
                    "descuento_seguro" => $_POST['Renovacion']['descuento_seguro'],
                    "descuento_primera_cuota" => $_POST['Renovacion']['descuento_primera_cuota'],
                    "forma_entrega" =>$_POST['Renovacion']['forma_entrega'],
                    "fecha_entrega" =>  Utility::guardarFecha($_POST['Renovacion']['fecha_entrega']),
                    "monto_entrega" =>$_POST['Renovacion']['monto_entrega'],
                    "id_usuario_modificador" => Yii::app()->user->id,
                    "fecha_modificacion" => date('Y-m-d H:i:s'),
                    "observacion"=>$_POST['Renovacion']['observacion']!=null?Utility::mayuscula($_POST['Renovacion']['observacion']):'',
                    "dia"=>Utility::dia($_POST['Renovacion']['fecha_inicio']),
                    "tasa" =>$_POST['Renovacion']['tasa']!=NULL?Utility::minuscula($_POST['Renovacion']['tasa']):'',
                    "interes" =>$_POST['Renovacion']['interes']!=NULL?Utility::minuscula($_POST['Renovacion']['interes']):'', 
                    "porcentaje"=>"0.2",
                    "comision"=>$comision,
                    "hora_entrega" =>$_POST['Renovacion']['hora_entrega'],
                    "domingo" => $_POST['Renovacion']['domingo']
                ), "id_prestamo=$id");
            return $update;
        }
        
            public static function borrar($id){
            $update = Yii::app()->db->createCommand()->
                update("prestamo", array(
                "borrado" => 1,           
                "id_usuario_eliminador" => Yii::app()->user->id,
                "fecha_eliminacion" => date('Y-m-d H:i:s')
            ), "id_prestamo=$id");
            return $update;
        }
        
        
        
        
        
}
