<?php


class RendicionCliente extends CActiveRecord
{
	public $fecha_desde;
        public $fecha_hasta;
        
	public function tableName()
	{
		return 'rendicion_cliente';
	}

	public function rules()
	{
		
		return array(
			array('id_gestor,id_captador', 'numerical', 'integerOnly'=>true),
			array('dni', 'length', 'max'=>50),
			array('nombres, apellidos, monto', 'length', 'max'=>100),
			array('borrado', 'length', 'max'=>1),
			array('fecha', 'safe'),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('fecha_desde,fecha_hasta,id, id_gestor,id_captdor, fecha, dni, nombres, apellidos, monto, borrado', 'safe', 'on'=>'search'),
		);
	}

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


	public function attributeLabels()
	{
		return array(
			'id' => 'ID',
			'id_gestor' => 'Gestor',
                        'id_captador' => 'Captador',
			'fecha' => 'Fecha',
			'dni' => 'DNI',
			'nombres' => 'Nombres',
			'apellidos' => 'Apellidos',
			'monto' => 'Monto',
			'borrado' => 'Borrado',
                        
		);
	}


	public function search()
	{
		
		$criteria=new CDbCriteria;
                
                if(!empty($this->fecha_desde) && empty($this->fecha_hasta)){
                    $criteria->condition="fecha <= '$this->fecha_desde' and borrado = 0  ";
                }elseif(!empty($this->fecha_hasta) && empty($this->fecha_desde)){
                    $criteria->condition="fecha >= '$this->fecha_hasta'  and borrado = 0 ";
                }elseif(!empty($this->fecha_hasta) && !empty($this->fecha_desde)){
                    $criteria->condition="fecha >= '$this->fecha_desde' and fecha <= '$this->fecha_hasta'  and borrado = 0 ";
       
                }
                
                
		$criteria->compare('id',$this->id);
		$criteria->compare('id_gestor',$this->id_gestor);
                $criteria->compare('id_captador',$this->id_captador);
		$criteria->compare('dni',$this->dni,true);
		$criteria->compare('LOWER(nombres)',strtolower($this->nombres),true);
		$criteria->compare('LOWER(apellidos)',strtolower($this->apellidos),true);
		$criteria->compare('monto',$this->monto,true);
		$criteria->compare('borrado',0,true);

		$sort = new CSort();
                $sort->defaultOrder = 'id DESC';

                $data = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'pagination' => array(
                        'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']),
                    ),
                    'sort' => $sort,
                ));
                
                $_SESSION['rendicionc'] = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'sort' => $sort,
                    "pagination" => false
                ));

                return $data;
	}


	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
        
        public function add(){
            $insert = Yii::app()->db->createCommand()->
                insert("rendicion_cliente", array(
                    "id_gestor"=>$_POST['RendicionCliente']['id_gestor'], 
                    "id_captador"=>$_POST['RendicionCliente']['id_captador'], 
                    "fecha"=>date('Y-m-d'), 
                    "dni"=>$_POST['RendicionCliente']['dni'],
                    "nombres"=>$_POST['RendicionCliente']['nombres']!=NULL?Utility::mayuscula($_POST['RendicionCliente']['nombres']):NULL,
                    "apellidos"=>$_POST['RendicionCliente']['apellidos']!=NULL?Utility::mayuscula($_POST['RendicionCliente']['apellidos']):NULL,
                    "monto"=>$_POST['RendicionCliente']['monto']!=NULL?$_POST['RendicionCliente']['monto']:'0',
                    "borrado"=>'0'
                    
            ));
            return $insert;
        }
        
        public static function edit($id) {
            $update = Yii::app()->db->createCommand()->
                update("rendicion_cliente", array(
                    "id_gestor"=>$_POST['RendicionCliente']['id_gestor'], 
                    "id_captador"=>$_POST['RendicionCliente']['id_captador'], 
                    "dni"=>$_POST['RendicionCliente']['dni'],
                    "nombres"=>$_POST['RendicionCliente']['nombres']!=NULL?Utility::mayuscula($_POST['RendicionCliente']['nombres']):NULL,
                    "apellidos"=>$_POST['RendicionCliente']['apellidos']!=NULL?Utility::mayuscula($_POST['RendicionCliente']['apellidos']):NULL,
                    "monto"=>$_POST['RendicionCliente']['monto']!=NULL?$_POST['RendicionCliente']['monto']:'0',
            ), "id=$id");
            return $update;
        }

        public static function borrar($id){
            $update = Yii::app()->db->createCommand()->
                update("rendicion_cliente", array(
                "borrado" =>'1',           
            ), "id=$id");
            return $update;
        }
        
        
        
        public static  function todo(){
            $row= Yii::app()->db->createCommand(" SELECT COUNT(id) as num,SUM(monto) as monto FROM rendicion_cliente WHERE  borrado=0 ")->queryRow();
            return $row;
        }
    
        
        
    
    public static  function totalajax($fecha_desde,$fecha_hasta,$gestor,$dni,$nombres,$apellidos ){
 
        
        $sql1="";
        $sql2="";
        $sql3="";
        $sql4="";
        $sql5="";
        
        if(!empty($fecha_desde) && empty($fecha_hasta)){
          $sql1= "AND DATE_FORMAT(fecha, '%Y-%m-%d')  <= '$fecha_desde' ";
        }elseif(!empty($fecha_hasta) && empty($fecha_desde)){
          $sql1= "AND DATE_FORMAT(fecha, '%Y-%m-%d') >= '$fecha_hasta'";
        }elseif(!empty($fecha_hasta) && !empty($fecha_desde)){
          $sql1=  "AND DATE_FORMAT(fecha, '%Y-%m-%d') >= '$fecha_desde' and DATE_FORMAT(fecha, '%Y-%m-%d') <= '$fecha_hasta' ";
        }
        
        if(!empty($gestor)){
        $sql2=" AND  id_gestor='".$gestor."'   ";
        }


        if(!empty($dni)){
        $sql3=" AND  dni='".$dni."'   ";
        }

        if(!empty($nombres)){
       
        $sql4=" AND  LOWER(nombres) LIKE '%".strtolower($nombres)."%'   ";
        }

        
        if(!empty($apellidos)){
        $sql5=" AND  LOWER(apellidos) LIKE '%".strtolower($apellidos)."%'   ";
        }

        $consulta= $sql1.$sql2.$sql3.$sql4.$sql5;

     
        if(!empty($sql1) || !empty($sql2) || !empty($sql3) || !empty($sql4) || !empty($sql5) ){
          $row= Yii::app()->db->createCommand("SELECT COUNT(id) as num,SUM(monto) as monto FROM rendicion_cliente WHERE  borrado=0 ".$consulta)->queryRow();
      
        }else{
          $row= Yii::app()->db->createCommand("SELECT COUNT(id) as num,SUM(monto) as monto FROM rendicion_cliente WHERE  borrado=0 ")->queryRow();
        }
        
        return $row;
    }
    
    
    public static  function reporte($fecha,$gestor){
 
        
        $sql1="";
        $sql2="";
   
        if(!empty($fecha)){
          $sql1= "AND DATE_FORMAT(fecha, '%Y-%m-%d')  = '$fecha' ";
        }
        if(!empty($gestor)){
        $sql2=" AND  id_gestor='".$gestor."'   ";
        }
     

        $consulta= $sql1.$sql2;

     
        if(!empty($sql1) || !empty($sql2)   ){
          $row= Yii::app()->db->createCommand("SELECT * FROM rendicion_cliente WHERE  borrado=0 ".$consulta)->queryAll();
      
        }else{
          $row= Yii::app()->db->createCommand("SELECT * FROM rendicion_cliente WHERE  borrado=0 ")->queryAll();
        }
        
        return $row;
    }
    
        
        
        
}
