<?php

/**
 * This is the model class for table "planilla".
 *
 * The followings are the available columns in table 'planilla':
 * @property integer $id_planilla
 * @property integer $id_empleado
 * @property string $anio
 * @property string $mes
 * @property string $quincena
 * @property string $dias_trabajo
 * @property string $feriado
 * @property string $bono
 * @property string $comision
 * @property string $descuento
 * @property string $penalidad
 * @property string $borrado
 */
class Planilla extends CActiveRecord
{       
        public $id_cargo;
        public $cargo;
        public $dni;
        public $nombre;
        public $apellido;
        public $direccion;
        public $mz;
        public $lt;
        public $nro_celular;
        public $fecha_desde;
        public $fecha_hasta;
        public $monto_cuotas;
   public $id_empleado;
        public $sueldo;
        public $sueldo_diario;

        
        public function tableName()
	{
		return 'planilla';
	}

	public function rules()
	{
		
		return array(
			array('id_empleado,fecha', 'required'),
			array('id_empleado', 'numerical', 'integerOnly'=>true),
                          array('prestamo_p', 'numerical'),
			array('dias_trabajo, feriado, bono, comision, descuento, penalidad', 'length', 'max'=>100),
			array('borrado', 'length', 'max'=>1),
			array('monto_cuotas,sueldo,fecha_desde,fecha_hasta,total,fecha,dia, id_cargo,cargo,dni,nombre,apellido,nro_celular,direccion,mz,lt,id_planilla, id_empleado,  dias_trabajo, feriado, bono, comision, descuento, penalidad, borrado', 'safe', 'on'=>'search'),
		);
	}

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


	public function attributeLabels()
	{
   
	return array(
			'id_planilla' => 'ID',
			'id_empleado' => 'NUM. EMPLEADO',
			'dias_trabajo' => 'DIAS DE TRABAJO',
			'feriado' => 'FERIADO',
			'bono' => 'BONO',
			'comision' => 'COMISION',
			'descuento' => 'DESCUENTO 1',
                        'descuento2' => 'DESCUENTO 2',
                        'descuento3' => 'DESCUENTO 3',
                        'prestamo_p' => 'PRESTAMO P',
			'penalidad' => 'PENALIDAD',
			'borrado' => 'BORRAD0',
                        'dni' => 'DNI',
                        'nombre' => 'NOMBRES',
                        'apellido' => 'APELLIDOS',
                        'fecha'=>'FECHA',
                        'dia'=>'DIA',
                        'descuento_prestamo'=>'CUOTA PRESTAMO',
                        'observacion'=>'OBSERVACION UNO',
                        'observacion1'=>'OBSERVACION DOS',
                        'observacion2'=>'OBSERVACION TRES',
                         'observacion3'=>'OBSERVACION CUATRO',
                        'id_prestamo'=>'NUM. PRESTAMO ',
                        'gratificacion'=>'GRATIFICACION ',
            
		);
	}


