<?php

class LaboralController extends Controller
{
    
	public $layout='//layouts/column2';


	public function filters()
	{
		return array(
			'accessControl', // perform access control for CRUD operations
			'postOnly + delete', // we only allow deletion via POST request
		);
	}

	
	public function accessRules()
	{
		return array(
			array('allow',  
				'actions'=>array('excel','index','view','create','update','delete'),
				'expression' => array('LaboralController', 'iniciarseccion'),
			),
			array('deny',
				'users'=>array('*'),
			),
		);
	}

        public static function iniciarseccion() {
            if (!Yii::app()->user->isGuest) {
                return true;
            } else {
                Yii::app()->user->setFlash('danger', Yii::app()->params['sesion']);
                return false;
            }
        }
        
        

	public function actionView($id)
	{       
            
                $this->pageTitle = 'DATOS LABORALES';
                $model=$this->loadModel($id);
                $empleado= Empleado::model()->findByPk($model->id_empleado);
                
                $model->dni=$empleado->dni;
                $model->nombre=$empleado->nombre;
                $model->apellido=$empleado->apellido;
                $model->direccion=$empleado->direccion;
                $model->mz=$empleado->mz;
                $model->lt=$empleado->lt;
                $model->nro_celular=$empleado->nro_celular;
                $model->fecha_inicio= Utility::fecha($model->fecha_inicio);
                
                
                $cargo= Cargo::model()->findByPk($model->id_cargo);
                $model->cargo=$cargo->descripcion;
                
                
		$this->render('view',array(
			'model'=>$model,'empleado'=>$empleado,
		));
	}


	public function actionCreate()
	{
		$model=new Laboral;
                $this->pageTitle = 'REGISTRAR DATOS LABORALES';
		if(isset($_POST['Laboral']))
		{
			$model->attributes=$_POST['Laboral'];
                        if($model->validate()){ 
                        
                        //validar que se aya seleccionado el empleado
                        if(!empty($_POST['Laboral']['id_empleado'])){
                            //validar que el empleado ya tenga una planilla asignada    
                         $existe= Laboral::laborarEmpleado($_POST['Laboral']['id_empleado']);
                         if(empty($existe)){
                                try
                                {    
                                $agregar= Laboral::add();  
                                Empleado::sueldo($_POST['Laboral']['id_empleado'],$_POST['Laboral']['sueldo']);
                                if ($agregar) {
                                    Yii::app()->user->setFlash('success', '¡La información se ha guardado exitosamente!');
                                    $this->redirect(array('index'));  
                                    }  else {
                                       Yii::app()->user->setFlash('info', 'Error al agregar la información.');
                                    }
                                }catch(Exception $e)
                                {
                                 Yii::app()->user->setFlash('danger', Yii::app()->params['error']); 
                                }
                         }else{
                                Yii::app()->user->setFlash('danger', 'YA EL EMPLEADO TIENE UNA PLANILLA ASIGNADA '); 
                         } 
                        }else{
                            Yii::app()->user->setFlash('danger', 'DEBE SELECCIONAR EL EMPLEADO, PARA CONTINUAR.');
                        }    
                        }
                }

		$this->render('create',array(
			'model'=>$model,
		));
	}

	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);
                $this->pageTitle = 'MODIFICAR DATOS LABORALES';
                
                $model->fecha_inicio= Utility::fecha($model->fecha_inicio); 
                
		if(isset($_POST['Laboral']))
		{
			$model->attributes=$_POST['Laboral'];
                        if($model->validate()){ 
                        try
                        {
                            $editar=Laboral::edit($id); 
                            
                            Empleado::sueldo($_POST['Laboral']['id_empleado'],$_POST['Laboral']['sueldo']);

                            
                            
                            Yii::app()->user->setFlash('success', 'La información fue actualizado con éxito.');   
                            $this->redirect(Yii::app()->request->baseUrl."/laboral");

                        }catch(Exception $e)
                        {
                         Yii::app()->user->setFlash('danger', Yii::app()->params['error']); 
                        }  
                        }
			
                        
                }

		$this->render('update',array(
			'model'=>$model,
		));
	}

	public function actionDelete($id)
	{
		$model= new Laboral();
                //borrar informacion laboral
                $model->borrar($id);
                $modela=Laboral::model()->findByPk($id);
                if(!empty($modela)){
                   Empleado::sueldoBorrar($modela->id_empleado);
                }
                
                if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
	}


	public function actionIndex()
	{       $this->pageTitle = 'LISTA DE DATOS LABORALES';
            
                if (isset($_GET['pageSize'])) {
                    Yii::app()->user->setState('pageSize', (int) $_GET['pageSize']);
                    unset($_GET['pageSize']);
                }
                
		$model=new Laboral('search');
		$model->unsetAttributes();
		if(isset($_GET['Laboral']))
			$model->attributes=$_GET['Laboral'];

		$this->render('index',array(
			'model'=>$model,
		));
	}

	
	public function loadModel($id)
	{
		$model=Laboral::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='laboral-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
        
         public function actionExcel(){
            $this->layout = 'pdf'; 
            set_time_limit(0);
            header("Content-Type: application/vnd.ms-excel; charset=utf-8");
            header("Content-Disposition: attachment; filename=laboral.xls");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Cache-Control: private",false);

            $t1='';
            $t1.='<th>DNI</th>';
            $t1.='<th>NOMBRES</th>';
            $t1.='<th>APELLIDOS</th>';
            $t1.='<th>DIRECCION</th>';
            $t1.='<th>MZ</th>';
            $t1.='<th>LT</th>';
            $t1.='<th>NRO. CELULAR</th>';
            
            $t1.='<th>FECHA DE INICIO</th>';
            $t1.='<th>SUELDO</th>';
            $t1.='<th>CARGO</th>';
    
            $d1 = $_SESSION['laboral'];
            $t2='';
            
            foreach ($d1->data as $item) {
                $t2.='<tr>';
                $t2.='<td>'.$item->dni.'</td>'; 
                $t2.='<td>'.CHtml::encode($item->nombre).'</td>'; 
                $t2.='<td>'.CHtml::encode($item->apellido).'</td>';
                $t2.='<td>'.CHtml::encode($item->direccion).'</td>';
                $t2.='<td>'.CHtml::encode($item->mz).'</td>';
                $t2.='<td>'.CHtml::encode($item->lt).'</td>';
                $t2.='<td>'.CHtml::encode($item->nro_celular).'</td>';
                $t2.='<td>'.Utility::fecha($item->fecha_inicio).'</td>';
                $t2.='<td>'.$item->sueldo.'</td>';
                $t2.='<td>'.CHtml::encode($item->cargo).'</td>';
                $t2.='</tr>';
            }
            
            echo utf8_decode('<html><body> <br><b>DATOS LABORALES</b><br> <br>  '
                    . '<table  border="1"  >'
                   .'<thead>
                   <tr style="background-color: #ffff00;">
                   '.$t1.'
                   </tr>
                 </thead>'
                   . '<tbody>'.$t2.'</tbody>'
                   . '</table>'

                    . '</body></html>');

      }
        
        
        
        
        
}
