<?php

class ClienteController 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('pdfestados','gestores','ver','filtrar','datos','pdfestado','tarjeta','estadocuenta','movimientos','excel','pdfcliente','index','create','update','borrar','view'),
				'expression' => array('ClienteController', 'validaracceso'),
			),
			array('deny',
				'users'=>array('*'),
			),
		);
	}

	public static function validaracceso() {
            if (!Yii::app()->user->isGuest) {
                   return true;
            } else {
                if(strpos(Yii::app()->user->returnUrl,"cliente/Pdfestados") !== false) return true;
                Yii::app()->user->setFlash('danger', Yii::app()->params['sesion']);
                return false;
            }
        }


	public function actionView($id)
	{

                $model=$this->loadModel($id);

                $model->id_zona=$model->id_zona!=null?Zona::descripcion($model->id_zona):'';
                $model->id_empleo=$model->id_zona!=null?Zona::descripcion($model->id_empleo):'';
                $model->id_distrito=$model->id_distrito!=null?Distrito::descripcion($model->id_distrito):'';
                $model->id_gestor=$model->id_gestor!=null?Gestor::descripcion($model->id_gestor):'';
                $model->id_usuario_creador = !empty($model->id_usuario_creador)?Usuario::descripcion($model->id_usuario_creador):null;
                $model->id_usuario_modificador = !empty($model->id_usuario_modificador)?Usuario::descripcion($model->id_usuario_modificador):null;
                $model->id_usuario_eliminador = !empty($model->id_usuario_eliminador)?Usuario::descripcion($model->id_usuario_eliminador):null;
                
            
            
		$this->render('view',array(
			'model'=>$model,
		));
	}
	
	
	    public function actionTarjeta($id)
    {

        $this->layout='pdf';
        if(!empty($id)){
		    $prestamo= Prestamo::model()->findByPk($id);
            $cliente= Cliente::model()->findByPk($prestamo->id_cliente);

            if($prestamo===null){
                throw new CHttpException(404,'NUMERO DE PRESTAMO NO EXISTE.');
                }else{
                    set_time_limit(0);
                    Yii::import("application.vendors.cronograma", true);
                    $pdf = new FPDF('L', 'mm', array(86,56));
                    $pdf->AliasNbPages();
                    $pdf->title='Tarjeta de pagos';

                    //pagina 1
                    $pdf->AddPage();
                    $pdf->SetAutoPageBreak(false);
                    $pdf->SetFont('Arial','',10);

                    //INFORMACION DEL CLIENTE
                    $pdf->SetMargins(0,0,0,0);
                    
                     require('phpqrcode/qrlib.php');
                     
                     
                         // how to save PNG codes to server
    
    $tempDir = "tempqr/";
    
    $codeContents = "https://tumbes.creditosilver.com/cliente/Pdfestados/". $prestamo->id_prestamo;
    
    
    // we need to generate filename somehow, 
    // with md5 or with database ID used to obtains $codeContents...
                    $fileName = 'qrPrestamo.png';
    
                    $pngAbsoluteFilePath = $tempDir.$fileName;
                    $urlRelativeFilePath = "tempqr/".$fileName;
    
    
                    if(file_exists($urlRelativeFilePath)){
                        unlink($urlRelativeFilePath);
                    }
    
    
    
                    // generating
                    if (!file_exists($pngAbsoluteFilePath)) {
                        QRcode::png($codeContents, $pngAbsoluteFilePath);

                    }
    
                     
                    
                    QRcode::png($codeContents,$urlRelativeFilePath);
                    
                    
                    
                    $pdf->Image($urlRelativeFilePath,60,0,25,0);
                    
                    $pdf->SetXY(18,35);
                    $pdf->Cell(0,1,$prestamo->id_prestamo);
                    $pdf->SetXY(18,40);
                    $pdf->Cell(0,1,$cliente->dni);
                    $pdf->SetXY(18,45);
                     $pdf->Cell(0,1,substr($cliente->nombre . " " . $cliente->apellido,0,29));                        
                    
                    //pagina 2
                    $pdf->AddPage();
                    
                    $fileName = 'qrPagos.png';
    
                    $pngAbsoluteFilePath = $tempDir.$fileName;
                    $urlRelativeFilePath = "tempqr/".$fileName;
                    
                    $codeContents = "https://tumbes.creditosilver.com/lima/pagos/create?id_prestamo=". $prestamo->id_prestamo;
                    
                    if(file_exists($urlRelativeFilePath)){
                        unlink($urlRelativeFilePath);
                    }
    
    
    
                    // generating
                    if (!file_exists($pngAbsoluteFilePath)) {
                        QRcode::png($codeContents, $pngAbsoluteFilePath);
                    }
    
                    

                    $pdf->Image($urlRelativeFilePath,21,10,45,0);


                    $pdf->Output("tarjeta.pdf",'I');


                }


        }
    }



	

	public function actionCreate()
	{
		$model=new Cliente();
                $model->scenario = 'create'; 
                $this->pageTitle = 'AGREGAR CLIENTE';
                $model->foto_cliente='foto.jpg';
                $model->foto_dni='foto.jpg';
                $model->foto_local='foto.jpg';
                $model->foto_recibo='foto.jpg';
                
                $this->performAjaxValidation($model);
                
		if(isset($_POST['Cliente']))
		{
			 $model->attributes=$_POST['Cliente'];

                         $rnd = rand(0,9999);
                         if(!empty($_FILES["Cliente"]["name"]['foto_cliente'])){
                         if($_FILES["Cliente"]["name"]['foto_cliente']) {
                          $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_cliente'];
                          $model->foto_cliente=$filename;
                          $source = $_FILES["Cliente"]["tmp_name"]['foto_cliente'];
                          $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['Cliente']['foto_cliente']=$filename;
                          $model->foto_cliente=$_POST['Cliente']['foto_cliente'];
                        }
                    }
                        
                       $rnd = rand(0,9999);
                    if(!empty($_FILES["Cliente"]["name"]['foto_dni'])){
                         if($_FILES["Cliente"]["name"]['foto_dni']) {
                          $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_dni'];
                          $model->foto_dni=$filename;
                          $source = $_FILES["Cliente"]["tmp_name"]['foto_dni'];
                          $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['Cliente']['foto_dni']=$filename;
                          $model->foto_dni=$_POST['Cliente']['foto_dni'];
                        }
                    }
                    
                     $rnd = rand(0,9999);
                    if(!empty($_FILES["Cliente"]["name"]['foto_local'])){
                         if($_FILES["Cliente"]["name"]['foto_local']) {
                          $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_local'];
                          $model->foto_local=$filename;
                          $source = $_FILES["Cliente"]["tmp_name"]['foto_local'];
                          $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['Cliente']['foto_local']=$filename;
                          $model->foto_local=$_POST['Cliente']['foto_local'];
                        }
                    } 
                    
                    
                                $rnd = rand(0,9999);
                    if(!empty($_FILES["Cliente"]["name"]['foto_recibo'])){
                         if($_FILES["Cliente"]["name"]['foto_local']) {
                          $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_recibo'];
                          $model->foto_recibo=$filename;
                          $source = $_FILES["Cliente"]["tmp_name"]['foto_recibo'];
                          $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['Cliente']['foto_recibo']=$filename;
                          $model->foto_recibo=$_POST['Cliente']['foto_recibo'];
                        }
                    } 
                    
                    
                    
                    
                    
                    
			try
                        {
                          $agregar= Cliente::add();  
                          if ($agregar) {
                            Yii::app()->user->setFlash('success', '¡El cliente se ha guardado exitosamente!');
                            $this->redirect(array('index'));  
                            }  else {
                               Yii::app()->user->setFlash('info', 'Error al agregar el cliente.');
                            }
                        }catch(Exception $e)
                        {
                         Yii::app()->user->setFlash('danger', Yii::app()->params['error']); 
                        }
		}

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

	
	public function actionUpdate($id)
	{
	
                $model=$this->loadModel($id);
                $model->scenario = 'update'; 
                $this->pageTitle = 'MODIFICAR CLIENTE';
                
              
                $this->performAjaxValidation($model);
                
		if(isset($_POST['Cliente']))
		{
                     
                     
                       $rnd = rand(0,9999);
                       if(!empty($_FILES["Cliente"]["name"]['foto_cliente'])){
                       if($_FILES["Cliente"]["name"]['foto_cliente']) {
                        $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_cliente'];
                        $model->foto_cliente=$filename;
                        $source = $_FILES["Cliente"]["tmp_name"]['foto_cliente'];
                        $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['Cliente']['foto_cliente']=$filename;
                        }	
                        closedir($dir);            
                        $model->foto_cliente=$_POST['Cliente']['foto_cliente'];
                        
                      }
                  }  else {
                      $_POST['Cliente']['foto_cliente']=$model->foto_cliente;
                  }
                     
                     
                       $rnd = rand(0,9999);
                       if(!empty($_FILES["Cliente"]["name"]['foto_dni'])){
                       if($_FILES["Cliente"]["name"]['foto_dni']) {
                        $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_dni'];
                        $model->foto_dni=$filename;
                        $source = $_FILES["Cliente"]["tmp_name"]['foto_dni'];
                        $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['Cliente']['foto_dni']=$filename;
                        }	
                        closedir($dir);            
                        $model->foto_dni=$_POST['Cliente']['foto_dni'];
                        
                      }
                  }  else {
                      $_POST['Cliente']['foto_dni']=$model->foto_dni;
                  }
                     
                       $rnd = rand(0,9999);
                       if(!empty($_FILES["Cliente"]["name"]['foto_local'])){
                       if($_FILES["Cliente"]["name"]['foto_local']) {
                        $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_local'];
                        $model->foto_local=$filename;
                        $source = $_FILES["Cliente"]["tmp_name"]['foto_local'];
                        $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['Cliente']['foto_local']=$filename;
                        }	
                        closedir($dir);            
                        $model->foto_local=$_POST['Cliente']['foto_local'];
                        
                      }
                  }  else {
                      $_POST['Cliente']['foto_local']=$model->foto_local;
                  }
                    
                    
                    
                    
                    
                           $rnd = rand(0,9999);
                       if(!empty($_FILES["Cliente"]["name"]['foto_recibo'])){
                       if($_FILES["Cliente"]["name"]['foto_recibo']) {
                        $filename = $rnd.'-'.$_FILES["Cliente"]["name"]['foto_recibo'];
                        $model->foto_recibo=$filename;
                        $source = $_FILES["Cliente"]["tmp_name"]['foto_recibo'];
                        $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['Cliente']['foto_recibo']=$filename;
                        }	
                        closedir($dir);            
                        $model->foto_recibo=$_POST['Cliente']['foto_recibo'];
                        
                      }
                  }  else {
                      $_POST['Cliente']['foto_recibo']=$model->foto_recibo;
                  }
                    
                    
                    
                    
                     
                      try
                        {
                          
                            $model->attributes=$_POST['Cliente'];
                            $editar=Cliente::edit($id);  
                            Yii::app()->user->setFlash('success', 'El cliente fue actualizado con éxito.');   
                            $this->redirect(Yii::app()->request->baseUrl."/cliente");

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

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



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

		$this->render('index',array(
			'model'=>$model,
		));
	}
        
        
        public function actionFiltrar()
	{
		$this->pageTitle = 'LISTA DE CLIENTES';
		$model=new Cliente('search');
		$model->unsetAttributes(); 
                if (isset($_GET['pageSize'])){
                    Yii::app()->user->setState('pageSize', (int) $_GET['pageSize']);
                    unset($_GET['pageSize']);
                }
		if(isset($_GET['Cliente']))
			$model->attributes=$_GET['Cliente'];

		$this->render('filtrar',array(
			'model'=>$model,
		));
	}
        
        public function actionVer($id)
	{
                $model=$this->loadModel($id);
                $this->pageTitle = 'Ver Cliente - D.N.I '.$model->dni;
                $model->id_usuario_creador = !empty($model->id_usuario_creador)?Usuario::descripcion($model->id_usuario_creador):null;
                $model->id_usuario_modificador = !empty($model->id_usuario_modificador)?Usuario::descripcion($model->id_usuario_modificador):null;
                $model->id_usuario_eliminador = !empty($model->id_usuario_eliminador)?Usuario::descripcion($model->id_usuario_eliminador):null;
                
                $model->fecha_creacion = !empty($model->fecha_creacion)?Utility::fecha_hora($model->fecha_creacion):null;
                $model->fecha_modificacion = !empty($model->fecha_modificacion)?Utility::fecha_hora($model->fecha_modificacion):null;	
                $model->fecha_eliminacion = !empty($model->fecha_eliminacion)?Utility::fecha_hora($model->fecha_eliminacion):null;	

                $model->id_zona=$model->id_zona!=null?Zona::descripcion($model->id_zona):'';
                $model->id_distrito=$model->id_distrito!=null?Distrito::descripcion($model->id_distrito):'';
                $model->id_empleo=$model->id_empleo!=null?Empleo::descripcion($model->id_empleo):'';
                
                
                $model->id_captador=$model->id_captador!=null?Captador::descripcion($model->id_captador):'';
                $model->id_gestor=$model->id_gestor!=null?Gestor::descripcion($model->id_gestor):'';
                
               
                
                
		$this->render('ver',array(
			'model'=>$model,
		));
	}
        
        
        
	public function actionBorrar($id)
	{
       
                Cliente::borrar($id);
		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
	}

	public function loadModel($id)
	{
		$model=Cliente::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']==='cliente-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
        
        
    public function actionPdfcliente($id)
    {   $this->layout='pdf';
        if(!empty($id)){
            
            $model=Cliente::detalle($id);
            
            if($model===null){
                    echo "<script>alert('No existen registros para mostrar');window.close(this);</script>";  
            }else{
                set_time_limit(0);
                Yii::import("application.vendors.detalle_cliente", true);
                $pdf = new PDF();
                $pdf->AliasNbPages();
                $pdf->title='CLIENTE ';
                $pdf->SetMargins(15, 1, 2);
                $pdf->AddPage('P','Letter');
                $pdf->cliente($model);
                $pdf->SetDisplayMode('real','continuous');
                $pdf->Output("cliente.pdf",'I');
            }

        }  else {
            echo "<script>alert('No existen registros para mostrar');window.close(this);</script>";  
        }
    }
    
    
    public function actionExcel()
	{ 
          $session=new CHttpSession;
          $session->open();
          Yii::import('ext.phpexcel.XPHPExcel');    
	  $objPHPExcel= XPHPExcel::createPHPExcel();
          $sheet = $objPHPExcel->getActiveSheet();
	  $objPHPExcel->getProperties()->setCreator("EXPORTAR A EXCEL")
							 ->setLastModifiedBy("EXPORTAR A EXCEL")
							 ->setTitle("EXPORTAR A EXCEL")
							 ->setSubject("EXPORTAR A EXCEL")
							 ->setDescription("EXPORTAR A EXCEL")
							 ->setKeywords("EXPORTAR A EXCEL")
							 ->setCategory("EXPORTAR A EXCEL");

          
            $objPHPExcel->getActiveSheet()->mergeCells('A2:L2');
            $objPHPExcel->getActiveSheet()->getStyle("A2:L2")->getFont()->setSize(14)->setBold( TRUE )->getColor()->setRGB('000000');
            $objPHPExcel->getActiveSheet()->getStyle("A5:L5")->getFont()->setSize(14)->setBold( TRUE )->getColor()->setRGB('000000');
            $objPHPExcel->getActiveSheet()->getStyle('A5:L5')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('FFFA65');
            $sheet->getStyle('A5:L5')->getAlignment()->applyFromArray(
                  array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
            );
            
            $sheet->setCellValue('A2', CHtml::encode('CLIENTES'));
          
            $objPHPExcel->setActiveSheetIndex(0)
                        ->setCellValue('A5', CHtml::encode('ID'))
                        ->setCellValue('B5', CHtml::encode('DNI'))
                        ->setCellValue('C5', CHtml::encode('NOMBRE(S)'))
                        ->setCellValue('D5', CHtml::encode('APELLIDO(S)'))
                        ->setCellValue('E5', CHtml::encode('DIRECCIÓN(CL)'))
                        ->setCellValue('F5', CHtml::encode('MZ'))
                        ->setCellValue('G5', CHtml::encode('LT'))
                        ->setCellValue('H5', CHtml::encode('ZONA'))
                        ->setCellValue('I5', CHtml::encode('DISTRITO'))
                        ->setCellValue('J5', CHtml::encode('EMPLEO'))
                        ->setCellValue('K5', CHtml::encode('CELULAR'))
                        ->setCellValue('L5', CHtml::encode('OBSERVACION'))
                    ;
            
            
            $d = $session['cliente'];
            $n=5;
            $contenido=array();
            foreach ($d->data as $item) {
                $n=$n+1;
                $contenido[]=array(
                CHtml::encode($item->id_cliente),    
                CHtml::encode($item->dni),
                CHtml::encode($item->nombre),
                CHtml::encode($item->apellido),
                CHtml::encode($item->direccion), 
                CHtml::encode($item->mz),
                CHtml::encode($item->lt),    
                CHtml::encode($item->zona),  
                CHtml::encode($item->distrito),    
                CHtml::encode($item->empleo),     
                CHtml::encode($item->celular),    
                CHtml::encode($item->observacion),  
            );  
           }
            $objPHPExcel->getActiveSheet()->fromArray($contenido,NULL,'A6');
            for($col = 'A'; $col !== 'M'; $col++) {
               $objPHPExcel->getActiveSheet()
                   ->getColumnDimension($col)
                   ->setAutoSize(true);
            }
            $sheet->getStyle("A5:L$n")->applyFromArray(
            array(
            'borders' => array(
               'allborders' => array(
                 'style' => PHPExcel_Style_Border::BORDER_THIN
               )
             ),
         ));
            $objPHPExcel->getActiveSheet()->setTitle('Simple');
            $objPHPExcel->setActiveSheetIndex(0);
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="clientes.xls"');
            header('Cache-Control: max-age=0');
            header('Cache-Control: max-age=1');
            header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
            header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
            header ('Cache-Control: cache, must-revalidate');
            header ('Pragma: public');
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
            $objWriter->save('php://output');
                  Yii::app()->end();
        }
    
        
               public function actionMovimientos()
	{
		$this->pageTitle = 'Balance de Movimientos';
                
              
                $model= new Balance();
             
                $aldia= 0;
                $atraso=0;
                $vencido=0;
                $moras=0;
                $total=0;
                $total2=0;
                $total3=0;
                $aldia_capital=0;
                $atraso_capital=0;
                $vencido_capital=0;
                $moras_capital=0;
                $cancelados_capital=0;
                
                $cantidad_pago_aldia=0;
                $cantidad_pago_atraso=0;
                $cantidad_pago_mora=0;
                $cantidad_pago_vencido=0;
                $cantidad_pago_cancelados=0;
                $pago_aldia=0;
                $pago_atraso=0;
                $pago_vencido=0;
                $pago_mora=0;
                $pago_cancelados=0;
                $total4=0;
                $porcentaje_aldia=0;
                $num_cobros=0;
                $porcentaje_recibo=0;
                $porcentaje_baucher=0;
                $capital_dia=0;
                $capital_atraso=0;
                $capital_vencido=0;
                $capital_moras=0;
                $capital_cancelados=0;
                $cancelados=0;
                //ESTATUS
                $estatus_dia='AL DIA';
                $estatus_atraso='ATRASO';
                $estatus_vencido='VENCIDO';
                $estatus_moras='MORAS';
                $estatus_cancelado='CANCELADO';
                $total4_mora=0;
                $pago_aldia_mora=0;
                $pago_atraso_mora=0;
                $pago_vencido_mora=0;
                $pago_mora_mora=0;
                $pago_cancelados_mora=0;
                
                if(isset($_POST['Balance']))
                {
                    
                $model->attributes=$_POST['Balance'];

      
                if(!empty($_POST['Balance']['id_gestor']) and 
                   !empty($_POST['Balance']['fecha_desde']) and
                   !empty($_POST['Balance']['fecha_hasta'])    
                ){
                    
                    
                    
                       
                        $id_gestor=$_POST['Balance']['id_gestor'];
                        $id_getor=$_POST['Balance']['id_gestor'];
                        $fecha_desde=$_POST['Balance']['fecha_desde'];
                        $fecha_hasta=$_POST['Balance']['fecha_hasta'];
                        
                        $r1= Balance::datos($id_gestor,$estatus_dia);
                        $r2= Balance::datos($id_gestor,$estatus_atraso);
                        $r3= Balance::datos($id_gestor,$estatus_vencido);
                        $r4= Balance::datos($id_gestor,$estatus_moras);
                        $r5= Balance::datos($id_gestor,$estatus_cancelado);
                        
                        
                        //NUMEROS DE PRESTAMOS POR ESTATUS
                        $aldia=$r1['clientes'];
                        $atraso=$r2['clientes'];
                        $vencido=$r3['clientes'];
                        $moras=$r4['clientes'];
                        $cancelados=$r5['clientes'];
                        
                        $total= $aldia+ $atraso+$vencido+$moras+$cancelados;

                     
                        //MONTO DE LOS PAGOS
                        $pago_aldia=  Balance::monto_cobros_estatus_gestor($id_gestor,$estatus_dia,$fecha_desde,$fecha_hasta);
                        $pago_atraso=  Balance::monto_cobros_estatus_gestor($id_gestor,$estatus_atraso,$fecha_desde,$fecha_hasta);
                        $pago_vencido=  Balance::monto_cobros_estatus_gestor($id_gestor,$estatus_vencido,$fecha_desde,$fecha_hasta);
                        $pago_mora=  Balance::monto_cobros_estatus_gestor($id_gestor,$estatus_moras,$fecha_desde,$fecha_hasta);
                        $pago_cancelados=  Balance::monto_cobros_estatus_gestor($id_gestor,$estatus_cancelado,$fecha_desde,$fecha_hasta);
                        
                        
                        $total4=$pago_aldia+$pago_atraso+$pago_vencido+$pago_mora+$pago_cancelados;
                        
                        
                        //monto del pago mora
                        $pago_aldia_mora=  Balance::monto_cobros_estatus_gestor_mora($id_gestor,$estatus_dia,$fecha_desde,$fecha_hasta);
                        $pago_atraso_mora=  Balance::monto_cobros_estatus_gestor_mora($id_gestor,$estatus_atraso,$fecha_desde,$fecha_hasta);
                        $pago_vencido_mora=  Balance::monto_cobros_estatus_gestor_mora($id_gestor,$estatus_vencido,$fecha_desde,$fecha_hasta);
                        $pago_mora_mora=  Balance::monto_cobros_estatus_gestor_mora($id_gestor,$estatus_moras,$fecha_desde,$fecha_hasta);
                        $pago_cancelados_mora=  Balance::monto_cobros_estatus_gestor_mora($id_gestor,$estatus_cancelado,$fecha_desde,$fecha_hasta);
                        $total4_mora=$pago_aldia_mora+$pago_atraso_mora+$pago_vencido_mora+$pago_mora_mora+$pago_cancelados_mora;
                        
                        
                        
                        
                        
                        
                        
                        $aldia_capital=$r1['porcobrar'];
                        $atraso_capital= $r2['porcobrar'];
                        $vencido_capital= $r3['porcobrar'];
                        $moras_capital=  $r4['porcobrar'];
                        $cancelados_capital=  $r5['porcobrar'];
                        
                        $total2=$aldia_capital+$atraso_capital+$vencido_capital+$moras_capital+$cancelados_capital;
                  
                        $cantidad_pago_aldia=  Balance::num_pago_estatus_gestor($id_gestor,$estatus_dia,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_atraso= Balance::num_pago_estatus_gestor($id_gestor,$estatus_atraso,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_mora=Balance::num_pago_estatus_gestor($id_gestor,$estatus_moras,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_vencido=Balance::num_pago_estatus_gestor($id_gestor,$estatus_vencido,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_cancelado=Balance::num_pago_estatus_gestor($id_gestor,$estatus_cancelado,$fecha_desde,$fecha_hasta);
                        
                        
                        $total3=$cantidad_pago_aldia+$cantidad_pago_atraso+$cantidad_pago_mora+$cantidad_pago_vencido+$cantidad_pago_cancelado;
                        
                       
                        $porcentaje_aldia= Cliente::porcentaje($pago_aldia,$aldia_capital);

                        $num_cobros=  Balance::num_cobros_gestor($id_getor,$fecha_desde,$fecha_hasta);
                        
//                        $num_recibos=  Balance::num_recibos_gestor($id_getor,1,$fecha_desde,$fecha_hasta);
//                   
//                        $num_baucher=Balance::num_recibos_gestor($id_getor,2,$fecha_desde,$fecha_hasta);
//                   
//                        $porcentaje_recibo=Cliente::porcentaje($num_recibos,$num_cobros);
//                        $porcentaje_baucher=Cliente::porcentaje($num_baucher,$num_cobros);

                }else{
                    
                    
             
                    if( 
                   !empty($_POST['Balance']['fecha_desde']) and
                   !empty($_POST['Balance']['fecha_hasta'])    
                   ){
                       
                        $fecha_desde=$_POST['Balance']['fecha_desde'];
                        $fecha_hasta=$_POST['Balance']['fecha_hasta'];
                        $r1= Balance::datos2($estatus_dia);
                        $r2= Balance::datos2($estatus_atraso);
                        $r3= Balance::datos2($estatus_vencido);
                        $r4= Balance::datos2($estatus_moras);
                        $r5= Balance::datos2($estatus_cancelado);
                        
                        
                        //NUMEROS DE PRESTAMOS POR ESTATUS
                        $aldia=$r1['clientes'];
                        $atraso=$r2['clientes'];
                        $vencido=$r3['clientes'];
                        $moras=$r4['clientes'];
                        $cancelados=$r5['clientes'];
                        
                        $total= $aldia+ $atraso+$vencido+$moras+$cancelados;

                     
                        //MONTO DE LOS PAGOS
                        $pago_aldia=  Balance::monto_cobros_estatus($estatus_dia,$fecha_desde,$fecha_hasta);
                        $pago_atraso=  Balance::monto_cobros_estatus($estatus_atraso,$fecha_desde,$fecha_hasta);
                        $pago_vencido=  Balance::monto_cobros_estatus($estatus_vencido,$fecha_desde,$fecha_hasta);
                        $pago_mora=  Balance::monto_cobros_estatus($estatus_moras,$fecha_desde,$fecha_hasta);
                        $pago_cancelados=  Balance::monto_cobros_estatus($estatus_cancelado,$fecha_desde,$fecha_hasta);
                        
                        
                        $total4=$pago_aldia+$pago_atraso+$pago_vencido+$pago_mora+$pago_cancelados;
                        
                        
                        
                        
                         //monto del pago mora
                        $pago_aldia_mora=  Balance::monto_cobros_estatus_mora($estatus_dia,$fecha_desde,$fecha_hasta);
                        $pago_atraso_mora=  Balance::monto_cobros_estatus_mora($estatus_atraso,$fecha_desde,$fecha_hasta);
                        $pago_vencido_mora=  Balance::monto_cobros_estatus_mora($estatus_vencido,$fecha_desde,$fecha_hasta);
                        $pago_mora_mora=  Balance::monto_cobros_estatus_mora($estatus_moras,$fecha_desde,$fecha_hasta);
                        $pago_cancelados_mora=  Balance::monto_cobros_estatus_mora($estatus_cancelado,$fecha_desde,$fecha_hasta);
                        $total4_mora=$pago_aldia_mora+$pago_atraso_mora+$pago_vencido_mora+$pago_mora_mora+$pago_cancelados_mora;
                        
                        
                        
                        
                        
                        $aldia_capital=$r1['porcobrar'];
                        $atraso_capital= $r2['porcobrar'];
                        $vencido_capital= $r3['porcobrar'];
                        $moras_capital=  $r4['porcobrar'];
                        $cancelados_capital=  $r5['porcobrar'];
                        
                        $total2=$aldia_capital+$atraso_capital+$vencido_capital+$moras_capital+$cancelados_capital;
                  
                        $cantidad_pago_aldia=  Balance::num_pago_estatus($estatus_dia,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_atraso= Balance::num_pago_estatus($estatus_atraso,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_mora=Balance::num_pago_estatus($estatus_moras,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_vencido=Balance::num_pago_estatus($estatus_vencido,$fecha_desde,$fecha_hasta);
                        $cantidad_pago_cancelados=Balance::num_pago_estatus($estatus_cancelado,$fecha_desde,$fecha_hasta);
                         
                        $total3=$cantidad_pago_aldia+$cantidad_pago_atraso+$cantidad_pago_mora+$cantidad_pago_vencido+$cantidad_pago_cancelados;
       
                        $porcentaje_aldia= Cliente::porcentaje($pago_aldia,$aldia_capital);

                        $num_cobros=  Balance::num_cobros($fecha_desde,$fecha_hasta);
//                        $
//                        num_recibos=  Balance::num_recibos(1,$fecha_desde,$fecha_hasta);
//                   
//                        $num_baucher=Balance::num_recibos(2,$fecha_desde,$fecha_hasta);
//                   
//                        $porcentaje_recibo=Cliente::porcentaje($num_recibos,$num_cobros);
//                        $porcentaje_baucher=Cliente::porcentaje($num_baucher,$num_cobros);
//                        
                        
                    }else{
                      Yii::app()->user->setFlash('danger', 'DEBE COMPLETAR EL FORMULARIO');  
                    }
                 }   
                          
                }
		$this->render('movimientos',array(
			'model'=>$model,'aldia'=>$aldia,'atraso'=>$atraso,'cancelados'=>$cancelados,
                        'vencido'=>$vencido,'moras'=>$moras,'total'=>$total,'aldia_capital'=>$aldia_capital,
                        'atraso_capital'=>$atraso_capital,'vencido_capital'=>$vencido_capital,
                        'moras_capital'=>$moras_capital,
                        'cancelados_capital'=>$cancelados_capital,
                        'total2'=>$total2,'cantidad_pago_aldia'=>$cantidad_pago_aldia,
                        'cantidad_pago_atraso'=>$cantidad_pago_atraso,'cantidad_pago_mora'=>$cantidad_pago_mora,
                        'cantidad_pago_vencido'=>$cantidad_pago_vencido,
                        'cantidad_pago_cancelados'=>$cantidad_pago_cancelados,
                    
                       'total3'=>$total3,
                        'pago_aldia'=>$pago_aldia,'pago_atraso'=>$pago_atraso,
                        'pago_vencido'=>$pago_vencido,'pago_mora'=>$pago_mora,
                       'pago_cancelados'=>$pago_cancelados,
                        'total4'=>$total4,
                        'porcentaje_aldia'=>$porcentaje_aldia,'porcentaje_recibo'=>$porcentaje_recibo,
                        'porcentaje_baucher'=>$porcentaje_baucher,
                        'total4_mora'=>$total4_mora,
                        'pago_aldia_mora'=>$pago_aldia_mora,
                        'pago_atraso_mora'=>$pago_atraso_mora,
                        'pago_vencido_mora'=>$pago_vencido_mora,
                        'pago_mora_mora'=>$pago_mora_mora,
                        'pago_cancelados_mora'=>$pago_cancelados_mora,
               
		));
	}
        
        
            public function actionEstadocuenta()
	{
		$this->pageTitle = 'Estados de Cuenta';
                if (isset($_GET['pageSize'])) {
                    Yii::app()->user->setState('pageSize', (int) $_GET['pageSize']);
                    unset($_GET['pageSize']);
                }
		$model=new Prestamo('search');
		$model->unsetAttributes(); 
		if(isset($_GET['Prestamo']))
			$model->attributes=$_GET['Prestamo'];
    
                
		$this->render('estadocuenta',array(
			'model'=>$model,
		));
	}

           public function actionPdfestado($id)
	{   $this->layout='pdf';
            if(!empty($id)){
     
                $prestamo=  Pagos::prestamoID($id);
                
                if(!empty($prestamo)){
                    
                    $fechas=  Pagos::forFechas($prestamo['fecha_inicio'], $prestamo['id_duracion'], 1,$prestamo['domingo']);
                    $listaPagos=  Pagos::listaPagos($id);
                    $num_pagos_cancelados=Pagos::cuotasCanceladas($id);
                    $cliente=Cliente::model()->findByPk($prestamo['id_cliente']);
                    
                    set_time_limit(0);
                    Yii::import("application.vendors.estado", true);
                    $pdf = new PDF();
                    $pdf->AliasNbPages();
                    $pdf->title='ESTADO DE CUENTA ';
                    $pdf->SetMargins(20, 1, 2);
                    $pdf->AddPage('P','Letter');
                    $pdf->estadoCuenta($prestamo,$fechas,$num_pagos_cancelados,$listaPagos,$cliente);
                    $pdf->SetDisplayMode('real','continuous');
                    $pdf->Output("cliente.pdf",'I');
 
      
                    
                    
                }else{
                   throw new CHttpException(404,'ID PRESTAMO NO EXISTE EN LA BASE DE DATOS.'); 
                }
            }else{
              throw new CHttpException(404,'ID NO EXISTE EN LA BASE DE DATOS.');  
            }   
	}
        
        
           public function actionDatos(){
       
		if($_POST['dni']){
                $resul= Cliente::buscarDNI($_POST['dni']);
                if(!empty($resul)){

                    $nombre=$resul['nombre'];
                    $apellido=$resul['apellido'];
                    $observacion_cliente=$resul['observacion'];
                    $id_gestor=$resul['id_gestor'];
             
                    $res=array(
                        'nombre'=>$nombre,
                        'apellido'=>$apellido,
                        'id_gestor'=>$id_gestor,
                    );
                }
		echo(($res)?json_encode($res):'');
                
                
                }
	
        }
        
        
         public function actionGestores()
	{       $this->pageTitle = 'Modificar Gestor de los Clientes';
        
		$model=new GestorForm();
		$this->performAjaxValidation($model);

		if(isset($_POST['GestorForm']))
		{
              
                  $model->attributes=$_POST['GestorForm'];
                 
                  
	          if($model->validate()){    
               
                    try
                    {  
                      
                      $agregar= $model->nuevoGestor($_POST['GestorForm']['gestor1'],$_POST['GestorForm']['gestor2']);
     
                      
                      if ($agregar) {
                          
                         $c= Cliente::model()->findAll('id_gestor=?',array($_POST['GestorForm']['gestor2']));
                      
                         
                        
                         
                         for ($index = 0; $index < count($c); $index++) {
                      
                            $model->nuevoGestorpres($c[$index]['id_cliente'],$_POST['GestorForm']['gestor2']); 
               
                        }
      
                      $model->unsetAttributes();     
                      Yii::app()->user->setFlash('success','el gestor de los clientes fueron modificados con exito. ');
                    
                      }

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

                    }

		}
                
		$this->render('gestores',array(
			'model'=>$model,
		));
	}    
        
        
             public function actionPdfestados($id)
	{   $this->layout='pdf';
            if(!empty($id)){
     
                $prestamo=  Pagos::prestamoID($id);
                
                if(!empty($prestamo)){
                    
                    $fechas=  Pagos::forFechas($prestamo['fecha_inicio'], $prestamo['id_duracion'], 1,$prestamo['domingo']);
                    $listaPagos=  Pagos::listaPagos($id);
                    $num_pagos_cancelados=Pagos::cuotasCanceladas($id);
                    $cliente=Cliente::model()->findByPk($prestamo['id_cliente']);
                    
                    set_time_limit(0);
                    Yii::import("application.vendors.estados", true);
                    $pdf = new PDF();
                    $pdf->AliasNbPages();
                    $pdf->title='ESTADO DE CUENTA ';
                    $pdf->SetMargins(10, 1, 2);
                    $pdf->AddPage('P','Letter');
                    $pdf->estadoCuenta($prestamo,$fechas,$num_pagos_cancelados,$listaPagos,$cliente);
                    $pdf->SetDisplayMode('real','continuous');
      
                    if(!isset($_GET['apk'])){
                    $pdf->Output("cliente.pdf",'I');
                    }else{
                    echo "<b>Cargando...</b><script>  
                    
                    
                    setTimeout('loading()',4000);
                    
                    
                    function loading(){
                        
                        location.href='../../volver.php?id=' + $id + '&es=true';
                        
                    }
                    
                    </script>";
                        
                    $pdf->Output('pdfs/' . $id.'.pdf', 'F');                        
                        
                    }
                    
                    
                }else{
                   throw new CHttpException(404,'ID PRESTAMO NO EXISTE EN LA BASE DE DATOS.'); 
                }
            }else{
              throw new CHttpException(404,'ID NO EXISTE EN LA BASE DE DATOS.');  
            }   
	}
}
