<?php

class RendicionController extends Controller
{

	public $layout='//layouts/column2';

	
	public function filters()
	{
		return array(
			'accessControl',
			'postOnly + delete',
		);
	}

public function accessRules()
	{
		return array(
			array('allow',  
				'actions'=>array('cierre','reporte','pdf','index','view','create','update','admin','delete'),
				'expression' => array('RendicionController', '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)
	{
                $model=$this->loadModel($id);
                $model->id_gestor=Gestor::descripcion($model->id_gestor);
                $model->fecha=Utility::fecha($model->fecha);
                
                $this->pageTitle = 'Rendicion N° ';
		$this->render('view',array(
			'model'=>$model,
		));
	}


	public function actionCreate()
	{
		$model=new Rendicion;
                $model->campo4='CAPITAL + COMISIÓN';
		$this->pageTitle = 'Registrar Rendicion';
		if(isset($_POST['Rendicion']))
		{
                    $model->attributes=$_POST['Rendicion'];
                    
                    if($model->validate()){    
               
                    try
                    {   
                        
                    $rnd = rand(0,9999);    
                    if(!empty($_FILES["Rendicion"]["name"]['foto'])){
                       if($_FILES["Rendicion"]["name"]['foto']) {
                        $filename = $rnd.'-'.$_FILES["Rendicion"]["name"]['foto'];
                        $model->foto=$filename;
                        $source = $_FILES["Rendicion"]["tmp_name"]['foto'];
                        $directorio = 'upload/';
                        if(!file_exists($directorio)){
                                mkdir($directorio, 0777) or die("No se puede crear el directorio de extracci&oacute;n");	
                        }
                        $dir=opendir($directorio);
                        $target_path = $directorio.'/'.$filename;
                        
                        if(move_uploaded_file($source, $target_path)) {
                            $file = explode('.',$filename);
                            
                        }	
                        closedir($dir);   
                        $_POST['Rendicion']['foto']=$filename;
                        $model->foto=$_POST['Rendicion']['foto'];
                      }
                  } 
  
                        
                      $agregar= $model->add();
     
                      if ($agregar) {
                      $model->unsetAttributes();     
                      Yii::app()->user->setFlash('success', Yii::app()->params['add']);
                      $this->redirect(array('index'));  
                      }

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

                    }    
		}

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

	
        
	public function actionUpdate($id)
	{
		$this->pageTitle = 'Modificar Rendicion';
		$model=$this->loadModel($id);
                $model->fecha=Utility::fecha($model->fecha);
		$this->performAjaxValidation($model);

		if(isset($_POST['Rendicion']))
		{
		    $model->attributes=$_POST['Rendicion'];
                        
                     $rnd = rand(0,9999);
                 
                  if(!empty($_FILES["Rendicion"]["name"]['foto'])){
                       if($_FILES["Rendicion"]["name"]['foto']) {
                        $filename = $rnd.'-'.$_FILES["Rendicion"]["name"]['foto'];
                        $model->foto=$filename;
                        $source = $_FILES["Rendicion"]["tmp_name"]['foto'];
                        $directorio = 'upload/';
                        if(!file_exists($directorio)){
                                mkdir($directorio, 0777) or die("No se puede crear el directorio de extracci&oacute;n");	
                        }
                        $dir=opendir($directorio);
                        $target_path = $directorio.'/'.$filename;
                        
                        if(move_uploaded_file($source, $target_path)) {
                            $file = explode('.',$filename);
                            $_POST['Rendicion']['foto']=$filename;
                        }	
                        closedir($dir);            
                        $model->foto=$_POST['Rendicion']['foto'];
                        
                      }
                  }  else {
                      $_POST['Rendicion']['foto']=$model->foto;
                  }   
                        
                        
	            if($model->validate()){    
                    try
                    {
                        
                      $editar=$model->edit($id);  
             
                      Yii::app()->user->setFlash('success', Yii::app()->params['edit']);
                      $this->redirect(array('index'));  
                      

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

                    }
		}

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

	/**
	 * Deletes a particular model.
	 * If deletion is successful, the browser will be redirected to the 'admin' page.
	 * @param integer $id the ID of the model to be deleted
	 */
	public function actionDelete($id)
	{
		$model= new Rendicion();
                $eliminar=$model->borrar($id);

		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
	}

	public function actionIndex()
	{
		$this->pageTitle = 'Rendicion';
                if (isset($_GET['pageSize'])) {
                    Yii::app()->user->setState('pageSize', (int) $_GET['pageSize']);
                    unset($_GET['pageSize']);
                }
		$model=new Rendicion('search');
                
                
                $datos=  Rendicion::todo();
                
		$model->unsetAttributes(); 
		if(isset($_GET['Rendicion'])){
                    $model->attributes=$_GET['Rendicion'];
                    
                 if(isset($_GET['Rendicion']['fecha_desde']) and 
                        isset($_GET['Rendicion']['fecha_hasta'])){
                     
                     $datos=Rendicion::totalajax($_GET['Rendicion']['fecha_desde'],
                        $_GET['Rendicion']['fecha_hasta'],$_GET['Rendicion']['id_gestor'] );
                 
                     
                        }   
                    
                
                }
  
                
		$this->render('index',array(
			'model'=>$model,'datos'=>$datos
		));
	}

	public function loadModel($id)
	{
		$model=Rendicion::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']==='rendicion-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
  

       
        public function actionPdf()
	{      
               $this->layout='pdf';
               $session =new CHttpSession;
    	       $session->open(); 
    
                set_time_limit(0);
      
                if (isset( $session["rendicion"])) {
   
                    Yii::import("application.vendors.ren", true);
                    $pdf = new PDF();
                    $pdf->AliasNbPages();
                    $pdf->title='RENDICION ';
                    $pdf->SetMargins(10, 1, 2);
                    $pdf->AddPage();
                    $dataProvider =  $session["rendicion"];
                    $cliente = $session["cliente"];
                    $pdf->rendicion($dataProvider,$cliente);
                    $pdf->SetDisplayMode('real','continuous');
                    $pdf->Output("rendicion.pdf",'I');
              
            }
	}   
        
        
        
        public function actionReporte()
	{
	       $model=new Rendicion('pdf');
               $session =new CHttpSession;
    	       $session->open(); 
    
		$this->pageTitle = 'Reporte Rendicion';
		if(isset($_POST['Rendicion']))
		{
                    $model->attributes=$_POST['Rendicion'];
                        $rendicion=  Rendicion::reporte($_POST['Rendicion']['fecha'], $_POST['Rendicion']['id_gestor']);
                        $cliente= RendicionCliente::reporte($_POST['Rendicion']['fecha'], $_POST['Rendicion']['id_gestor']);
                        $session["rendicion"]=$rendicion;
                        $session["cliente"]=$cliente;
                        $this->redirect("pdf",compact("session"));
		}

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

        
        public function actionCierre()
	{
	       $model=new Rendicion('pdf');
               $session =new CHttpSession;
    	       $session->open(); 
               $nuevo=null;
               $renovacion=null;
               
		$this->pageTitle = 'CIERRE DEL DIA';
		if(isset($_POST['Rendicion']))
		{
                    $model->attributes=$_POST['Rendicion'];
                        $nuevo=Rendicion::nuevos($_POST['Rendicion']['fecha'], $_POST['Rendicion']['id_gestor']);
                        $renovacion=Rendicion::renovacion($_POST['Rendicion']['fecha'], $_POST['Rendicion']['id_gestor']);
		}

		$this->render('cierre',array(
			'model'=>$model,
                        'nuevo'=>$nuevo,
                        'renovacion'=>$renovacion,
                    
		));
	}
        
        
        
}
