<?php

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


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

	
	public function accessRules()
	{
		return array(
			array('allow',  
				'actions'=>array('excel','index','view','create','update','admin','delete'),
				'expression' => array('UtilidadController', '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);
                $this->pageTitle = 'Ver Utilidad N° '.$id;
                $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->dtmfecha_creacion = !empty($model->dtmfecha_creacion)?Utility::fecha_hora($model->dtmfecha_creacion):null;
                $model->dtmfecha_modificacion = !empty($model->dtmfecha_modificacion)?Utility::fecha_hora($model->dtmfecha_modificacion):null;	
                $model->dtmfecha_eliminaacion = !empty($model->dtmfecha_eliminaacion)?Utility::fecha_hora($model->dtmfecha_eliminaacion):null;	

                
                $model->tipo_ingreso=='I'?'INGRESO':'EGRESO';
                $model->estatus= $model->estatus==1?'ACTIVO':'INACTIVO';
                
                
		$this->render('view',array(
			'model'=>$model,
		));
	}


		public function actionCreate()
	{
		$model=new Utilidad;
		$this->performAjaxValidation($model);
                $this->pageTitle = 'Registrar Utilidad';
                $model->estatus=1;
		if(isset($_POST['Utilidad']))
		{
                    $model->attributes=$_POST['Utilidad'];
                    
                    if($model->validate()){    
               
                    try
                    {    
                      $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 Utilidad';
		$model=$this->loadModel($id);

		$this->performAjaxValidation($model);

		if(isset($_POST['Utilidad']))
		{
			$model->attributes=$_POST['Utilidad'];
			      if($model->validate()){    
                    try
                    {
                        
                      $editar=$model->edit($id);  
                        
                      if ($editar) {
                      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,
		));
	}


	public function actionDelete($id)
	{
		//$this->loadModel($id)->delete();
		$model= new Utilidad();
                $eliminar=$model->borrar($id);

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

	
	public function actionIndex()
	{
		$this->pageTitle = 'Utilidades';
                if (isset($_GET['pageSize'])) {
                    Yii::app()->user->setState('pageSize', (int) $_GET['pageSize']);
                    unset($_GET['pageSize']);
                }
                
                $egreso=0;
                $ingreso=0;
                $ganancia=0;  
                
            
                $cliente=0;
                        
                $row = ConsultarForm::datosfechatodo();
            
                if(!empty($row)){
                   $cliente=$row['clientes'];
                   $egreso= $row['soles'];
                   $ingreso= $row['ingreso'];
                   $ganancia=$egreso-$ingreso;
   
                }
                
           
                $consular= new ConsultarForm();
                $consular->scenario = 'utilidad'; 
                if(isset($_GET['ConsultarForm']))
		{
                      
                    
                    if(!empty($_GET['ConsultarForm']['desde']) and  !empty($_GET['ConsultarForm']['hasta'])  ){
                       $row= ConsultarForm::datosfecha($_GET['ConsultarForm']['desde'], $_GET['ConsultarForm']['hasta']);
                  
                         if(!empty($row)){
                            $cliente=$row['clientes'];
                            $egreso= $row['soles'];
                            $ingreso= $row['ingreso'];
                            $ganancia=$egreso-$ingreso;

                         }  else {
                             $cliente=0;
                            $egreso= 0;
                            $ingreso= 0;
                            $ganancia=0;
                         }
                        
                        
                    }
                    
                    
                    
		}    
                
                
		$model=new Utilidad('search');
		$model->unsetAttributes(); 
		if(isset($_GET['Utilidad']))
			$model->attributes=$_GET['Utilidad'];

		$this->render('index',array(
			'model'=>$model,'consular'=>$consular,'egreso'=>$egreso,
                    'cliente'=>$cliente,'ingreso'=>$ingreso,'ganancia'>$ganancia
                    
		));
	}
	public function loadModel($id)
	{
		$model=Utilidad::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']==='utilidad-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
        
        
        public function actionExcel(){
  
           
  if (isset($_SESSION['utilidad'])) {

  Yii::import('ext.phpexcel.XPHPExcel');
  $objPHPExcel = XPHPExcel::createPHPExcel();
  $sheet = $objPHPExcel->getActiveSheet();
  $objDrawingPType = new PHPExcel_Worksheet_Drawing();

  
   $objPHPExcel->getProperties()->setCreator('SISTEMA DE PRESTAMISTAS')
                               ->setLastModifiedBy('USUARIO: '.Yii::app()->user->name)
                          ;

  
    
    $objDrawingPType->setWorksheet($objPHPExcel->setActiveSheetIndex(0));
    
    $objDrawingPType->setName("SISTEMA DE PRESTAMISTAS");


    $objDrawingPType->setPath(Yii::app()->basePath.DIRECTORY_SEPARATOR."../public/images/logo.jpeg");
    $objDrawingPType->setCoordinates('A1')->setWidth(100);
 
   $sheet->setCellValue('C2', 'UTILIDES');
   
   $objPHPExcel->getActiveSheet()->getStyle("C2")->getFont()->setSize(30)->setBold( false )->getColor()->setRGB('004DAE');
  
   $objPHPExcel->getActiveSheet()->getStyle("A9")->getFont()->setSize(15)->setBold( TRUE )->getColor()->setRGB('000000');
  $objPHPExcel->getActiveSheet()->getStyle("A10:I10")->getFont()->setSize(13)->setBold( TRUE )->getColor()->setRGB('000000');
   for($col = 'A'; $col !== 'J'; $col++) {
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension($col)
        ->setAutoSize(true);
  }




$sheet->setCellValue('A7', 'FECHA:  '.date('d-m-Y '));
//funcion para combinar celdas

//$objPHPExcel->getActiveSheet()->mergeCells('A9:T9');


$objPHPExcel->getActiveSheet()->getStyle('A10:H10')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle('A10:H10')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('FFFA65');


$objPHPExcel->getActiveSheet()->setAutoFilter('A10:H10');
 
 
$sheet->getStyle('A9:I9')->getAlignment()->applyFromArray(array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,)
);

 $objPHPExcel->getActiveSheet()
                ->getStyle('A9:I9')
                ->getBorders()
                ->getBottom()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_HAIR);

 $objPHPExcel->getActiveSheet()
                ->getStyle('A10:I10')
                ->getBorders()
                ->getBottom()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_HAIR);





$sheet->getStyle('C10:C500')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT)
);  
$sheet->getStyle('D10:D500')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT)
);  
$sheet->getStyle('H10:H500')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT)
);  

$sheet->getStyle('I10:I500')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT)
);

$sheet->getStyle('A9:A500')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
);  



