<?php

/**
 * This is the model class for table "laboral".
 *
 * The followings are the available columns in table 'laboral':
 * @property integer $id_laboral
 * @property integer $id_empleado
 * @property string $fecha_inicio
 * @property string $sueldo
 * @property integer $id_cargo
 * @property string $borrado
 */
class Laboral extends CActiveRecord
{
	
    public $cargo;
    public $dni;
    public $nombre;
    public $apellido;
    public $direccion;
    public $mz;
    public $lt;
    public $nro_celular;
    public $fecha_desde;
    public $fecha_hasta;




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

	public function rules()
	{
		
		return array(
                    
                        array('id_empleado, fecha_inicio, sueldo, id_cargo', 'required'),
			array('id_empleado, id_cargo', 'numerical', 'integerOnly'=>true),
			array('sueldo', 'length', 'max'=>100),
			array('borrado', 'length', 'max'=>1),
			array('fecha_inicio', 'safe'),
			array('fecha_hasta,fecha_desde,cargo,dni,nombre,apellido,direccion, mz,lt,nro_celular,  id_laboral, id_empleado, fecha_inicio, sueldo, id_cargo, borrado', 'safe', 'on'=>'search'),
		);
	}

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


	public function attributeLabels()
	{

		return array(
			'id_laboral' => 'ID',
			'id_empleado' => 'EMPLEADO',
                    
			'fecha_inicio' => 'FECHA DE INICIO',
			'sueldo' => 'SUELDO',
			'id_cargo' => 'CARGO',
                    
			'borrado' => 'Borrado',
                        'cargo'=>'CARGO',
                        'dni'=>'DNI',
                        'nombre'=>'NOMBRES',
                        'apellido'=>'APELLIDOS',
                        'direccion'=>'DIRECCION',
                        'mz'=>'MZ',
                        'lt'=>'LT',
                        'nro_celular'=>'CELULAR',
                        'fecha_desde'=>'FECHA DESDE',
                        'fecha_hasta'=>'FECHA HASTA'
		);
	}



	public function search()
	{

		$criteria=new CDbCriteria;

                 if(!empty($this->fecha_desde) && empty($this->fecha_hasta)){
                    $criteria->condition="t.fecha_inicio  <= '$this->fecha_desde' ";
                }elseif(!empty($this->fecha_hasta) && empty($this->fecha_desde)){
                    $criteria->condition="t.fecha_inicio >= '$this->fecha_hasta'";
                }elseif(!empty($this->fecha_hasta) && !empty($this->fecha_desde)){
                    $criteria->condition="t.fecha_inicio >= '$this->fecha_desde' and t.fecha_inicio <= '$this->fecha_hasta' ";
                }

                $criteria->select=array('t.id_laboral, t.id_empleado, t.fecha_inicio, t.sueldo, t.id_cargo, 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,   '
                    . 'b.descripcion as cargo'
                );
                
                $criteria->join="inner join empleado AS a on  a.id_empleado=t.id_empleado "
                        . " inner join cargo AS b on  b.id_cargo=t.id_cargo";
                
                
		$criteria->compare('t.id_laboral',$this->id_laboral);
		$criteria->compare('t.id_empleado',$this->id_empleado);
		$criteria->compare('t.fecha_inicio',$this->fecha_inicio,true);
		$criteria->compare('t.sueldo',$this->sueldo,true);
		$criteria->compare('t.id_cargo',$this->id_cargo);
		$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_laboral DESC';
                $sort->attributes=array(
                    'id_laboral'=>array(
                        'asc'=>'id_laboral ASC',
                        'desc'=>'id_laboral 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_inicio'=>array(
                        'asc'=>'fecha_inicio ASC',
                        'desc'=>'fecha_inicio DESC',
                    ),
                    'sueldo'=>array(
                        'asc'=>'sueldo ASC',
                        'desc'=>'sueldo DESC',
                    ),
                    'cargo'=>array(
                        'asc'=>'cargo ASC',
                        'desc'=>'cargo DESC',
                    ),  
               
                );
		$data = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'pagination' => array(
                        'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']),
                    ),
                    'sort' => $sort,
                ));
                
                $_SESSION['laboral'] = new CActiveDataProvider($this, array(
                    'criteria' => $criteria,
                    'sort' => $sort,
                    "pagination" => false
                ));
                
                return $data;

	}
        
        public static function add() {
            $update = Yii::app()->db->createCommand()->
                insert("laboral", array(
                    "id_empleado" =>$_POST['Laboral']['id_empleado'], 
                    "fecha_inicio" => Utility::guardarFecha($_POST['Laboral']['fecha_inicio']), 
                    "sueldo" =>$_POST['Laboral']['sueldo'],
                    "id_cargo" =>$_POST['Laboral']['id_cargo'],
            ));
            return $update;
        }
        
        public static function edit($id) {
            $update = Yii::app()->db->createCommand()->
                update("laboral", array(
                   // "id_empleado" =>$_POST['Laboral']['id_empleado'], 
                    "fecha_inicio" => Utility::guardarFecha($_POST['Laboral']['fecha_inicio']), 
                    "sueldo" =>$_POST['Laboral']['sueldo'],
                    "id_cargo" =>$_POST['Laboral']['id_cargo'], 
            ), "id_laboral=$id");
            return $update;
        }
        
        public static function borrar($id){
            $update = Yii::app()->db->createCommand()->
                update("laboral", array(
                "borrado" =>'1',           
            ), "id_laboral=$id");
            return $update;
        } 

	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
        
        
        //obtener si tiene otra informacion laboral
        public static function laborarEmpleado($id_empleado){   
           
           $v='';
           if (!empty($id_empleado)){
                 $v= Laboral::model()->find(array('condition'=>'id_empleado='.htmlspecialchars(addslashes(stripslashes(strip_tags(trim($id_empleado))))).' and borrado="0" '));           
           }
            return $v; 
        }   

        
        
        
        
        
        
        
}