	public function search()
	{
	
		$criteria=new CDbCriteria;
                
                 if(!empty($this->fecha_desde) && empty($this->fecha_hasta)){
                    $criteria->condition="fecha = '$this->fecha_desde'  ";
                }elseif(!empty($this->fecha_hasta) && empty($this->fecha_desde)){
                    $criteria->condition="fecha= '$this->fecha_hasta'  ";
                }elseif(!empty($this->fecha_hasta) && !empty($this->fecha_desde)){
                    $criteria->condition="fecha >= '$this->fecha_desde' and fecha <= '$this->fecha_hasta'  ";
                }

                
                $criteria->select=array('t.descuento2,t.descuento3,t.observacion,t.fecha, t.dia,t.total,t.id_planilla, t.id_empleado, t.dias_trabajo, t.feriado, t.bono, t.comision, t.descuento, t.penalidad, t.borrado,  '
                    . 'a.dni as dni, a.nombre as nombre  , a.apellido as apellido,'
                    . 'a.direccion as direccion, a.mz as mz, a.lt as lt,'
                    . 'a.nro_celular as nro_celular '
                );
                
                $criteria->join="inner join empleado AS a on  a.id_empleado=t.id_empleado ";
                
                
		$criteria->compare('t.id_planilla',$this->id_planilla);
	//	$criteria->compare('t.id_empleado',$this->id_empleado);
               
                $criteria->compare('t.fecha',$this->fecha,true);
                
                $criteria->compare('LOWER(t.dia)',strtolower($this->dia),true);
                
		$criteria->compare('t.dias_trabajo',$this->dias_trabajo,true);
                
		$criteria->compare('t.feriado',$this->feriado,true);
		$criteria->compare('t.bono',$this->bono,true);
		$criteria->compare('t.comision',$this->comision,true);
		$criteria->compare('t.descuento',$this->descuento,true);
		$criteria->compare('t.penalidad',$this->penalidad,true);
                $criteria->compare('t.total',$this->total,true);
                
		$criteria->compare('t.borrado','0',true);

                $criteria->compare('a.dni',$this->dni,true);
                $criteria->compare('LOWER(a.nombre)',strtolower($this->nombre),true);
                $criteria->compare('LOWER(a.apellido)',strtolower($this->apellido),true);
		$criteria->compare('LOWER(a.direccion)',strtolower($this->direccion),true);
		$criteria->compare('LOWER(a.mz)',strtolower($this->mz),true);
		$criteria->compare('LOWER(a.lt)',strtolower($this->lt),true);
		$criteria->compare('a.nro_celular',$this->nro_celular,true);
                $criteria->compare('LOWER(b.descripcion)',strtolower($this->cargo),true);
          
                
                
                $sort = new CSort();
                $sort->defaultOrder = 'id_planilla DESC';
                $sort->attributes=array(
                    'id_planilla'=>array(
                        'asc'=>'id_planilla ASC',
                        'desc'=>'id_planilla DESC',
                    ),
                    'dni'=>array(
                        'asc'=>'dni ASC',
                        'desc'=>'dni DESC',
                    ),
                    'nombre'=>array(
                        'asc'=>'nombre ASC',
                        'desc'=>'nombre DESC',
                    ),
                    'apellido'=>array(
                        'asc'=>'apellido ASC',
                        'desc'=>'apellido DESC',
                    ),
                  
                    'fecha'=>array(
                        'asc'=>'fecha ASC',
                        'desc'=>'fecha DESC',
                    ),
                    'dia'=>array(
                        'asc'=>'dia ASC',
                        'desc'=>'dia DESC',
                    ), 
                    
                  
                    'total'=>array(
                        'asc'=>'total ASC',
                        'desc'=>'total DESC',
                    ), 
                    
                    
                );
                
                $data = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'pagination' => array(
                        'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']),
                    ),
                    'sort' => $sort,
                ));
                
                $_SESSION['planilla'] = 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 add() {
            
            $_POST['Planilla']['total']=round($_POST['Planilla']['total'], 0);
            
            $insert = Yii::app()->db->createCommand()->
                insert("planilla", array(
                    
                   "id_empleado" =>$_POST['Planilla']['id_empleado'],  
                   "fecha" => Utility::guardarFecha($_POST['Planilla']['fecha']),
                   "dia" =>$_POST['Planilla']['dia'],
                   "dias_trabajo" =>$_POST['Planilla']['dias_trabajo'],
                   "feriado" =>$_POST['Planilla']['feriado'],
                   "bono" =>$_POST['Planilla']['bono'],
                   "comision" =>$_POST['Planilla']['comision'],
                    
                   "gratificacion" =>$_POST['Planilla']['gratificacion'],
                    
                    
                   "descuento" =>$_POST['Planilla']['descuento'], 
                   "descuento2" =>$_POST['Planilla']['descuento2'],
                   "descuento3" =>$_POST['Planilla']['descuento3'],
                    
                   "penalidad" =>$_POST['Planilla']['penalidad'],
                   "total" =>$_POST['Planilla']['total'],
                    
                   "descuento_prestamo" =>$_POST['Planilla']['descuento_prestamo'],
                    
                   "id_prestamo" =>$_POST['Planilla']['id_prestamo'], 
                   
                    
                   "observacion" => Utility::mayuscula($_POST['Planilla']['observacion']),
                    
                    "observacion1" => Utility::mayuscula($_POST['Planilla']['observacion1']),
                    "observacion2" => Utility::mayuscula($_POST['Planilla']['observacion2']),
                    "observacion3" => Utility::mayuscula($_POST['Planilla']['observacion3']),
                    "prestamo_p" =>$_POST['Planilla']['prestamo_p'],
                    
                   "borrado" =>'0', 
            ));
            return $insert;
        }
        
        public static function edit($id) {
            
            $_POST['Planilla']['total']=round($_POST['Planilla']['total'], 0);
            
            
            $update = Yii::app()->db->createCommand()->
                update("planilla", array(
                   "id_empleado" =>$_POST['Planilla']['id_empleado'], 
                   "fecha" => Utility::guardarFecha($_POST['Planilla']['fecha']),
                   "dia" =>$_POST['Planilla']['dia'],
                   "dias_trabajo" =>$_POST['Planilla']['dias_trabajo'],
                   "gratificacion" =>$_POST['Planilla']['gratificacion'],
                   "feriado" =>$_POST['Planilla']['feriado'],
                   "bono" =>$_POST['Planilla']['bono'],
                   "comision" =>$_POST['Planilla']['comision'],
                   "descuento" =>$_POST['Planilla']['descuento'], 
                   "descuento2" =>$_POST['Planilla']['descuento2'],
                   "descuento3" =>$_POST['Planilla']['descuento3'],
                   "penalidad" =>$_POST['Planilla']['penalidad'],
                   "total" =>$_POST['Planilla']['total'], 
                   "descuento_prestamo" =>$_POST['Planilla']['descuento_prestamo'], 
                   "observacion" => Utility::mayuscula($_POST['Planilla']['observacion']),
                    "observacion1" => Utility::mayuscula($_POST['Planilla']['observacion1']),
                    "observacion2" => Utility::mayuscula($_POST['Planilla']['observacion2']),
                    "observacion3" => Utility::mayuscula($_POST['Planilla']['observacion3']),
                    "prestamo_p" =>$_POST['Planilla']['prestamo_p'],
                    
            ), "id_planilla=$id");
            return $update;
        }
        
        public static function borrar($id){
            $update = Yii::app()->db->createCommand()->
                update("planilla", array(
                "borrado" =>'1',           
            ), "id_planilla=$id");
            return $update;
        } 
        
        public static function quincena() {
            $lista=array('1'=>'1era QUINCENA','2'=>'2da QUINCENA');
            return $lista;
        }
        
        
        public static function mes() {
            $lista=array('1'=>'1',
                         '2'=>'2',
                         '3'=>'3',
                         '4'=>'4',
                         '5'=>'5',
                         '6'=>'6',
                         '7'=>'7',
                         '8'=>'8',
                         '9'=>'9',
                         '10'=>'10',
                         '11'=>'11',
                         '12'=>'12',
                );
            return $lista;
        }
        
        public static function numplanillas($id,$fecha){
            $fecha= Utility::guardarFecha($fecha);
            $aux=0;
            $num= Planilla::model()->count('id_empleado=? AND fecha=? AND borrado=0 ',array($id,$fecha));
            if(!empty($num)){
             $aux= $num;  
            }
            return $num;
        }
        

        public static function listaPagos($id){   
           
           $v='';
           if (!empty($id)){
                 $v= Planilla::model()->findAll(array('condition'=>'id_prestamo='.htmlspecialchars(addslashes(stripslashes(strip_tags(trim($id))))).' and borrado=0 ','order'=>'fecha asc'));           
           }

            return $v; 
    } 
        
        
    public static  function todo(){
        $total=0;
        $sql="SELECT * FROM planilla  where borrado='0'";
        $planilla=  Yii::app()->db->createCommand($sql)->queryAll();
        if(!empty($planilla)){
            for ($i = 0; $i<count($planilla); $i++) {
                $planilla[$i]["total"]= round($planilla[$i]["total"], 0);
                $total=$total+$planilla[$i]["total"];
            }
        }
        return $total;
    }
    
    
     public static  function total2($id_empleado,
             $fecha_desde,$fecha_hasta){
        
        $sql1="";
        $sql2="";
        $total=0;
        
        
        if(!empty($id_empleado)){
        $sql1=" AND  id_empleado='".$id_empleado."'   ";
        }

        if(!empty($fecha_desde) && empty($fecha_hasta)){
          $sql2= "AND fecha  <= '$fecha_desde' ";
        }elseif(!empty($fecha_hasta) && empty($fecha_desde)){
          $sql2= "AND fecha >= '$fecha_hasta'";
        }elseif(!empty($fecha_hasta) && !empty($fecha_desde)){
          $sql2=  "AND fecha >= '$fecha_desde' and fecha <= '$fecha_hasta' ";
        }
        
       
        $consulta= $sql1.$sql2;
   
        if(!empty($sql1) || !empty($sql2)    ){
          $planilla= Yii::app()->db->createCommand("SELECT * FROM planilla  where borrado='0' ".$consulta)->queryAll();
        }else{
          $planilla= Yii::app()->db->createCommand("SELECT * FROM planilla  where borrado='0'  ")->queryAll();
        }
        
        
        if(!empty($planilla)){
            for ($i = 0; $i<count($planilla); $i++) {
                $planilla[$i]["total"]= round($planilla[$i]["total"], 0);
                $total=$total+$planilla[$i]["total"];
            }
        }
        
        
        
        
        
        return $total;
    }
   
    
    
    
    
    
    
    
        
}