$sheet->getStyle('A10:AK10')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
);  


$sheet->getStyle('A6')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
);  


    $d = $_SESSION['utilidad'];
    $data = array();
     
    foreach ($d->data as $item) {
            $data[] = $item->attributes;
    }
    

    
    $header=array(
        'FECHA  ',
        'MONTO/INGRESO',
        'MONTO/EGRESO',
        'DESCRIPCION ',
        'USUARIO REGISTRO  ',
        'FECHA DE REGISTRO  ',
        'USUARIO MODIFICO  ',
        'FECHA DE ULTIMA MODIFICACION  ',
        );
    
 
    $contenido[]=$header;
    
    
    $ingreso=0;
    $egreso=0;
    $ganancia=0;
    $perdida=0;
    
    foreach($d->data as $item)
    {
        
    if($item->tipo_ingreso==='I'){
    $ingreso=$ingreso+$item->monto;  
    }
    if($item->tipo_ingreso==='E'){
        $egreso=$egreso+$item->monto;
    }    
        
        
    $id_usuario_creador = !empty($item->id_usuario_creador)?Usuario::descripcion($item->id_usuario_creador):null;
    $id_usuario_modificador = !empty($item->id_usuario_modificador)?Usuario::descripcion($item->id_usuario_modificador):null;
    $dtmfecha_creacion = !empty($item->dtmfecha_creacion)?Utility::fecha($item->dtmfecha_creacion):null;
    $dtmfecha_modificacion = !empty($item->dtmfecha_modificacion)?Utility::fecha_hora($item->dtmfecha_modificacion):null;	
    
  

    $contenido[]=array(
        Utility::fecha($item->fecha),
        $item->tipo_ingreso=='I'?$item->monto:"",
        $item->tipo_ingreso=='E'?$item->monto:"",
        Utility::mayuscula($item->descripcion),

        
        CHtml::encode($id_usuario_creador),
        CHtml::encode($dtmfecha_creacion),
     
        CHtml::encode($id_usuario_modificador),
        CHtml::encode($dtmfecha_modificacion),
    );  
    
    }
    $objPHPExcel->getActiveSheet()->fromArray($contenido,NULL,'A10');
    $gancia=$ingreso-$egreso;
    
    if($gancia>=0){
        $ganancia=$ingreso-$egreso;
    }else{
        $perdida=$egreso-$ingreso;
    }
  $num=  count($contenido);
  
  $sheet->setCellValue('B'.($num+11),'INGRESOS ');
  $sheet->setCellValue('C'.($num+11),'EGRESOS');
  $sheet->setCellValue('D'.($num+11),'GANACIAS');
  $sheet->setCellValue('E'.($num+11),'PERDIDAS');
  
  $sheet->setCellValue('A'.($num+12),'TOTAL:  ');
  $sheet->setCellValue('B'.($num+12),$ingreso);
  $sheet->setCellValue('C'.($num+12),$egreso);
  $sheet->setCellValue('D'.($num+12),$ganancia);
  $sheet->setCellValue('E'.($num+12),$perdida);
  
  $l=$num+11;
  $x=$num+12;
  
  $objPHPExcel->getActiveSheet()->getStyle('B'.$l.':E'.$l.'')->getFont()->setBold(true)->getColor();
  $objPHPExcel->getActiveSheet()->getStyle('A'.$x.':E'.$x.'')->getFont()->setBold(true)->getColor()->setRGB('004DAE');


  
  $objPHPExcel->getActiveSheet()->setTitle('REPORTE UTILIDADES');
  $objPHPExcel->setActiveSheetIndex(0);
  header('Content-Type: application/vnd.ms-excel');
  header('Content-Disposition: attachment;filename="REPORTE UTILIDADES.xls"');

  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');
  unset($_SESSION['utilidad']);
  exit;
 
}else {
    $this->redirect('index');
}

 }
        
        
}
