<?php

class AportesFunerarioController extends Controller
{
	/**
	 * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
	 * using two-column layout. See 'protected/views/layouts/column2.php'.
	 */
	public $layout='//layouts/column2';

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

	/**
	 * Specifies the access control rules.
	 * This method is used by the 'accessControl' filter.
	 * @return array access control rules
	 */
	public function accessRules()
	{
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('index','view'),
				'users'=>array('@'),
			),
			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('create','update','Pagar_form','MigrarPagoLote','aporteFunerario','vizualizarDatosFunerarios','aprobarAportes','aprobacionMasiva'),
				'users'=>array('@'),
			),
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('admin','delete'),
				'users'=>array('admin'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}

	/**
	 * Displays a particular model.
	 * @param integer $id the ID of the model to be displayed
	 */
	public function actionView($id)
	{
		$this->render('view',array(
			'model'=>$this->loadModel($id),
		));
	}

	/**
	 * Creates a new model.
	 * If creation is successful, the browser will be redirected to the 'view' page.
	 */
	public function actionCreate()
	{
		$model=new AportesFunerario;

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['AportesFunerario']))
		{
			$model->attributes=$_POST['AportesFunerario'];
			if($model->save())
				$this->redirect(array('view','id'=>$model->id));
		}

		$this->render('create',array(
			'model'=>$model,
		));
	}
	
	public function actionaporteFunerario()
	{
	  $model=new AportesFunerario;
	  
	  //print_r($_POST);
	  if(isset($_POST['AportesFunerario']))
              {
              if($_FILES['AportesFunerario']['name']['txt'] != '')
                 {
                        
                            $model->attributes=$_POST['AportesFunerario'];
                            $nmb_archivo= $_FILES['AportesFunerario']['name']['txt'];
                            $descripcion= $_POST['descripcion'];
                            $comprobante= $_POST['comprobante'];
                            $validar_nombre= false;
                            $error= false;
                            
                            //VALIDO EL CAMPO COMPROBANTE
                            if ($comprobante == '')
                            {
                              echo Yii::app()->user->setFlash('error', "Ingrese el número del comprobante.");
                             $error=TRUE;
                            }
                            
                            //VALIDO EL CAMPO DE DESCRIPCION
                            if ($descripcion == '')
                            {
                              echo Yii::app()->user->setFlash('error', "Ingrese la descripción del aporte.");
                             $error=TRUE;
                            }
                            
                            //VALIDAR NOMBRE DEL ARCHIVO
                            if (strlen($nmb_archivo) != '17' )
                            {
                             //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                             echo Yii::app()->user->setFlash('error', "El nombre del archivo tiene más caracteres de lo requerido.");
                             $error=TRUE;
                            }
                            
                            //valido que el comprobante no exista
                            $c_comprobante = DatosTxtFunerario::model()->findByAttributes(array('num_comprobante'=>"$comprobante"));
                            
                            if($c_comprobante != '')
                            {
                                echo Yii::app()->user->setFlash('error', "El número del comprobante ya se encuentra registrado en el sistema.");
                                $error=TRUE;
                            }
                            
                            $letra= substr($nmb_archivo, 0,-16);
                            //echo $letra; die();
                            //valido que la primera letra del archivo corresponda al tipo de nomina
                            if (  ($letra != 'F') )
                            {
                                //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                                echo Yii::app()->user->setFlash('error', "Debe de indicar en la primera letra del nombre del archivo si corresponde a un pago funerario (F).");
                                $error=TRUE;
                            }
                            
                            $cod_uni= substr($nmb_archivo, 1,-12);
                            $codunidad = Unidad::model()->findByAttributes(array('codigo'=>"$cod_uni"));
                            $unidad = $codunidad->codigo;
                            
                            //valido que la unidad del nombre del archivo sea correcta
                            if($cod_uni != $unidad)
                            {
                                //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                                echo Yii::app()->user->setFlash('error', "Verifique el codigo de la unidad en el nombre del archivo.");
                                $error=TRUE;
                            }
                            
                            $fch = substr($nmb_archivo, 5,8);
                            $d   = substr($fch, 0,-6);
                            $m   = substr($fch, 2,-4);
                            $y   = substr($fch, 4,4);
                            $fcha= $y . '-' . $m .'-' .$d; //obtengo la fecha del archivo

                            $vld_nmb= DatosTxtFunerario::model()->findByAttributes(array('nmb_archivo'=>$nmb_archivo),'blnborrado=:status',array(':status'=>false));
                            //$cedula = Asociado::model()->findByAttributes(array('cedula'=>trim($line[0])),'blnborrado=:status',array(':status'=>false));
                            //valido que no se haya subido un archivo con el mismo nombre
                            if ($vld_nmb != '')
                            {
                             $vld_v= $vld_nmb->id;
                             $sql_v= AportesFunerario::model()->findByAttributes(array('id_dato_txt_funerario'=>$vld_v));
                             $c_sql= count($sql_v);
                             if($c_sql == 0)
                             {
                                 $sql ="delete from datos_txt_funerario  where id = $vld_v";
                                 $connection=Yii::app()->db;                    
                                 $command=$connection->createCommand($sql); 
                                 $row=$command->queryAll();
                                 echo "<scripts>alert('archivo eliminado')</scripts>";
                             }
                             else
                             {
                                 echo Yii::app()->user->setFlash('error', "El nombre del archivo ya se encuentra registrado.");
                                 $error=TRUE;
                             }

                               
                            }
                            
                            $file = CUploadedFile::getInstance($model,'txt');
                            $fp = fopen($file->tempName, 'r');
                            
                            //valido que el archivo se pueda abrir
                            if(!$fp)
                            {
                                //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                                echo Yii::app()->user->setFlash('error', "No se pudo abrir el archivo para validarlo, asegurese que tiene permisos de lectura-escritura sobre el archivo.");
                                $error=TRUE;
                            }
                            
                            $l           = fgetcsv($fp, 1000, ";");
                            $cant_pers   =  $l[0];
                            $ttl_aporte  =  $l[1];
                            $fch_archivo =  $l[2];
                            $total_l     =  0;
                            $cant_l      =  0;
                            
                            //valido la fecha del nombre del archivo con la fecha de corte de nomina
                            if($fch_archivo != $fcha)
                            {
                                //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                                echo Yii::app()->user->setFlash('error', "La fecha del archivo no es igual a la fecha del nombre del archivo.");
                                $error=TRUE;
                            }
                            
                            while (( $data = fgetcsv ( $fp , 1000 , ";" )) !== FALSE ) 
		            {
                                $total_l += $data[2];
                                $cant_l = $cant_l + 1 ;
		            }
                            
                            
                            //valido que la cantidad de personas sea igual a la cantidad de aportantes
                            if ($cant_pers != $cant_l)
                            {
                               $total_l     =  0;
                               $cant_l      =  0;
                               
                               //$this->render('create_nuevo_aporte', array('model' => $model) );  
                               echo Yii::app()->user->setFlash('error', "El total de aportantes no concuerda, por favor revise el archivo.");
                               $error=TRUE;
                            }
                            
                            //valido que el total de aporte sea igual a la sumatoria de aportes patronal
                            if ($ttl_aporte != $total_l)
                            {
                                $total_l     =  0;
                                $cant_l      =  0;
                                //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                                echo Yii::app()->user->setFlash('error', "El total de los aportes no es igual a la sumatoria de los aportes.");
                                $error=TRUE;
                            }

                            fclose($fp);
                            
                            if ($error == false)
                            {
                                $file = CUploadedFile::getInstance($model,'txt');
                                $fp = fopen($file->tempName, 'r');
                                $i=0;
                                if ($fp) 
                                {

                                    while (( $data = fgetcsv ( $fp , 1000 , ";" )) !== FALSE )
                                    {
                                        if($i==0)
                                        {
                                            if(count($data) != 3) 
                                            {
                                                $error= TRUE;
                                            }
                                            
                                        }
                                       
                                        if ($i > 0)
                                        {
                                           
                                            //valido la cedula del aportante
                                            $j= $i+1;
                                            $cedula = Asociado::model()->findByAttributes(array('cedula'=>trim($data[0])));
                                            //$cedula = Asociado::model()->findByAttributes(array('cedula'=>trim($data[0])),'blnborrado=:status',array(':status'=>false));
                                            if($cedula == NULL)
                                            {
                                                echo Yii::app()->user->setFlash('error', "El n&uacute;mero de c&eacute;dula <b>$data[0]</b> no se encuentra registrada como Asociado. </br> <b>Linea $j </b>.");
                                                $error=TRUE;
                                            }
                                            

                                            //valido la unidad que sea igual a la unidad del nombre del archivo
                                            $unidades = $data[1];
                                            if (($unidad != $unidades))
                                            {
                                                echo Yii::app()->user->setFlash('error', "El C&oacute;digo de la Unidad no es igual al del nombre del archivo. </br> <b>Linea $j </b>.");
                                                $error=TRUE;
                                            }
                                            
                                           //valido que la persona pertenezca a la unidad
                                           $oficina= $codunidad->idlugartrabajo;
                                           //$ced_uni = Asociado::model()->findByAttributes(array('cedula'=>trim($data[0]), 'oficina'=>$oficina));
                                           $ced_uni =Asociado::model()->findByAttributes(array('cedula'=>trim($data[0])),'oficina=:ofi',array(':ofi'=>$oficina));
                                           //print_r($ced_uni); die();
                                          if ($ced_uni == '')
                                          {
                                          echo Yii::app()->user->setFlash('error', "El asociado (".$data[0].") no pertenece a la unidad ($unidad) especificada en el archivo. </br> <b>Linea $j </b>.");
                                                $error=TRUE;
                                          }

                                            //valido que el aporte empleado este en el formato establecido
                                            $aporte_empleado = $data[2];
                                            if (!(ctype_digit($aporte_empleado))) 
                                            {
                                                echo Yii::app()->user->setFlash('error', "El monto no cumple con el formato establecido. Los montos deben de expresarse en formato n&uacute;merico sin separadores de miles ni decimales.</br> <b>Linea $j </b>.");
                                                $error=TRUE;
                                            }
                                            
                                            
                                          

                                        }
                                            
                                        $i++;
                                    }
                                    
                                    
                                }


                            }
                            else
                            {
                               
                                $error=TRUE;
                            }
                            
                            //fclose($fp);//cierro el archivo
                            
                            //si el archivo paso todas las validaciones envio a guardar en base de datos
                            if ($error == FALSE)
                            {
                                $guardar_dato= $this->guardarDatosFunerarioTXT($nmb_archivo,$descripcion,$comprobante,$total_l,$cant_l,$fcha,$unidad);
                                
                                if ($guardar_dato != 0)
                                {
                                    $file = CUploadedFile::getInstance($model,'txt');
                                    $guardar_data= $this->guardarDatosAportesFunerario($guardar_dato, $file, $fch_archivo);
                                    
                                    // si todo se guardo bien redirecciono a los datos del archivo
                                    if ($guardar_data != 0)
                                    {
                                       $this->actionDatosAporteRegistro(1,$guardar_dato);
                                       die(); //termino la validacion
                                    }
                                    else
                                    {
                                     echo Yii::app()->user->setFlash('error', "<b>ERROR SQL:</b> No se puedo Registrar los datos de aporte del archivo TXT.");
                                    }

                                }
                                else
                                {
                                   echo Yii::app()->user->setFlash('error', "<b>ERROR SQL:</b> No se puedo Registrar los datos de aprobación del archivo");
                                }
                            }
    
                          } 
                          else {
                                 //$this->render('create_nuevo_aporte', array('model' => $model) ); 
                                 echo Yii::app()->user->setFlash('error', "Por favor seleccione el archivo que desea cargar.");
                                 $error= TRUE;
                               }
                        }
             $this->render('create', array('model' => $model) );      
	}
	
	public function guardarDatosFunerarioTXT($nmb_archivo='',$descripcion='',$comprobante='',$total_l='',$cant_l='',$fecha_aporte='',$idunidad='') 
        {
                    $aporte_total = $total_l * pow(10,-2);
                    $tot_persona  = $cant_l;
                    $id_usuario   = Yii::app()->user->id;
                    
                    $campos  ="  nmb_archivo,   descripcion,  id_usuario,  num_comprobante,  total_aporte,  cant_aportantes,fecha_aporte,idunidad ";
                    $values  =" '$nmb_archivo', '$descripcion', $id_usuario,  '$comprobante',   $aporte_total, $tot_persona , '$fecha_aporte' , $idunidad";
                    
                    $sql="insert into datos_txt_funerario ($campos) values ($values) RETURNING id; ";  
                    $connection=Yii::app()->db;                    
                    $command=$connection->createCommand($sql); 
                    $row=$command->queryAll();
                    
                    if($row == NULL)
                    {
                        return 0;
                    }
                    else
                    {
                      return $row[0]['id'];
                    }

        }
        
        public function actionDatosAporteRegistro($id_guardar,$id_datos_archivo)
        {
           $model       = DatosTxtFunerario::model()->findByPk($id_datos_archivo);
           $datosAporte = $id_datos_archivo;
           $this->render('datos_aporte_registro', array('model' => $model, 'datosAporte' => $datosAporte, 'id_guardar'=> $id_guardar) ); //REVISAR esta parte
        }
        
        public function guardarDatosAportesFunerario($guardar_dato='', $file='', $fch_archivo=null)
        {
            if ($file != NULL)
            {
                $fp = fopen($file->tempName, 'r');
                $sql='';
                if($fp)
                {
                    $i=0;
                    $campos  ="idtrabajador,idunidad,aporte,fechaaporte,usuario_registro,id_dato_txt_funerario";
                    while (( $data = fgetcsv ( $fp , 1000 , ";" )) !== FALSE ) 
                    {
                        if ($i > 0)
                        {
                            //obtengo el id del asociado
                            
                            $cedula = Asociado::model()->findByAttributes(array('cedula'=>trim($data[0])));
                            $id_asociado = $cedula->idasociado;
                          
                            //obtengo el id de la unidad
                            $idunidad = Unidad::model()->findByAttributes(array('codigo'=>trim($data[1])));
                            $id_unidad = $idunidad->idunidad;

                            //obtengo el id del usuario
                            $id_usuario   = Yii::app()->user->id;
                            
                            //datos
                            $aporte= $data['2'] * pow(10,-2);
                            
                            $values ="$id_asociado,$id_unidad,$aporte,'$fch_archivo',$id_usuario,$guardar_dato";
                            $sql ="insert into aportes_funerario ($campos) values ($values) RETURNING id; ";
                            $connection=Yii::app()->db;                    
                            $command=$connection->createCommand($sql); 
                            $row=$command->queryAll();
                            continue;
                        }
                        
                        $i++;
                    }
                    //echo $sql;
                   
                    if($row == NULL)
                    {
                        $sql ="update datos_txt_funerario set valido=false and blnborrado=false where id = $guardar_dato";
                        $connection=Yii::app()->db;                    
                        $command=$connection->createCommand($sql); 
                        $row=$command->queryAll();
                        return 0;
                    }
                    else
                    {
                      return $row[0]['id'];
                    }
                    //return $cedula;
                }
                else 
                { 
                    return 'no hizo fp';
                }
            }
            else
            {
                return 'no hizo file';
            }
            
              
        }
        
        /*public function actionAprobarAportes($id)
        {
         $model1=new DatosTxtFunerario;
          if (isset($id))
          {
              $sql ="update datos_txt_funerario set pagado=1,aprobado=true, fecha_aprobacion= now() where id = $id and valido= true RETURNING nmb_archivo";
              $connection=Yii::app()->db;                    
              $command=$connection->createCommand($sql); 
              $row=$command->queryAll();
              if($row == NULL)
                    {
                        echo "<script>alert('ERROR: No se pudo aprobar el archivo. Contacte al administrador del sistema.');</script>";
                    }
                    else
                    {
                        
                        
                        
                      $nmb= $row[0]['nmb_archivo'];
                      echo Yii::app()->user->setFlash('success', "El archivo <b>$nmb</b> fue aprobado exitosamente!!.");
                    }

          }
          //$this->render('../../datosTxt/create', array('model' => $model) ); 
          $this->redirect(array('datosTxtFunerario/admin'));
        }
        */
                        public function actionPagar_form()
{
    $model=new AportesFunerario('pagar_form');
    $id=$_REQUEST["id"];
    // uncomment the following code to enable ajax-based validation
    /*
    if(isset($_POST['ajax']) && $_POST['ajax']==='datos-txt-_pagar_form-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
    */

    if(isset($_POST['AportesFunerario']))
    {
        Yii::import('application.modules.contable.models.*');
        $ban=$_POST['AportesFunerario']['banco'];
        $bc= ParametrosBancos::model()->find('id='.$ban);
        $banco=$bc->clvcuenta;
        //var_dump($banco); die();
        
        $ref=$_POST['AportesFunerario']['referencia'];
        $sql ="update datos_txt_funerario set pagado=1,aprobado=true, fecha_aprobacion= now() where id = $id and valido= true RETURNING nmb_archivo";
              $connection=Yii::app()->db;                    
              $command=$connection->createCommand($sql); 
              $row=$command->queryAll();
              if($row == NULL)
                    {
                        echo "<script>alert('ERROR: No se pudo asignar el pago del aporte. Contacte al administrador del sistema.');</script>";
                    }
                    else
                    {
                      $nmb= $row[0]['nmb_archivo'];
                      $num= Yii::import('application.modules.contable.controllers.*');
                      //$num= Yii::import('application.modules.contable.models.*');
                     
                    $txt= DatosTxtFunerario::model()->find('id='.$id);
                    
                    $fecha=date('d-m-Y');	
                    list($dia,$mes,$anio) = explode("-",$fecha);
                    //busca el numero maximo de comprobantes para el mes y año actual
                    $sql="select MAX(numero) from contable.comprobante where EXTRACT(MONTH FROM fecha_comprobante)='$mes' and date_part('year', fecha_comprobante) ='$anio' and blnborrado=false";		
                    $connection=Yii::app()->db;
                    $command=$connection->createCommand($sql);
                    $row=$command->queryRow();
                    $numero=$row["max"];
                        if($numero==""){
                                $a=1;
                                }else{
			$a=$numero+1;
			}
                      $ejercicio = EjerciciosContables::model()->find('estatus=1');
  
                      $unid= Unidad::model()->find('idunidad='.$txt->idunidad);          

                      $hist_pago=  new HistorialPagos;
                      $hist_pago->proceso='PAGO DE TXT FUNERARIO';
                      $hist_pago->clvbanco=$banco;
                      $hist_pago->monto=$txt->total_aporte;
                      $hist_pago->referencia=$ref;
                      $hist_pago->observacion=$txt->nmb_archivo;
                      $hist_pago->save();
                      //cargar en comprobante
                      $comprobante= new Comprobante();
                      $comprobante->numero=$a;
                      $comprobante->mes=$mes;
                      $comprobante->num_comprobante=$mes.$a;
                      $comprobante->fecha_comprobante=date('d-m-Y');
                      $comprobante->descripcion="Pago funerario ".$txt->descripcion.' '. $txt->nmb_archivo.' '. $unid->codigo.' '. $unid->descripcion;
                      $comprobante->status=1;
                      $comprobante->id_usuario=Yii::app()->user->id;
                      $comprobante->nro_documento=$txt->nmb_archivo;
                      $comprobante->blnborrado =0;
                      $comprobante->clvejercicio =$ejercicio->id;
                     if($comprobante->save()){

                          //var_dump($comprobante->id);die();
                      
                      $pag_banco_d= new DetalleComprobante;
                      $pag_banco_d->descripcion="$comprobante->descripcion";
                      $pag_banco_d->fecha_referencia=date('d-m-Y');
                      $pag_banco_d->referencia="$ref";
                      $pag_banco_d->id_cuenta=$banco;
                      $pag_banco_d->clv_comprobante=$comprobante->id;
                      //$pag_banco_d->clv_auxiliar=null;
                      $pag_banco_d->monto_debe=$txt->total_aporte;
                      $pag_banco_d->monto_haber=0;
                      $pag_banco_d->blnborrado=0;
                      $pag_banco_d->estatus_contab=1;
                      $pag_banco_d->save();
                     ///////////APORTE DEL EMPLEADOR////////     
                    
                      $det_comp_trab_h= new DetalleComprobante;
                      $det_comp_trab_h->descripcion="$comprobante->descripcion";
                      $det_comp_trab_h->fecha_referencia=date('d-m-Y');
                      $det_comp_trab_h->referencia="$ref";
                      $det_comp_trab_h->id_cuenta=359; ///////APORTE ASOCIADO 211.01.01.00
                      $det_comp_trab_h->clv_comprobante=$comprobante->id;
                      $det_comp_trab_h->clv_auxiliar="$txt->idunidad";
                     //valor($valor)
                      $det_comp_trab_h->monto_debe=0;
                      $det_comp_trab_h->monto_haber=$txt->total_aporte;
                      $det_comp_trab_h->blnborrado=0;
                      $det_comp_trab_h->estatus_contab=1;
                      $det_comp_trab_h->save();
                      
               
                      }
                      echo Yii::app()->user->setFlash('success', "El pago del archivo <b>$nmb</b> fue asignado exitosamente!!.");
                      $this->redirect(array('datosTxtFunerario/admin'));
                    }

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


                        public function actionMigrarPagoLote()
{
    //$model=new AportesFunerario('pagar_form');
    //$id=$_REQUEST["id"];
    // uncomment the following code to enable ajax-based validation
    /*
    if(isset($_POST['ajax']) && $_POST['ajax']==='datos-txt-_pagar_form-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
    */
//echo "holaaaaaa";die();
   /* if(isset($_POST['AportesFunerario']))
    {*/
        Yii::import('application.modules.contable.models.*');
        /*$ban=$_POST['AportesFunerario']['banco'];
        $bc= ParametrosBancos::model()->find('id='.$ban);
        $banco=$bc->clvcuenta;*/
        //var_dump($banco); die();
          $crit= new CdbCriteria;
          $crit->condition="valido=true  and aprobado=true and aprob_migrad=false and fecha_aprobacion>='01-01-2015'";
          $crit->order='fecha_aprobacion asc,id asc'; 
        $fune= DatosTxtFunerario::model()->findAll($crit);
          //var_dump($fune);die();
        
        foreach ($fune as $f) {
            
         

       
        $sql ="update datos_txt_funerario set aprob_migrad=true where id = $f->id and valido= true RETURNING nmb_archivo";
              $connection=Yii::app()->db;                    
              $command=$connection->createCommand($sql); 
              $row=$command->queryAll();
              if($row == NULL)
                    {
                        echo "<script>alert('ERROR: No se pudo asignar el pago del aporte. Contacte al administrador del sistema.');</script>";
                    }
                    else
                    {
                      $nmb= $row[0]['nmb_archivo'];
                      $num= Yii::import('application.modules.contable.controllers.*');
                      //$num= Yii::import('application.modules.contable.models.*');
                     
                    $txt= DatosTxtFunerario::model()->find('id='.$f->id);
                    
                    $fecha=date('d-m-Y',strtotime($txt->fecha_aprobacion));	
                    list($dia,$mes,$anio) = explode("-",$fecha);
                    $sql="select MAX(numero) from contable.comprobante where EXTRACT(MONTH FROM fecha_comprobante)='$mes' and date_part('year', fecha_comprobante) ='$anio' and blnborrado=false";		
                    $connection=Yii::app()->db;
                    $command=$connection->createCommand($sql);
                    $row=$command->queryRow();
                    $numero=$row["max"];
                        if($numero==""){
                                $a=1;
                                }else{
			$a=$numero+1;
			}
                      $ejercicio = EjerciciosContables::model()->find('estatus=1');
  
                      $unid= Unidad::model()->find('idunidad='.$txt->idunidad);          

                        $hist_pago=  new HistorialPagos;
                      $hist_pago->proceso='PAGO DE TXT FUNERARIO';
                      $hist_pago->clvbanco=719;
                      $hist_pago->monto=$txt->total_aporte;
                      $hist_pago->referencia="kkk";
                      $hist_pago->observacion=$txt->nmb_archivo;
                      $hist_pago->save();
                       //cargar en comprobante
                      $comprobante= new Comprobante();
                      $comprobante->numero=$a;
                      $comprobante->mes=$mes;
                      $comprobante->num_comprobante=$mes.$a;
                      $comprobante->fecha_comprobante=$txt->fecha_aprobacion;
                      $comprobante->descripcion="Pago funerario ".$txt->descripcion.' '. $txt->nmb_archivo.' '. $unid->codigo.' '. $unid->descripcion;
                      $comprobante->status=1;
                      $comprobante->id_usuario=Yii::app()->user->id;
                      $comprobante->nro_documento=$txt->nmb_archivo;
                      $comprobante->blnborrado =0;
                      $comprobante->clvejercicio =$ejercicio->id;
                     if($comprobante->save()){

                          //var_dump($comprobante->id);die();
                      //cargar en det_comprobante
                      $pag_banco_d= new DetalleComprobante;
                      $pag_banco_d->descripcion="$comprobante->descripcion";
                      $pag_banco_d->fecha_referencia=$txt->fecha_aprobacion;
                      $pag_banco_d->referencia="kkk";
                      // id=719 520.00.00.00-Gastos Administrativos
                      $pag_banco_d->id_cuenta=719;
                      $pag_banco_d->clv_comprobante=$comprobante->id;
                      //$pag_banco_d->clv_auxiliar=null;
                      $pag_banco_d->monto_debe=$txt->total_aporte;
                      $pag_banco_d->monto_haber=0;
                      $pag_banco_d->blnborrado=0;
                      $pag_banco_d->estatus_contab=1;
                      $pag_banco_d->save();
                     ///////////APORTE DEL EMPLEADOR////////     
                    
                      $det_comp_trab_h= new DetalleComprobante;
                      $det_comp_trab_h->descripcion="$comprobante->descripcion";
                      $det_comp_trab_h->fecha_referencia=$txt->fecha_aprobacion;
                      $det_comp_trab_h->referencia="kkk";
                      // id=480  311.01.00.00	Aporte del Asociado
                      $det_comp_trab_h->id_cuenta=480; ///////APORTE ASOCIADO 211.01.01.00
                      $det_comp_trab_h->clv_comprobante=$comprobante->id;
                      $det_comp_trab_h->clv_auxiliar="$txt->idunidad";
                     //valor($valor)
                      $det_comp_trab_h->monto_debe=0;
                      $det_comp_trab_h->monto_haber=$txt->total_aporte;
                      $det_comp_trab_h->blnborrado=0;
                      $det_comp_trab_h->estatus_contab=1;
                      $det_comp_trab_h->save();
                      
               
                      }
                      
                      }
                    }
                      echo Yii::app()->user->setFlash('success', "la migracion se ejecuto exitosamente!!.");
                      $this->redirect(array('datosTxtFunerario/admin'));

   
}
        
         public function actionAprobacionMasiva()
        {
           if (isset($_POST['cid']))
           {
		 $data= $_POST['cid'];
		 $id='';
		 //print_r($_POST); die();
		 for($i=0; $i <= count($data) - 1; $i++)
		 {
		    $id .= $_POST['cid'][$i] . ',';
		 }
		 
		 $ids= trim($id,','); 
		 
	      $sql ="update datos_txt_funerario set pagado=1,aprobado=true, fecha_aprobacion= now() where id in ($ids) and valido= true";
              $connection=Yii::app()->db;                    
              $command=$connection->createCommand($sql); 
              $row=$command->queryAll();
              echo Yii::app()->user->setFlash('success', "Los archivos fueron aprobados exitosamente!!.");
           }
           else
           {
             echo Yii::app()->user->setFlash('warning', "Alerta: Debe seleccionar uno o varios registro para la aprobación masiva..");
           }
           
            $this->redirect(array('datosTxtFunerario/admin'));
        }
                    

	/**
	 * Updates a particular model.
	 * If update is successful, the browser will be redirected to the 'view' page.
	 * @param integer $id the ID of the model to be updated
	 */
	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['AportesFunerario']))
		{
			$model->attributes=$_POST['AportesFunerario'];
			if($model->save())
				$this->redirect(array('view','id'=>$model->id));
		}

		$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)
	{
		$this->loadModel($id)->delete();

		// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
	}

	/**
	 * Lists all models.
	 */
	public function actionIndex()
	{
		$dataProvider=new CActiveDataProvider('AportesFunerario');
		$this->render('index',array(
			'dataProvider'=>$dataProvider,
		));
	}

	/**
	 * Manages all models.
	 */
	public function actionAdmin()
	{
		$model=new AportesFunerario('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['AportesFunerario']))
			$model->attributes=$_GET['AportesFunerario'];

		$this->render('admin',array(
			'model'=>$model,
		));
	}
	
	public function actionVizualizarDatosFunerarios($id)
        {
          $this->actionDatosAporteRegistro(0,$id);
        }

	/**
	 * Returns the data model based on the primary key given in the GET variable.
	 * If the data model is not found, an HTTP exception will be raised.
	 * @param integer $id the ID of the model to be loaded
	 * @return AportesFunerario the loaded model
	 * @throws CHttpException
	 */
	public function loadModel($id)
	{
		$model=AportesFunerario::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	/**
	 * Performs the AJAX validation.
	 * @param AportesFunerario $model the model to be validated
	 */
	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='aportes-funerario-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
}
