<?php

class SolicitudController 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',
                        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', 'admin', 'solicitud_mp', 'solicitud_ma', 'solicitud_ma_socio', 'SolRetiro', 'FindData', 'Pdf_mp', 'Getbenef', 'Pdf_ma'),
                'users'=>array('@'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update', 'solicitud_mp', 'solicitud_ma','solicitud_ma_socio', 'Pdf_mp', 'Getbenef', 'Pdf_ma','AdminSocio', 'SolRetiro'),
                'users'=>array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>array('admin','delete', 'solicitud_mp', 'solicitud_ma','solicitud_ma_socio', 'aprobar_mp', 'aprobar_ma', 'Pdf_mp', 'Getbenef', 'Pdf_ma', 'SolRetiro', 'Configuracion_mp', 'Pagarmp', 'Pagarma', 'reloadSolicitante', 'Recdatos', 'ArchivosMp', 'ReporteExcel', 'Denegar'),
                'users'=>array('@'),
            ),
            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)
    {
        $model = $this->loadModel($id);

        //consulta al modelo Benef para recoger los datos del beneficiario asociado a la solicitud
        $solicitante = Beneficiario::model()->find('idbeneficiario=:beneficiario', array(':beneficiario'=>$model->id_beneficiario));
        $beneficiarios = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$id));
        $detallePago = ProcesoPago::model()->find('id_proceso=:proceso AND actual=true', array(':proceso'=>$model->id));
                        
        if (empty($detallePago)) {
                                            
            empty($detallePago);
        }

        //echo "<pre>"; print_r($beneficiarios); exit;

        if ($model->id_status == 1) {

            $this->render('view',array(
                'model'=>$model,
                'solicitante' => $solicitante,
                'beneficiarios' => $beneficiarios,
            ));
        }

        if ($model->id_status == 2) {

            Yii::app()->user->setFlash('success', 'Solicitud aprobada por la cantidad de <strong>Bs. '.$model->monto_solicitud.'</strong>');

            $this->render('view',array(
                'model'=>$model,
                'solicitante' => $solicitante,
                'beneficiarios' => $beneficiarios,
            ));
        }

        if ($model->id_status == 3) {

            Yii::app()->user->setFlash('error', 'Solicitud denegada!');

            $this->render('view',array(
                'model'=>$model,
                'solicitante' => $solicitante,
                'beneficiarios' => $beneficiarios,
            ));
        }

        if ($model->id_status == 4) {

            Yii::app()->user->setFlash('success', 'Solicitud pagada!');

            $this->render('view',array(
                'model'=>$model,
                'solicitante' => $solicitante,
                'beneficiarios' => $beneficiarios,
                'detalle'=>$detallePago,
            ));
        }
    }

    /**
     * Creates a new model.
     * If creation is successful, the browser will be redirected to the 'view' page.
     */
    public function actionCreate($id=NULL)
    {
        $model= new Solicitud;
        $modelBeneficiario = new Beneficiario;
        $modelAsociado = new Asociado;


        $socio = Asoaciado::model()->findByPk($id);
        $idbnf = Beneficiario::model()->findByPk($id);
        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);
        if(isset($_POST['Beneficiario'])){
                           
                $modelBeneficiario->attributes=$_POST['Beneficiario'];

                $modelBeneficiario->nombre=strtoupper($modelBeneficiario->nombre);
                $modelBeneficiario->apellido=strtoupper($modelBeneficiario->apellido);
                $modelBeneficiario->idasociado=$socio->idasociado;

                if($modelBeneficiario->save())
                     $this->redirect(array('admin'));
         }

        if(isset($_POST['Solicitud']))
        {
            $model->attributes=$_POST['Solicitud'];

            $model->nombre = strtoupper($model->nombre);
            $model->apellido = strtoupper($model->apellido);
            $model->id_asociado = $idsocio->idasociado;
            $model->id_beneficiario = $idbnf->idbeneficiario;

            if($model->save())
                $this->redirect(array('admin'));
        }

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

    /**
     * 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['Solicitud']))
        {
            $model->attributes=$_POST['Solicitud'];
            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)
    {
        if(Yii::app()->request->isPostRequest)
        {
            // we only allow deletion via POST request
            $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'));
        }
        else
            throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
    }

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

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

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

    public function actionAdminSocio()
    {
        if (Yii::app()->user->checkAccess('usuario_asociado') && !Yii::app()->user->checkAccess('usuario_administrador')){

            $model=new Solicitud('search');
            $model->unsetAttributes();  // clear any default values

            if(isset($_GET['Solicitud']))
                $model->attributes=$_GET['Solicitud'];

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

        }else{

            Yii::app()->user->setFlash('error', "<b>No esta registrado como Asociado!</b>");
            $this->redirect(array('admin'));

        }
    }

    /*###################
    GENERAR SOLICITUDES

    MONTEPIO
    ####################*/
    public function actionSolicitud_mp(){

        $model = new Solicitud('SolicitudMp');
        $modelCredito = new Credito('SolicitudAdministrador');
        $modelSolBenef = new SolicitudBenef;
        $modelBeneficiario = new Beneficiario('saveBeneficiario');
        $modelAsociado = new Asociado();

        if(isset($_POST['Beneficiario'])){

                //echo "<pre>"; print_r($_POST); exit;

                $modelBeneficiario->attributes=$_POST['Beneficiario'];
                $model->attributes=$_POST['Solicitud'];
                $validate=true;

                $socio= Asociado::model()->find('cedula=:cedula AND id_estatus=1', array(':cedula'=>$model->cedula));
                if (!$socio) {
                    $model->addError('cedula', 'asociado no encontrado');
                    $validate=false;
                }else{
                    $modelBeneficiario->idasociado=$socio->idasociado;
                }

                $validate = $validate && $modelBeneficiario->validate();
                $modelBeneficiario->nombre=strtoupper($modelBeneficiario->nombre);
                $modelBeneficiario->apellido=strtoupper($modelBeneficiario->apellido);

                if($validate){
                    $modelBeneficiario->save();
                }
                     
        }

        if (isset($_POST['Solicitud'])) {


            $model->attributes=$_POST['Solicitud'];
            //echo "<pre>"; print_r($_POST); echo "\n"; print_r($model); exit;

            if (isset($_POST['seleccion'])) {

                $benef = $_POST['seleccion'];
                $validar = true;

                $socio = Asociado::model()->find('cedula=:cedula AND id_estatus=3', array(':cedula'=>$model->cedula));
                //echo "<pre>"; print_r($socio);print_r($model); exit;
                if (!$socio) {

                    $model->addError('cedula', 'Asociado no encontrado');
                    $validar=false;

                }else{

                    $trans = Yii::app()->db->beginTransaction();

                    try {

                        $registrado = Solicitud::model()->find('id_asociado=:asociado AND id_tiposol=1', array(':asociado'=>$socio->idasociado));

                        $model->id_asociado=$socio->idasociado;
                        $model->fecha_caducidad=date('d-m-Y', strtotime('+6 month'));
                        $model->id_tiposol=1;
                        //$model->id_beneficiario=$benef[0];

                        $validar = $validar && $model->validate();

                        if($validar){

                            if ($registrado) {

                                Yii::app()->user->setFlash('error', 'Ya existe una solicitud de montepio registrada para este asociado!');

                            }else{

                                if ($model->save()) {

                                $cantidad = count($benef);

                                    if ($cantidad > 1) {

                                        for ($i=0; $i <= $cantidad - 1; $i++) {

                                            $modelSolBenef = new SolicitudBenef();

                                            $modelSolBenef->id_solicitud = $model->id;
                                            $modelSolBenef->id_beneficiario = $benef[$i];

                                            $modelSolBenef->save();
                                        }

                                        if ($modelSolBenef->save()) {

                                            $status_sol = new StatusSolicitud;

                                            $status_sol->id_status_solicitud = 1;
                                            $status_sol->id_solicitud = $model->id;
                                            $status_sol->id_user = Yii::app()->user->id;
                                            $status_sol->observaciones = 'Creación de solicitud montepio';

                                            if ($status_sol->save(true)){

                                                $trans->commit();
                                                Yii::app()->user->setFlash('success', 'Solicitud registrada con exito!');
                                                $this->redirect(array('view', 'id'=>$model->id));

                                            }else{

                                                throw new Exception("Error en la validación de datos", 1);
                                               }

                                        }else{

                                            throw new Exception("Error en el registro del beneficiario!", 2);
                                        }

                                    }elseif ($cantidad == 1) {

                                        $modelSolBenef = new SolicitudBenef();

                                        $modelSolBenef->id_solicitud = $model->id;
                                        $modelSolBenef->id_beneficiario = $benef[0];

                                        $modelSolBenef->save();

                                        if ($modelSolBenef->save()) {

                                            $status_sol = new StatusSolicitud;

                                            $status_sol->id_status_solicitud = 1;
                                            $status_sol->id_solicitud = $model->id;
                                            $status_sol->id_user = Yii::app()->user->id;
                                            $status_sol->observaciones = '';

                                            if ($status_sol->save(true)){

                                                $trans->commit();
                                                Yii::app()->user->setFlash('success', 'Solicitud registrada con exito!');
                                                $this->redirect(array('view', 'id'=>$model->id));

                                            }else{

                                                throw new Exception("Error en la validación de datos", 1);
                                               }

                                        }else{

                                                throw new Exception("Error en el registro del beneficiario!", 2);
                                        }

                                    }

                                }else{

                                    throw new Exception("Error al guardar la solicitud", 3);
                                }
                            }
                        }

                    } catch (Exception $e) {

                        $trans->rollBack();
                        Yii::app()->user->setFlash('error', $e->getMessage());
                        $this->redirect(array('solicitud_mp'));
                    }
                }

            }else{

                Yii::app()->user->setFlash('error', 'No hay beneficiarios seleccionados para procesar la solicitud');
                $this->redirect(array('solicitud_mp'));
            }
        }

        $this->render('solicitud_mp',array(
            'model'=>$model,
            'modelCredito' => $modelCredito,
            'modelBeneficiario' => $modelBeneficiario,
            'modelAsociado' => $modelAsociado,
            'modelSolBenef'  => $modelSolBenef,
        ));
    }

    /*###################
    MUTUO AUXILIO
    ####################*/
    public function actionSolicitud_ma(){

        $model = new Solicitud('SolicitudMp');
        $modelCredito = new Credito('SolicitudAdministrador');
        $modelBeneficiario = new Beneficiario('solicitudma');
        $modelAsociado = new Asociado();

        if (!empty($_POST['Solicitud']) && !empty($_POST['seleccion'])) {

            $model->attributes=$_POST['Solicitud'];
            $beneficiario=$_POST['seleccion'][0];

            $validar = true;

            $socio=Asociado::model()->find('cedula=:cedula AND id_estatus=1', array(':cedula'=>$model->cedula));
            if (!$socio) {

                $model->addError('cedula', 'asociado no encontrado');
                $validar=false;

            }else{

//Comienzo del proceso de guardado de la solicitud en la distintas tablas
                $trans = Yii::app()->db->beginTransaction();

                try {

                    $registrado = Solicitud::model()->findAll('id_asociado=:asociado AND id_tiposol=2', array(':asociado'=>$socio->idasociado));

                    $model->id_asociado=$socio->idasociado;
                    $model->fecha_solicitud=date("d-m-Y");
                    $model->fecha_caducidad=date('d-m-Y', strtotime('+6 month'));
                    $model->id_tiposol=2;
                    $model->id_beneficiario=$beneficiario;

                    $validar = $validar && $model->validate();

                    if($validar){

                        if ($model->save()) {

                            $Beneficiario = Beneficiario::model()->findByPk($model->id_beneficiario);

                            $Beneficiario->id_status = 3;
                            $Beneficiario->fecha_fallece = $_POST['Solicitud']['fecha_Bfallece'];
                            $valido = $Beneficiario->validate();

                            if ($valido) {

                                if ($Beneficiario->update()) {

                                    $status_sol = new StatusSolicitud;

                                    $status_sol->id_status_solicitud = 1;
                                    $status_sol->id_solicitud = $model->id;
                                    $status_sol->id_user = Yii::app()->user->id;
                                    $status_sol->observaciones = 'Creación de solicitud mutuo auxilio';

                                    if ($status_sol->save(true)){

                                        $trans->commit();
                                        Yii::app()->user->setFlash('success', 'Solicitud de '.$model->idTiposol->tipo_sol.' registrada con exito!');
                                        $this->redirect(array('view', 'id'=>$model->id));

                                    }else{

                                        throw new Exception("Error de validación!", 1);
                                    }

                                }else{

                                    throw new Exception("Error al guardar el beneficiario!", 2);
                                }

                            }else{

                                throw new Exception("Error, datos incorrectos del beneficiario!", 3);
                            }

                        }else{

                            throw new Exception("Error, no se guardo la solicitud!", 4);
                        }

                    }else{

                        throw new Exception("Error, datos incorrectos del asociado!", 5);
                    }

                } catch (Exception $e) {

                    $trans->rollBack();
                    Yii::app()->user->setFlash('error', $e->getMessage());
                       $this->redirect(array('solicitud_ma'));
                }
            }            
        }


        $this->render('solicitud_ma',array(
            'model'=>$model,
            'modelCredito' => $modelCredito,
            'modelBeneficiario' => $modelBeneficiario,
            'modelAsociado' => $modelAsociado,
        ));
    }

    /*###################
    MUTUO AUXILIO POR MENÚ ASOCIADOS
    ####################*/
    public function actionSolicitud_ma_socio($id=null){

        // Rol asociado
        // verifica si el asociado tiene un registro en la tabla, si existe verifica que no este en Estatus borrado y este actualizado
        if (Yii::app()->user->checkAccess('usuario_asociado') && !Yii::app()->user->checkAccess('usuario_administrador') ){
            $modelAsociados = Asociado::model()->find('cedula=:cedula AND blnborrado = false AND id_estatus=1 ORDER BY idasociado desc', array(':cedula' => CrugeUserI::model()->findByPk(Yii::app()->user->id)->cedula));
            if(!$modelAsociados){
                 Yii::app()->user->setFlash('error','No esta habilitado para realizar soliciutdes de monto auxilio');
                 $this->redirect( array('/cruge/ui/principal'));
            }
            $id = $modelAsociados->idasociado;

            $usuarioAsociado = TRUE;

            $model = new Solicitud();
            $modelCredito = new Credito('SolicitudAdministrador');
            $modelSolBenef = new SolicitudBenef;
            $modelBeneficiario = new Beneficiario('solicitudma');
                //echo "<pre>";print_r($id);exit;

            $datos="";
            $modelAsociado = Asociado::model()->find('cedula=:cedula  AND id_estatus=1 AND t.blnborrado=FALSE', array(':cedula'=>$id));
                //echo "<pre>";print_r($id);exit;
            if (!empty($modelAsociado)) {

                $modelCreditosActivos = ReporteCreditos::model()->find('idasociado=:idasociado AND id_estatus_credito=1',array(':idasociado'=>$modelAsociado->idasociado));

                if(!$modelCreditosActivos){

                    $sueldo = $modelAsociado->utltimoSueldoPorcentajeAporte($modelAsociado->idasociado);
                    $modelPorcentajeAporte = PorcentajeDescuentoAsociadoPatrono::model()->find('idasociado=:idasociado AND actual = true',array(':idasociado'=>$modelAsociado->idasociado));

                    if($modelPorcentajeAporte){
                        $porcentaje = $modelPorcentajeAporte->idPorcentajeAsociado->descripcion;
                    }
                    else{
                        $porcentaje = 10;
                    }

                    $datos['id']=$modelAsociado->idasociado;
                    $datos['ci']=$modelAsociado->cedula;
                    $datos['nombre_completo']=$modelAsociado->nombre.' '.$modelAsociado->apellidos;
                    $datos['lugar_trabajo']=($modelAsociado->lugartrabajo0)?$modelAsociado->lugartrabajo0->descripcion:"";
                    $datos['unidad']=($modelAsociado->unidad)?$modelAsociado->unidad->descripcion:"";
                    $datos['sueldo']=number_format($sueldo,2,',','.');
                    $datos['porc']=$porcentaje.'%';
                    $datos['f_ingreso']=$modelAsociado->fechaingreso;
                    $datos['status']=strtoupper($modelAsociado->idEstatus->nombre_estatus);
                    $datos['f_fallece']=date("d-m-Y", strtotime($modelAsociado->fecha_estatus));
                        //echo "<pre>";print_r($datos);exit;

                    $modelBenef = Beneficiario::model()->findAll('idasociado=:asociado and blnborrado = false', array(':asociado'=>$modelAsociado->idasociado));

                        //echo "<pre>";print_r($datos); echo "\n";print_r($modelBenef);exit;
                    if (empty($modelBenef)) {

                        $enlace = CHtml::link('AQUÍ', array('/beneficiario/create', 'id'=>$modelAsociado->idasociado), array( 'target'=>'_blank'));
                        $datos['nobenef'] = 'No hay beneficiarios registrados para este asociado. <br> Haga click '.$enlace.' para agregar.';
                    }
                }

            }else{

                Yii::app()->user->setFlash('error', 'No existe el asociado consultado!');
                $this->redirect(array('solicitud_ma_socio'));
            }

        }else{

            Yii::app()->user->setFlash('error', 'No esta registrado como asociado!');
                $this->redirect(array('admin'));
        }

            if (isset($_POST['Solicitud']) && isset($_POST['Beneficiario'])) {

                $model->attributes=$_POST['Solicitud'];
                $modelBeneficiario->attributes=$_POST['Beneficiario'];
                    //echo "<pre>";print_r($model);print_r($modelBeneficiario);exit;

                $validar = true;

                $socio=Asociado::model()->find('cedula=:cedula AND id_estatus=1', array(':cedula'=>$model->cedula));
                        //echo "<pre>";print_r($model);exit;

                if (!$socio) {

                    $model->addError('cedula', 'asociado no encontrado');
                    $validar=false;

                }else{

                    $trans = Yii::app()->db->beginTransaction();

                    try {

                        $registrado = Solicitud::model()->findAll('id_asociado=:asociado AND id_tiposol=2', array(':asociado'=>$socio->idasociado));

                        $model->id_asociado=$socio->idasociado;
                        $model->fecha_solicitud=date("d-m-Y");
                        $model->fecha_caducidad=date('d-m-Y', strtotime('+6 month'));
                        $model->id_tiposol=2;
                        $model->id_beneficiario=$modelBeneficiario->idbeneficiario;

                        $validar = $validar && $model->validate();

                        if($validar){

                            if ($model->save()) {

                                $modelBeneficiario = Beneficiario::model()->findByPk($model->id_beneficiario);

                                $modelBeneficiario->id_status = 3;
                                $modelBeneficiario->blnborrado = true;
                                $valido = $modelBeneficiario->validate();

                                            //echo "<pre>"; print_r($modelBeneficiario);exit;
                                if ($valido) {

                                    if($modelBeneficiario->update()){

                                        $status_sol = new StatusSolicitud;

                                        $status_sol->id_status_solicitud = 1;
                                        $status_sol->id_solicitud = $model->id;
                                        $status_sol->id_user = Yii::app()->user->id;
                                        $status_sol->observaciones = '';

                                        if ($status_sol->save(true)){

                                            $trans->commit();
                                            Yii::app()->user->setFlash('success', 'Solicitud de '.$model->idTiposol->tipo_sol.' registrada con exito!');
                                            $this->redirect(array('admin'));

                                        }else{

                                            throw new Exception("Error de validación!", 1);
                                        }

                                    }else{

                                        throw new Exception("Error al guardar el beneficiario!", 2);
                                    }

                                }else{

                                    throw new Exception("Error, datos incorrectos del beneficiario!", 3);
                                }

                            }else{

                                throw new Exception("Error, no se guardo la solicitud!", 4);
                            }
                        }

                    } catch (Exception $e) {

                        $trans->rollBack();
                        Yii::app()->user->setFlash('error', $e->getMessage());
                        $this->redirect(array('solicitud_ma_socio'));
                    }
                }
            }

            $this->render('solicitud_ma_socio',array(
                'model'=>$model,
                'modelCredito' => $modelCredito,
                'modelBeneficiario' => $modelBeneficiario,
                'modelAsociado' => $modelAsociado,
                'modelSolBenef'  => $modelSolBenef,
                'data' => $datos,
            ));
    }

    /*###################
    AJAX PARA BUSCAR Y CARGAR DATOS DEL ASOCIADO EN LAS SOLICITUDES
    ####################*/
    public function actionFindData(){

        $dataAsociado = array();
        $dataAsociado['error']=1;
        $dataAsociado['idsocio'] = '';
        $dataAsociado['nombre_apellido']='';
        $dataAsociado['empresa']='';
        $dataAsociado['unidad']='';
        $dataAsociado['sueldo']='';
        $dataAsociado['porc_sueldo']='';
        $dataAsociado['porcentaje']='';
        $dataAsociado['fecha_inscripcion']='';
        $dataAsociado['status']='';
        $dataAsociado['mensajeError'] = '';
        $dataAsociado['flash'] = '';
        $dataAsociado['fecha_fallece'] = '';
        $dataAsociado['fecha_limite_sol'] = '';
        $dataAsociado['mensaje_flimite'] = '';
        $dataAsociado['registrado'] = false;
        $dataAsociado['esconder'] = false;
        $dataAsociado['no_beneficiario'] = false;

        $dataAsociado['beneficiario'] = '';
        $dataAsociado['edad'] = '';

        $dataAsociado['bnfs'] = '';
        $dataAsociado['montepio']=0;


        if (isset($_POST['cedula']) && $_POST['cedula'] !=0 && is_numeric($_POST['cedula'])){

            if (isset($_POST['tipo']) && $_POST['tipo'] == 1) {

                $modelAsociado = Asociado::model()->find('cedula=:cedula AND id_estatus=3 AND t.blnborrado=FALSE', array(':cedula'=>$_POST['cedula']));

                if ($modelAsociado) {

                    $registrado = Solicitud::model()->find('id_asociado=:asociado AND id_tiposol=1', array(':asociado'=>$modelAsociado->idasociado));

                    if ($registrado) {

                        $dataAsociado['error']=0;
                        $dataAsociado['registrado'] = true;
                        $dataAsociado['flash'] = '<span class="help-inline error">Ya existe una solicitud de montepio registrada para este asociado!.</span>';

                    }else{

                        $dataAsociado['registrado'] = false;
                        date_default_timezone_set('America/Caracas');
                        $fecha_muerte = date('d-m-Y', strtotime($modelAsociado->fecha_estatus));
                        /*$criteria = new CDbCriteria;
                        $criteria->select = 'max_dias_sol';
                        $criteria->condition = 'id=:id';
                        $criteria->params=array(':id'=>1);*/
                        $dias = ConfMontepio::model()->find();
                        //echo "<pre>";print_r($dias->max_dias_sol);exit;

                        if (empty($dias->max_dias_sol)) {

                            $enlace = CHtml::link('AQUÍ', array('/montepio/Solicitud/Configuracion_mp'));
                            $dataAsociado['mensaje_flimite'] = 'No hay parámetros de configuración de montepio guardados. <br> Haga click '.$enlace. ' para configurar.';
                        }else{

                            $diass = '+'.$dias->max_dias_sol.' days';
                            $fecha_limite = strtotime($diass, strtotime($fecha_muerte));
                            $fecha_limite = date('d-m-Y', $fecha_limite);
                            $dataAsociado['fecha_limite_sol'] = $fecha_limite;
                            $fecha_actual = date("d-m-Y");
                            $fecha1 = date_create($fecha_actual);
                            $fecha2 = date_create($fecha_limite);
                            $dias_restantes = date_diff($fecha1, $fecha2);

                            //Verifica si la diferencia de dias es negativa y no procede.
                            if (intval($dias_restantes->format("%R%a")) < 0) {

                                $dataAsociado['esconder'] = true;
                                $dataAsociado['mensaje_flimite'] = 'El plazo para realizar la solicitud terminó hace '.$dias_restantes->format("%a días");

                                $modelCreditosActivos = ReporteCreditos::model()->find('idasociado=:idasociado AND id_estatus_credito=1',array(':idasociado'=>$modelAsociado->idasociado));

                                if(!$modelCreditosActivos){

                                    $dataAsociado['error'] = 0;
                                    $sueldo = $modelAsociado->utltimoSueldoPorcentajeAporte($modelAsociado->idasociado);
                                    $modelPorcentajeAporte = PorcentajeDescuentoAsociadoPatrono::model()->find('idasociado=:idasociado AND actual = true',array(':idasociado'=>$modelAsociado->idasociado));

                                    if($modelPorcentajeAporte)

                                        $porcentaje = $modelPorcentajeAporte->idPorcentajeAsociado->descripcion;
                                    else
                                        $porcentaje = 10;

                                        $dataAsociado['idsocio'] = $modelAsociado->idasociado;
                                        $dataAsociado['nombre_apellido'] = $modelAsociado->nombre.' '.$modelAsociado->apellidos;
                                        $dataAsociado['empresa'] = ($modelAsociado->lugartrabajo0)?$modelAsociado->lugartrabajo0->descripcion:"";
                                        $dataAsociado['unidad'] =($modelAsociado->unidad)?$modelAsociado->unidad->descripcion:"";
                                        $dataAsociado['sueldo'] = number_format($sueldo,2,',','.') ;
                                        $dataAsociado['porcentaje'] = $porcentaje.'%';
                                        $dataAsociado['fecha_inscripcion'] = $modelAsociado->fechaingreso ;
                                        $dataAsociado['estatus'] = strtoupper($modelAsociado->idEstatus->nombre_estatus);
                                        $dataAsociado['fecha_fallece'] = date("d-m-Y", strtotime($modelAsociado->fecha_estatus)) ;
                                }else{

                                    $dataAsociado['mensajeError'] = '<span class="help-inline error">La cédula suministrada no se encuentra registrada.</span>';
                                }

                                //Verifica si la diferencia de dias es positiva y prodece.
                            }elseif(intval($dias_restantes->format("%R%a")) >= 0){
                                $dataAsociado['esconder'] = false;

                                if (intval($dias_restantes->format("%R%a")) > 0) {
                                    $dataAsociado['mensaje_flimite'] = "Quedan ".$dias_restantes->format("%a días")."  para realizar la solicitud";

                                }elseif (intval($dias_restantes->format("%R%a")) == 0) {

                                    $dataAsociado['mensaje_flimite'] = "Último día para realizar la solicitud";
                                }

                                $modelBenef = Beneficiario::model()->findAll('idasociado=:asociado and blnborrado = false', array(':asociado'=>$modelAsociado->idasociado));

                                if(!$modelBenef){

                                    $dataAsociado['nobenef']='<span class="help-inline error">No hay beneficiarios registrados para este asociado.</span>';

                                }else{

                                    $benfs = 0;
                                    foreach ($modelBenef as $key => $value) {

                                        if ($value->id_status == 1) {

                                            $nombre_completo = $value->nombre.' '.$value->apellido;
                                            $dataAsociado['bnfs'] .= '<option value="'.$value->idbeneficiario.'">'.$nombre_completo.'</option>';

                                            $benfs++;
                                        }
                                    }

                                    if ($benfs > 0) {

                                        $dataAsociado['nobenef']='<span class="help-inline success">El asociado tiene '. $benfs .' beneficiario(s) registrado(s).</span>';

                                    }elseif ($benfs <= 0) {

                                        $dataAsociado['no_beneficiario'] = true;
                                        $dataAsociado['nobenef']='No hay beneficiarios activos para este asociado.';
                                    }
                                }

                                $modelCreditosActivos = ReporteCreditos::model()->find('idasociado=:idasociado AND id_estatus_credito=1',array(':idasociado'=>$modelAsociado->idasociado));

                                if(!$modelCreditosActivos){

                                    $dataAsociado['error'] = 0;

                                    $sueldo = $modelAsociado->utltimoSueldoPorcentajeAporte($modelAsociado->idasociado);
                                    $modelPorcentajeAporte = PorcentajeDescuentoAsociadoPatrono::model()->find('idasociado=:idasociado AND actual = true',array(':idasociado'=>$modelAsociado->idasociado));

                                    if($modelPorcentajeAporte)
                                        $porcentaje = $modelPorcentajeAporte->idPorcentajeAsociado->descripcion;
                                    else
                                        $porcentaje = 10;

                                        $dataAsociado['idsocio'] = $modelAsociado->idasociado;
                                        $dataAsociado['nombre_apellido'] = $modelAsociado->nombre.' '.$modelAsociado->apellidos;
                                        $dataAsociado['empresa'] = ($modelAsociado->lugartrabajo0)?$modelAsociado->lugartrabajo0->descripcion:"";
                                        $dataAsociado['unidad'] =($modelAsociado->unidad)?$modelAsociado->unidad->descripcion:"";
                                        $dataAsociado['sueldo'] = number_format($sueldo,2,',','.') ;
                                        $dataAsociado['porcentaje'] = $porcentaje.'%';
                                        $dataAsociado['fecha_inscripcion'] = $modelAsociado->fechaingreso ;
                                        $dataAsociado['estatus'] = strtoupper($modelAsociado->idEstatus->nombre_estatus);
                                        $dataAsociado['fecha_fallece'] = date("d-m-Y", strtotime($modelAsociado->fecha_estatus)) ;
                                    }else{

                                        $dataAsociado['mensajeError'] = '<span class="help-inline error">La cédula suministrada no se encuentra registrada.</span>';
                                    }
                                }
                            }
                        }

                    }else{

                        $dataAsociado['mensajeError'] = '<span class="help-inline error">Cédula no registrada o pertenece a un asociado con un status diferente.</span>';
                    }

            }elseif (isset($_POST['tipo']) && $_POST['tipo'] == 2) {

                $modelAsociado = Asociado::model()->find('cedula=:cedula AND id_estatus=1 AND t.blnborrado=FALSE', array(':cedula'=>$_POST['cedula']));

                if ($modelAsociado) {

                    $dataAsociado['error'] = 0;

                    $modelCreditosActivos = ReporteCreditos::model()->find('idasociado=:idasociado AND id_estatus_credito=1',array(':idasociado'=>$modelAsociado->idasociado));

                    if(!$modelCreditosActivos){

                        $sueldo = $modelAsociado->utltimoSueldoPorcentajeAporte($modelAsociado->idasociado);
                        $modelPorcentajeAporte = PorcentajeDescuentoAsociadoPatrono::model()->find('idasociado=:idasociado AND actual = true',array(':idasociado'=>$modelAsociado->idasociado));

                        if($modelPorcentajeAporte)

                            $porcentaje = $modelPorcentajeAporte->idPorcentajeAsociado->descripcion;

                        else
                            $porcentaje = 10;

                        $dataAsociado['idsocio'] = $modelAsociado->idasociado;
                        $dataAsociado['nombre_apellido'] = $modelAsociado->nombre.' '.$modelAsociado->apellidos;
                        $dataAsociado['empresa'] = ($modelAsociado->lugartrabajo0)?$modelAsociado->lugartrabajo0->descripcion:"";
                        $dataAsociado['unidad'] =($modelAsociado->unidad)?$modelAsociado->unidad->descripcion:"";
                        $dataAsociado['sueldo'] = number_format($sueldo,2,',','.') ;
                        $dataAsociado['porcentaje'] = $porcentaje.'%';
                        $dataAsociado['fecha_inscripcion'] = $modelAsociado->fechaingreso ;
                        $dataAsociado['estatus'] = strtoupper($modelAsociado->idEstatus->nombre_estatus);

                    }else{

                        $dataAsociado['mensajeError'] = '<span class="help-inline error">La cédula suministrada no se encuentra registrada.</span>';
                    }

                    $registrado = Solicitud::model()->find('id_asociado=:asociado AND id_tiposol=1', array(':asociado'=>$modelAsociado->idasociado));

                    if (!empty($registrado)) {

                        $dataAsociado['error'] = 1;
                        $dataAsociado['montepio']=1;
                        $dataAsociado['nobenef']='Hay una solicitud de montepio registrada para este asociado!';

                    }else{

                        $modelBenef = Beneficiario::model()->findAll('idasociado=:asociado and blnborrado = false', array(':asociado'=>$modelAsociado->idasociado));

                        if(!$modelBenef){

                            if ($modelAsociado->id_estatus == 1) {

                                $dataAsociado['no_beneficiario'] = true;

                                $enlace = CHtml::link('AQUÍ', array('/beneficiario/create', 'id'=>$modelAsociado->idasociado), array( 'target'=>'_blank'));
                                $dataAsociado['nobenef']='No hay beneficiarios registrados para este asociado. <br> Haga click '.$enlace.' para agregar.';
                            }elseif ($modelAsociado->id_estatus == 3) {

                                $dataAsociado['nobenef']='No hay beneficiarios registrados para este asociado.';
                            }
                        }else{

                            $benfs = 0;
                            foreach ($modelBenef as $key => $value) {

                                if ($value->id_status == 1) {

                                    $nombre_completo = $value->nombre.' '.$value->apellido;
                                    $dataAsociado['bnfs'] .= '<option value="'.$value->idbeneficiario.'">'.$nombre_completo.'</option>';

                                    $benfs++;
                                }
                            }

                            if ($benfs > 0) {

                                $dataAsociado['nobenef']='<span class="help-inline success">El asociado tiene '. $benfs .' beneficiario(s) registrado(s).</span>';

                            }elseif ($benfs <= 0) {

                                $dataAsociado['no_beneficiario'] = true;
                                $dataAsociado['nobenef']='No hay beneficiarios activos para este asociado.';
                            }
                                //$nombre_completo = $value->nombre.' '.$value->apellido;
                                //$dataAsociado['bnfs'] .= '<option value="'.$value->idbeneficiario.'">'.$nombre_completo.'</option>';
                        }
                    }

                }else{

                    $dataAsociado['error'] = 1;
                    $dataAsociado['mensajeError'] = '<span class="help-inline error">Cédula no registrada o pertenece a un asociado con un status diferente.</span>';
                }
            }
        }
        echo CJSON::encode($dataAsociado);
    }


    /*###################
    AJAX PARA REGISTRAR BENEFICIARIOS MEDIANTE VISTA SOLICITUD_MP POR ADMINISTRADOR
    ####################*/
    public function actionRecdatos(){

        $dataBenef = array();
        $dataBenef['error'] = 1;
        $dataBenef['idsocio']='';
        $dataBenef['nombre'] = '';
        $dataBenef['apellido'] = '';
        $dataBenef['cedula'] = '';
        $dataBenef['fnacimiento'] = '';
        $dataBenef['parent'] = '';
        $dataBenef['msgerror'] = '';
        $dataBenef['tabla']='';
        $dataBenef['errortbl'] = '';
        $dataBenef['bnfs'] = '';
        $dataBenef['msg_combo'] = '';

        //echo "<pre>";print_r($_POST);exit;

        if (isset($_POST['cedula']) && isset($_POST['nombre']) && isset($_POST['apellido']) && isset($_POST['parentesco']) && isset($_POST['fecha'])) {

            $modeloA = Asociado::model()->find('cedula=:cedula AND blnborrado=FALSE',array(':cedula'=>$_POST['cedulaAsociado']));

            $modelBenef = Beneficiario::model()->find('t.cedula=:cedula AND idasociado=:idasociado' , array(':cedula'=>$_POST['cedula'],':idasociado'=>$modeloA->idasociado));

            if ($modelBenef ) {

                //echo ("hla");
                $dataBenef['error'] = 1;
                $dataBenef['msgerror'] = '<span class="help-inline error">Ya existe un beneficiario registrado con esta c&eacute;dula.</span>';

            }else{

                $modelParentesco = Beneficiario::model()->find('idasociado=:idasociado AND parentesco=:parentesco and parentesco in (1,2,4,5)', array(':idasociado'=>$modeloA->idasociado,':parentesco'=>$_POST['parentesco']));

                if (!$modelParentesco) {

                    $dataBenef['error'] = 0;

                    $Beneficiario = new Beneficiario('saveBeneficiario');

                    $Beneficiario->idasociado = $modeloA->idasociado;
                    $Beneficiario->cedula = $_POST['cedula'];
                    $Beneficiario->nombre = strtoupper($_POST['nombre']);
                    $Beneficiario->apellido = strtoupper($_POST['apellido']);
                    $Beneficiario->parentesco = strtoupper($_POST['parentesco']);
                    $Beneficiario->fecha = $_POST['fecha'];

                    if (!$Beneficiario->save()) {

                        $errores = '';
                        foreach ($Beneficiario->getErrors() as $key => $value) {
                             $errores .= ' '.$value[0];
                        }

                        $dataBenef['msgerror'] = $errores;
                        $dataBenef['error'] = 1;

                    }else{

                        $bnf_combo = Beneficiario::model()->findAll('idasociado=:idasociado' , array(':idasociado'=>$modeloA->idasociado));

                        $bns = 0;
                        foreach ($bnf_combo as $c => $v) {

                            if ($v->id_status == 1) {

                                $nombre_completo = $v->nombre.' '.$v->apellido;
                                $dataBenef['bnfs'] .= '<option value="'.$v->idbeneficiario.'">'.$nombre_completo.'</option>';

                                $bns = $bns++;
                            }
                        }

                        if ($bns > 0) {

                            $dataBenef['msg_combo']='<span class="help-inline success">El asociado tiene '. $bns .' beneficiario(s) activo(s).</span>';
                        //echo "<pre>";print_r($dataBenef);exit;

                        }/*elseif ($bns <= 0) {

                            $dataBenef['error'] = 1;
                            $dataBenef['nobenef']='No hay beneficiarios activos para este asociado.';
                        }*/
                    }


                        /*if (count($modeloA->idBeneficiario)>0) {


                                    $tabla = '<div class="beneficiarios">
                                <fieldset>
                                    <legend>Beneficiarios</legend>
                                    <table id="tabla-benf" class="table table-bordered">
                                    <tr>
                                        <td style="width:25%;"><b>Nombres y apellidos</b></td>
                                        <td style="width:25%;"><b>C&eacute;dula</b></td>
                                        <td style="width:25%;"><b>Edad</b></td>
                                        <td style="width:25%;"><b>Parentesco</b></td>
                                        <td style="width:25%;"><b>Seleccione</b></td>
                                    </tr>';

                                foreach ($modeloA->idBeneficiario as $key => $value) {

                                    $anio_nac = substr($value->fecha, 0, 4);
                                    $anio_actual = date('Y');
                                    $edad = $anio_actual - $anio_nac;

                                    //$pdesc = Parentesco::model()->find('parentesco=:parentesco and descripcion=:descipcion', array(':parentesco'=>$Beneficiario->parentesco));

                                    $tabla.='<tr style="'.(($value->idbeneficiario==$Beneficiario->idbeneficiario)?'backgroundcolor:#c1c1c1':"").';">
                                            <td>'.$value->nombre.' '.$value->apellido.'</td>
                                            <td>'.$value->cedula.'</td>
                                            <td>'.$edad.'</td>
                                            <td>'.$value->parent->descripcion.'</td>
                                            <td><input type="checkbox" name="idbenef" value="'.$value->idbeneficiario.'"></td>
                                        </tr>';
                                }

                                $tabla.='</table>
                                    </fieldset>
                                    </div>';

                                $dataBenef['tabla'] = $tabla;


                        }else{

                            $dataBenef['msgerror'] = '<span class="help-inline error">No se encontró el asociado.</span>';
                        }*/

                }else{

                    $dataBenef['msgerror'] = '<span class="help-inline error">Ya tiene un beneficiario registrado con el parentesco seleccionado.</span>';
                }
            }

        }else{

            $dataBenef['msgerror'] = '<span class="help-inline error">Error en envío de datos.</span>';
        }
        echo CJSON::encode($dataBenef);
    }

    /*###################
    APROBAR SOLICITUDES MP/MA
    ####################*/
    public function actionAprobar_mp($id){

        $checkFiles = Solicitud::visibilidadArchivos($id);

        if (empty($checkFiles)) {

            $model = $this->loadModel($id);
            $modelStatus = new StatusSolicitud();

            $modelAsociado = Asociado::model()->find('idasociado=:asociado AND blnborrado=FALSE', array(':asociado'=>$model->id_asociado));
            //echo "<pre>"; print_r($modelAsociado); exit;
            $modelSolBenef = new SolicitudBenef;

            $beneficiarios = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$id));
            //echo "<pre>";print_r($beneficiarios);exit;

            if ($modelAsociado) {

                $modelCreditosActivos = ReporteCreditos::model()->find('idasociado=:idasociado AND id_estatus_credito=1',array(':idasociado'=>$modelAsociado->idasociado));

                if(!$modelCreditosActivos){

                    $sueldo = $modelAsociado->utltimoSueldoPorcentajeAporte($modelAsociado->idasociado);
                    $modelPorcentajeAporte = PorcentajeDescuentoAsociadoPatrono::model()->find('idasociado=:idasociado AND actual = true',array(':idasociado'=>$modelAsociado->idasociado));

                    if($modelPorcentajeAporte)
                        $porcentaje = $modelPorcentajeAporte->idPorcentajeAsociado->descripcion;
                    else
                        $porcentaje = 10;

                }else{

                }

                $f = Solicitud::model()->montosFondo();

                if (is_array($f)) {

                    if (array_key_exists('error', $f) && $f['error'] == "Sin configuración") {

                        $link = CHtml::link('aquí!', array('/montepio/solicitud/configuracion_mp'), array('target'=>'_blank'));
                        Yii::app()->user->setFlash('error', "<b>No se ha configurado el monto máximo para montepio.</b><br>Para configurarlo haga click <b>".$link."</b>");

                    }elseif (array_key_exists('error', $f) && $f['error'] == "Sin aportes") {

                        $link = CHtml::link('aquí!', array('/aportes/datosTxtIntegrado/adminAF'), array('target'=>'_blank'));
                        Yii::app()->user->setFlash('warning', "<b>No hay aportes pagados aún.</b><br>Haga click <b>".$link."</b> para verificar!");
                    }
                }

            }

            //Se ejecuta cuando se presiona el boton Aprobar.
            if (isset($_POST['Solicitud'])) {

                $modelStatus->attributes = $_POST['StatusSolicitud'];
                $modelStatus->id_solicitud = $model->id;
                $modelStatus->id_user = Yii::app()->user->id;

                $transaction = Yii::app()->db->beginTransaction();

                try {

                    if (isset($_POST['yt0'])) {

                        $modelStatus->id_status_solicitud = 2;
                        $cant_montos = count($_POST)-3;

                        $bnfs = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$model->id));
                        $montos = array();
    //echo "<pre>";print_r($cant_montos);exit;
                        for ($i=1; $i <= $cant_montos ; $i++) {

                            $montos[] = $_POST['monto_'.$i];
                        }

                        $total_montos = floatval(array_sum($montos));
                        $monto_sol = str_replace(",", "", $_POST['Solicitud']['monto_solicitud']);

                        if ($total_montos == $monto_sol) {

                            $model->monto_solicitud = floatval($monto_sol);
                            $model->scenario= 'AprobarSolicitud';
                        //echo "<pre>"; print_r($monto_sol); echo "\n"; print_r($total_montos);echo "\n"; print_r($model); echo "\n"; exit;

                            if ($model->update()) {

                                foreach ($bnfs as $key => $value) {

                                    $value->monto_distribuido = $montos[$key];
                                    $value->update();
                                }

                                StatusSolicitud::model()->updateAll(array('actual'=>false),'id_solicitud=:id',array(':id'=>$model->id));

                                if($modelStatus->save(true)){

                                    $transaction->commit();
                                    Yii::app()->user->setFlash('success', "<b>La solicitud de ".$model->idTiposol->tipo_sol." realizada por ".$model->idBeneficiario->nombre." ".$model->idBeneficiario->apellido." ha sido aprobada</b>");
                                    $this->redirect(array('admin'));

                                }else{

                                    throw new Exception("Error en el status de la solicitud");
                                }

                            }else{

                                throw new Exception("Error en la actualización de datos", 1);
                            }

                        }else{

                            throw new Exception("El monto aprobado no concuerda con el total distribuido entre los beneficiarios", 2);
                        }

                    }elseif (isset($_POST['yt1'])) {

                        $modelStatus->id_status_solicitud = 3;
                        $model->monto_solicitud = floatval(0);

                        if ($model->update()) {

                            $bnfs = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$model->id));

                            foreach ($bnfs as $key => $value) {

                                $value->monto_distribuido = floatval(0);
                                $value->update();
                            }

                            StatusSolicitud::model()->updateAll(array('actual'=>false),'id_solicitud=:id',array(':id'=>$model->id));

                            if($modelStatus->save(true)){

                                $transaction->commit();
                                Yii::app()->user->setFlash('error', "<b>La solicitud de ".$model->idTiposol->tipo_sol." realizada por ".$model->idBeneficiario->nombre." ".$model->idBeneficiario->apellido." ha sido denegada</b>");
                                $this->redirect(array('admin'));

                            }else{

                                throw new Exception("Error en el status de la solicitud");
                            }

                        }else{

                            throw new Exception("Error en la actualización de datos", 4);
                        }
                    }

                } catch (Exception $e) {

                    $transaction->rollBack();
                    Yii::app()->user->setFlash('error', "<b>".$e->getMessage()."</b>");
                    $this->refresh();
                }
            }


            $this->render('aprobar_mp',array(
                'model'=>$model,
                'modelAs' => $modelAsociado,
                'modelBenef' => $modelSolBenef,
                'porcentaje' => $porcentaje,
                'sueldo' => $sueldo,
                'beneficiarios' => $beneficiarios,
                'fondo'=>$f,
                'modelStatus'=>$modelStatus,
            ));

        }else{

            Yii::app()->user->setFlash('error', 'Debe cargar los documentos requeridos antes de aprobar la solicitud!');
            $this->redirect(array('admin'));
        }
    }

    public function actionAprobar_ma($id){

        $checkFiles = Solicitud::visibilidadArchivos($id);

        if (empty($checkFiles)) {

            $model = $this->loadModel($id);
            $modelStatus = new StatusSolicitud();

            $modelAsociado = Asociado::model()->find('idasociado=:asociado AND blnborrado=false', array(':asociado'=>$model->id_asociado));
            //echo "<pre>"; print_r($modelAsociado); exit;

            if ($modelAsociado) {
                $modelCreditosActivos = ReporteCreditos::model()->find('idasociado=:idasociado AND id_estatus_credito=1',array(':idasociado'=>$modelAsociado->idasociado));

                //echo "<pre>"; print_r($modelAsociado); echo"\n"; print_r($modelCreditosActivos);exit;
                if(!$modelCreditosActivos){

                    $sueldo = $modelAsociado->utltimoSueldoPorcentajeAporte($modelAsociado->idasociado);
                    $modelPorcentajeAporte = PorcentajeDescuentoAsociadoPatrono::model()->find('idasociado=:idasociado AND actual = true',array(':idasociado'=>$modelAsociado->idasociado));

                    if($modelPorcentajeAporte)
                        $porcentaje = $modelPorcentajeAporte->idPorcentajeAsociado->descripcion;
                    else
                        $porcentaje = 10;

                }

                $fallecido = Beneficiario::model()->find('idbeneficiario=:beneficiario AND id_status=3 AND blnborrado=FALSE', array(':beneficiario'=>$model->id_beneficiario));
                //echo "<pre>"; print_r($model); echo"\n"; print_r($fallecido);exit;
                if (empty($fallecido)) {

                    throw new Exception("Beneficiario no encontrado", 1);

                }

                $f = Solicitud::model()->montosFondo();

                if (is_array($f)) {

                    if (array_key_exists('error', $f) && $f['error'] == "Sin configuración") {

                        $link = CHtml::link('aquí!', array('/montepio/solicitud/configuracion_mp'), array('target'=>'_blank'));
                        Yii::app()->user->setFlash('error', "<b>No se ha configurado el monto máximo para montepio.</b><br>Para configurarlo haga click <b>".$link."</b>");

                    }elseif (array_key_exists('error', $f) && $f['error'] == "Sin aportes") {

                        $link = CHtml::link('aquí!', array('/aportes/datosTxtIntegrado/adminAF'), array('target'=>'_blank'));
                        Yii::app()->user->setFlash('warning', "<b>No hay aportes pagados aún.</b><br>Haga click <b>".$link."</b> para verificar!");
                    }
                }

            }else{

            }

            if (isset($_POST['StatusSolicitud'])) {

            //echo "<pre>"; print_r($_POST); echo "\n";print_r($model); exit;

                $transaction = Yii::app()->db->beginTransaction();

                try {

            //Se ejecuta cuando se presiona el boton Aprobar.
                    if (isset($_POST['yt0'])) {


                        $modelStatus->attributes = $_POST['StatusSolicitud'];
                        $modelStatus->id_solicitud = $model->id;
                        $modelStatus->id_user = Yii::app()->user->id;
                        $monto_sol = str_replace(",", "", $_POST['Solicitud']['monto_solicitud']);
                        $modelStatus->id_status_solicitud = 2;
                        //echo "<pre>"; print_r($solicitud); echo "\n"; exit;

                        if ($model) {

                            $model->monto_solicitud = floatval($monto_sol);
                            $model->scenario= 'AprobarSolicitud';
                        //echo "<pre>";echo "\n"; print_r($model); echo "\n"; exit;

                            if ($model->validate()) {

                                if ($model->update()) {

                                    StatusSolicitud::model()->updateAll(array('actual'=>false),'id_solicitud=:id',array(':id'=>$model->id));

                                    if($modelStatus->save(true)){

                                        $transaction->commit();
                                        Yii::app()->user->setFlash('success', "<b>La solicitud de ".$model->idTiposol->tipo_sol." realizada por ".$model->idAsociado->nombre." ".$model->idAsociado->apellidos." ha sido aprobada</b>");
                                        $this->redirect(array('admin'));

                                    }else{

                                        throw new Exception("Error en el status de la solicitud");
                                    }

                                }else{

                                    throw new Exception("Error en la actualización de datos", 1);
                                }

                            }else{

                                throw new Exception("Error en la validación de datos", 2);
                            }

                        }else{

                            throw new Exception("Error en la solicitud", 3);
                        }

                    }elseif (isset($_POST['yt1'])) {

                        if (empty($_POST['StatusSolicitud']['observaciones'])) {

                            throw new Exception("Debe llenar el campo de observaciones para denegar un aporte");

                        }

                        $modelStatus->attributes = $_POST['StatusSolicitud'];
                        $modelStatus->id_solicitud = $model->id;
                        $modelStatus->id_status_solicitud = 3;
                        $modelStatus->id_user = Yii::app()->user->id;
                        $model->monto_solicitud = floatval(0);
                        //echo "<pre>";print_r($modelStatus);exit;

                        if ($model->update()) {

                            StatusSolicitud::model()->updateAll(array('actual'=>false),'id_solicitud=:id',array(':id'=>$model->id));

                            if($modelStatus->save(true)){

                                $transaction->commit();
                                Yii::app()->user->setFlash('error', "<b>La solicitud de ".$model->idTiposol->tipo_sol." realizada por ".$model->idAsociado->nombre." ".$model->idAsociado->apellidos." ha sido denegada</b>");
                                $this->redirect(array('admin'));

                            }else{

                                throw new Exception("Error en el status de la solicitud");
                            }

                        }else{

                            throw new Exception("Error en la actualización de datos", 5);
                        }
                    }

                } catch (Exception $e) {

                    $transaction->rollBack();
                    Yii::app()->user->setFlash('error', "<b>".$e->getMessage()."</b>");
                    $this->refresh();

                }
            }


            $this->render('aprobar_ma',array(
                'model'=>$model,
                'modelAs' => $modelAsociado,
                'porcentaje' => $porcentaje,
                'sueldo' => $sueldo,
                'fallecido'=>$fallecido,
                'fondo'=>$f,
                'modelStatus'=>$modelStatus,
            ));

        }else{

            Yii::app()->user->setFlash('error', 'Debe cargar los documentos requeridos antes de aprobar la solicitud!');
            $this->redirect(array('admin'));
        }
    }

    /*###################
    PAGAR SOLICITUDES MP/MA
    ####################*/

    public function actionPagarmp($id){

        $model = $this->loadModel($id);
        $comprobante = new ProcesoPago('pagar');
        $beneficiarios = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$id));

        if (isset($_POST['ProcesoPago'])) {

            $comprobante->attributes=$_POST['ProcesoPago'];

            $comprobante->id_proceso = $model->id;
            $comprobante->id_nombre_proceso = 4;
            $comprobante->monto_pagado = $model->monto_solicitud;
            $comprobante->id_usuario = Yii::app()->user->id;

            if (empty($comprobante->observacion)) {

                $comprobante->observacion = 'Pago de Bs. '.$comprobante->monto_pagado.' por concepto de Montepio del ex-asociado: '.$model->idAsociado->nombre.' '.$model->idAsociado->apellidos;
            }

            $trans = Yii::app()->db->beginTransaction();

            try {

                if ($comprobante->validate()) {

                    if ($comprobante->save(false)) {


                        AsociadoEstatus::model()->updateAll(array('actual'=>false),'idasociado=:id',array(':id'=>$model->id_asociado));
                        $modelSeguimiento = new AsociadoEstatus;
                        $modelSeguimiento->idasociado = $model->id_asociado;
                        $modelSeguimiento->id_estatus_asociado = 5;
                        $modelSeguimiento->observacion = $comprobante->observacion;
                        $modelSeguimiento->save();


                        $modelStatus = new StatusSolicitud;

                        StatusSolicitud::model()->updateAll(array('actual'=>false),'id_solicitud=:id',array(':id'=>$model->id));
                        $modelStatus->id_status_solicitud = 4;
                        $modelStatus->id_solicitud = $model->id;
                        $modelStatus->id_user = Yii::app()->user->id;
                        $modelStatus->observaciones = $comprobante->observacion;

                        if ($modelStatus->validate()) {

                            $modelStatus->save(false);

                            $trans->commit();
                            Yii::app()->user->setFlash('success', "<b>Pago realizado con exito!</b>");
                            $this->redirect(array('admin'));

                        }else{

                            throw new Exception("Error en la validación de datos!", 2);
                        }

                    }else{

                        throw new Exception("Error al realizar el pago!", 3);
                    }

                }else{

                    throw new Exception("Error en los datos introducidos!", 4);
                }

            } catch (Exception $e) {
                //echo "<pre>";print_r($modelStatus->errors);exit;
                $trans->rollBack();
                Yii::app()->user->setFlash('error', $e->getMessage());
                $this->redirect(array('admin'));
            }
        }

        $this->render('pagarMP', array('model' => $model,
                                        'comprobante'=>$comprobante,
                                        'beneficiarios'=>$beneficiarios));
    }

    public function actionPagarma($id){

        $model = $this->loadModel($id);
        $comprobante = new ProcesoPago;
        $fallecido = Beneficiario::model()->find('idbeneficiario=:beneficiario AND id_status=3 AND blnborrado=FALSE', array(':beneficiario'=>$model->id_beneficiario));

        if (isset($_POST['ProcesoPago'])) {

            $comprobante->attributes=$_POST['ProcesoPago'];
            $comprobante->id_proceso = $model->id;
            $comprobante->id_nombre_proceso = 4;
            $comprobante->monto_pagado = $model->monto_solicitud;
            $comprobante->id_usuario = Yii::app()->user->id;

            if ($comprobante->validate()) {

                $trans = Yii::app()->db->beginTransaction();

                try {

                    if ($comprobante->save()) {

                        StatusSolicitud::model()->updateAll(array('actual'=>FALSE),'id_solicitud=:id',array(':id'=>$model->id));

                        $status = new StatusSolicitud;
                        $status->id_status_solicitud = 4;
                        $status->id_solicitud = $model->id;
                        $status->id_user = Yii::app()->user->id;
                        $modelStatus->observaciones = $comprobante->observacion;

                        if ($status->validate()) {

                            $status->save(false);

                            $trans->commit();
                            Yii::app()->user->setFlash('success', "<b>Pago realizado con exito!</b>");
                            $this->redirect(array('admin'));

                        }else{

                                throw new Exception("Error en la validación de datos!", 2);
                        }

                    }else{

                        throw new Exception("Error al realizar el pago!", 3);
                    }

                } catch (Exception $e) {

                    //echo "<pre>";print_r($status);exit;
                    $trans->rollBack();
                    Yii::app()->user->setFlash('error', $e->getMessage());
                    $this->redirect(array('admin'));
                }

            }else{

                Yii::app()->user->setFlash('error', "Error en los datos introducidos!");
                $this->redirect(array('admin'));
            }
        }

        $this->render('pagarMA', array('model' => $model,
                                        'comprobante'=>$comprobante,
                                        'fallecido'=>$fallecido));
    }

    /*###################
    GENERAR INFORMES PDF
    ####################*/
    public function actionPdf_mp($id){

        $model = $this->loadModel($id);
        $solicitante = Beneficiario::model()->find('idbeneficiario=:beneficiario', array(':beneficiario'=>$model->id_beneficiario));
        $beneficiarios = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$id));
        $modelEmpresa = Empresa::model()->find();
        $usuario = CrugeUserI::model()->findByPk(Yii::app()->user->id)->nombres.' '.CrugeUserI::model()->findByPk(Yii::app()->user->id)->apellidos;

        $pdf = Yii::createComponent('application.extensions.mpdf60.mpdf');
            $html=
                $this->renderPartial('pdf_mp',array(
                    'model'=> $model,
                    'solicitante' => $solicitante,
                    'beneficiarios' => $beneficiarios,
                    'modelEmpresa'=>  $modelEmpresa),TRUE);
           //echo $html;exit;
            $mpdf=new mPDF('win-1252','LETTER','','',15,15,25,15,5,10);
            $arr = array (
                        'L' => array (
                          'content' => (empty($modelEmpresa->logo))?"<img src=".Yii::app()->request->baseUrl."/images/logo.png alt='Logo' width ='40px' heigth='40px'/>":"<img src='".Yii::app()->request->baseUrl."/images/".$modelEmpresa->logo."' alt='Logo' width ='40px' heigth='40px'/>",
                        ),

                        'R' => array (
                          'content' => 'Solicitud de Mutuo Auxilio<br>',
                          'font-style' => 'BI',
                          'font-family' => 'serif',
                          'color'=>'#000000'
                        ),

                        'line' => 0,

                    );
            $mpdf->setHeader($arr, 'O');
            $mpdf->defaultfooterfontsize=6;
            $mpdf->SetFooter('Elaborado por:<br>'.$usuario.' <br>{DATE d/m/Y} |'.$modelEmpresa->dir_emp.'| Página {PAGENO}/{nbpg}');
            $mpdf->WriteHTML($html);

            switch ($model->id_status) {
                case 2:
                    $mpdf->Output('Solicitud de montepio(Aprobada | '.date("d-m-Y").').pdf','D');
                    break;
                case 3:
                    $mpdf->Output('Solicitud de montepio(Denegada | '.date("d-m-Y").').pdf','D');
                    break;
                case 4:
                    $mpdf->Output('Solicitud de montepio(Pagada | '.date("d-m-Y").').pdf','D');
                    break;
                default:
                    $mpdf->Output('Solicitud de montepio.pdf','D');
                    break;
            }
             
            exit;

    }

    public function actionPdf_ma($id){

        $model = $this->loadModel($id);
        $solicitante = Beneficiario::model()->find('idbeneficiario=:beneficiario', array(':beneficiario'=>$model->id_beneficiario));
        $beneficiarios = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array(':solicitud'=>$id));
        $modelEmpresa = Empresa::model()->find();
        $usuario = CrugeUserI::model()->findByPk(Yii::app()->user->id)->nombres.' '.CrugeUserI::model()->findByPk(Yii::app()->user->id)->apellidos;

        $pdf = Yii::createComponent('application.extensions.mpdf60.mpdf');
            $html=
                $this->renderPartial('pdf_ma',array(
                    'model'=> $model,
                    'solicitante' => $solicitante,
                    'beneficiarios' => $beneficiarios,
                    'modelEmpresa'=>  $modelEmpresa),TRUE);
           //echo $html;exit;
            $mpdf=new mPDF('win-1252','LETTER','','',15,15,25,15,5,10);
            $arr = array (
                        'L' => array (
                          'content' => (empty($modelEmpresa->logo))?"<img src=".Yii::app()->request->baseUrl."/images/logo.png alt='Logo' width ='40px' heigth='40px'/>":"<img src='".Yii::app()->request->baseUrl."/images/".$modelEmpresa->logo."' alt='Logo' width ='40px' heigth='40px'/>",
                        ),

                        'R' => array (
                          'content' => 'Solicitud de Mutuo Auxilio<br>',
                          'font-style' => 'BI',
                          'font-family' => 'serif',
                          'color'=>'#000000'
                        ),

                        'line' => 0,

                    );
            $mpdf->setHeader($arr, 'O');
            $mpdf->defaultfooterfontsize=6;
            $mpdf->SetFooter('Elaborado por:<br>'.$usuario.' <br>{DATE d/m/Y} |'.$modelEmpresa->dir_emp.'| Página {PAGENO}/{nbpg}');
            $mpdf->WriteHTML($html);
            $mpdf->Output('Solicitud de mutuo auxilio(sin distribución).pdf','D');
            exit;

    }

    public function actionGetbenef(){

        //funcion de busqueda AJAX en vista solicitud_ma

        $datosBenef = array();
        $datosBenef['nombre_full'] = '';
        $datosBenef['cedula'] = '';
        $datosBenef['parentesco'] = '';
        $datosBenef['error'] = 1;
        $datosBenef['msgerror'] = '';

        if (isset($_POST['cedula']) && isset($_POST['seleccionado'])) {

            $cedula = $_POST['cedula'];
            $seleccionado = $_POST['seleccionado'];

            if ($cedula != 0 && is_numeric($cedula) && $seleccionado != 0 && is_numeric($seleccionado)) {

                $asociado = Asociado::model()->find('cedula=:cedula and blnborrado=FALSE', array(':cedula'=>$cedula));

                if ($asociado) {

                    $beneficiario = Beneficiario::model()->find('idasociado=:asociado and idbeneficiario=:beneficiario and id_status=1', array(':asociado'=>$asociado->idasociado, ':beneficiario'=>$seleccionado));

                    if ($beneficiario) {

                        $datosBenef['nombre_full'] = $beneficiario->nombre.' '.$beneficiario->apellido;
                        $datosBenef['cedula'] = $beneficiario->cedula;
                        $datosBenef['parentesco'] = $beneficiario->parent->descripcion;

                        $datosBenef['error'] = 0;
                        //echo "<pre>";print_r($datosBenef);exit;

                    }else{

                        $datosBenef['msgerror'] = "<span class=\"help-inline error\">Error, no se encontró al beneficiario!</span>";
                    }

                }else{

                    $datosBenef['msgerror'] = "<span class=\"help-inline error\">Error, no se encontró al asociado!</span>";
                }

            }else{

                $datosBenef['msgerror'] = "<span class=\"help-inline error\">Error en la cédula consultada!</span>";
            }

        }else{

            $datosBenef['msgerror'] = "<span class=\"help-inline error\">Error en envio de datos!</span>";
        }
    echo CJSON::encode($datosBenef);
    }

    /*###################
    CONFIGURACION DE LOS VALORES DE MONTEPIO
    ####################*/
    public function actionConfiguracion_mp(){

        $model = new Solicitud;
        $modelConf = new ConfMontepio('guardarConf');
        $data="";

        $configuracion = ConfMontepio::model()->findAll();
        //echo "<pre>";print_r($configuracion);exit;
        if (!empty($configuracion)) {

            $data = ConfMontepio::model()->find();

        }else{

            empty($configuracion);
        }

        if (isset($_POST['ConfMontepio'])) {

            if (empty($configuracion)) {

                $modelConf->attributes=$_POST['ConfMontepio'];
                //echo "<pre>";print_r($modelConf);exit;
 
                $valido = $modelConf->validate();

                if ($valido) {

                    $modelConf->save();
                    $this->refresh();

                }else{

                    $this->refresh();
                }

            }else{

                $modelConf = ConfMontepio::model()->find();
                $modelConf->attributes=$_POST['ConfMontepio'];
                $modelConf->scenario='guardarConf';
                $valido = $modelConf->validate();

                //echo "<pre>";print_r($modelConf);echo "\n";print_r($modelConf->getErrors());exit;
                if ($valido) {

                    $modelConf->update();
                    $this->refresh();

                }else{

                    $this->redirect(array('Configuracion_mp'));
                }
            }
        }

        $this->render('configuracion_mp',array(
            'model' => $model,
            'conf' => $data,
            'modelConf'=> $modelConf,
        ));

    }

    public function actionreloadSolicitante($id_socio){

        $reloadData = array();
        $reloadData['options'] = '';
        $reloadData['mensaje'] = '';
        $reloadData['error'] = 0;

        $benef_socio = Beneficiario::model()->findAll('idasociado=:socio and blnborrado=false', array(':socio'=>$id_socio));

        if (!empty($benef_socio)) {

            $benfs = 0;

            foreach ($benef_socio as $key => $value) {

                if ($value->id_status == 1) {

                    $nombre_completo = $value->nombre.' '.$value->apellido;
                    $reloadData['options'] .= '<option value="'.$value->idbeneficiario.'">'.$nombre_completo.'</option>';

                    $benfs = $benfs++;
                }
            }

            if ($benfs > 0) {

                $reloadData['mensaje']='<span class="help-inline success">El asociado tiene '. $benfs .' beneficiario(s) activo(s).</span>';

               }elseif ($benfs <= 0) {

                $reloadData['error'] = 1;
                $reloadData['mensaje']='No hay beneficiarios activos para este asociado.';
               }
        }
    }

    public function actionSolRetiro(){

        $model = new Solicitud;

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

    public function actionArchivosMp($id){

        $model = $this->loadModel($id);
        $recaudos = new RecaudosMpma('loadFiles');
        $ruta = Yii::app()->params['rutaRecaudos'];
        $load_files = Solicitud::archivosCargados($model->id);
        //echo "<pre>";print_r($load_files);exit;


        if (!empty($model)) {

            if ($model->id_tiposol==1) {

                $beneficiarios = SolicitudBenef::model()->findAll('id_solicitud=:solicitud', array('solicitud'=>$model->id));

                if (isset($_POST['yt0'])) {

                    $archivo_cedulas = CUploadedFile::getInstancesByName('cedula');
                    $archivo_cedula_fallecido = CUploadedFile::getInstance($recaudos, 'ci_fallecido');
                    $archivo_acta_defuncion = CUploadedFile::getInstance($recaudos, 'acta_defuncion');
                    $archivo_herederos = CUploadedFile::getInstance($recaudos, 'herederos');

                    $recaudos->ci_solicitante = $archivo_cedulas;
                    $recaudos->ci_fallecido = $archivo_cedula_fallecido;
                    $recaudos->acta_defuncion = $archivo_acta_defuncion;
                    $recaudos->herederos = $archivo_herederos;

                    if ($recaudos->validate()) {

                        //echo "<pre>";print_r($_FILES);
                        //echo "\n";print_r($recaudos);
                        //exit;

                        /*echo "<pre>";print_r($archivo_cedulas);
                        echo "\n";print_r($archivo_cedula_fallecido);
                        echo "\n";print_r($archivo_acta_defuncion);
                        echo "\n";print_r($archivo_herederos);
                        exit;*/

                        $files = array(); //Array que contiene los archivos cargados para guardarlos despues de las validaciones
                        $arch = array(); //Array que se evalua para evitar guardar archivos con nombres duplicados
                        $hash_names = array(); //Array que guarda los nombres de los archivos, encriptados en MD5

                        $transaction=Yii::app()->db->beginTransaction();

                        try {

                            //Guarda la(s) cedula(s) de los beneficiarios si se cargo alguna
                            if (!empty($archivo_cedulas) && count($archivo_cedulas)>0) {

                                $flag = false;

                                foreach ($archivo_cedulas as $file => $data) {

                                    $rec = new RecaudosMpma;
                                    $rec->id_solicitud = $model->id;
                                    $rec->id_tipodoc = 2;
                                    $rec->nombre_archivo = $data->name;

                                    $type = RecaudosMpma::extension($data->name);

                                    array_push($arch, $data->name);

                                    if ($arch >= 1) {

                                        $repetido = RecaudosMpma::model()->noRepetidos($arch, $data->name);

                                        if ($repetido == 'repetido') {

                                            throw new Exception("No puede cargar el mismo archivo <b>(".$data->name.")</b> mas de una vez", 11);
                                        }
                                    }
                                    array_push($files, $data);

                                    foreach ($beneficiarios as $cod => $datos) {

                                        $check = RecaudosMpma::Check($datos->id_beneficiario);
                                        $arr = array();

                                        if (!empty($check)) {

                                            if (!empty($arr)) {

                                                foreach ($arr as $k => $v) {

                                                    if ($check != $v) {

                                                        $rec->id_socio_benef = $check;
                                                        array_push($arr, $rec->id_socio_benef);
                                                    }
                                                }

                                            }else{

                                                $rec->id_socio_benef = $check;
                                                array_push($arr, $rec->id_socio_benef);
                                                break;
                                            }
                                        }
                                    }
                                    //echo "<pre>";print_r($rec->id_socio_benef);echo "\n";print_r($beneficiarios);echo "\n";print_r($arr);exit;
                                    //$rec->id_socio_benef = $beneficiarios[$file]->id_beneficiario;

                                    if(!$rec->save(true)){

                                        throw new Exception("Error al guarda el documento ".$data->name, 1);
                                    }else{

                                        if (!empty($type)) {

                                            $hash_name = md5($rec->id);
                                            $hash_name = $hash_name.'.'.$type;

                                            array_push($hash_names, $hash_name);

                                            $rec->nombre_hash = $hash_name;
                                            $rec->save();
                                        }

                                        if (file_exists($ruta.$rec->nombre_hash)) {

                                            throw new Exception("Ya existe un archivo guardado con el nombre: <b>".$data->name."</b>, cambielo para proseguir", 2);
                                        }/*else{

                                            $archivo_cedulas[$file]->saveAs($ruta.$data);
                                        }*/
                                    }
                                }
                            }

                            //Guarda el archivo cedula del difunto si se cargo alguno
                            if (!empty($archivo_cedula_fallecido)) {

                                $rec = new RecaudosMpma;
                                $rec->id_solicitud = $model->id;
                                $rec->id_tipodoc = 3;
                                $rec->nombre_archivo = $archivo_cedula_fallecido->name;
                                $rec->id_socio_benef = $model->id_asociado;
                                $type = RecaudosMpma::extension($archivo_cedula_fallecido->name);
                                array_push($arch, $archivo_cedula_fallecido->name);

                                if (count($arch) >= 1) {

                                    $repetido = RecaudosMpma::model()->noRepetidos($arch, $archivo_cedula_fallecido->name);
                                    if ($repetido == 'repetido') {

                                        throw new Exception("No puede cargar el mismo archivo <b>(".$archivo_cedula_fallecido->name.")</b> mas de una vez", 11);
                                    }
                                }

                                array_push($files, $archivo_cedula_fallecido);

                                if(!$rec->save(true)){
    //echo "<pre>";print_r($rec->Errors);exit;
                                    throw new Exception("Error al guarda el documento ".$rec->nombre_archivo, 3);
                                }else{

                                    if (!empty($type)) {

                                        $hash_name = md5($rec->id);
                                        $hash_name = $hash_name.'.'.$type;
                                        array_push($hash_names, $hash_name);

                                        $rec->nombre_hash = $hash_name;
                                        $rec->save();
                                    }

                                    if (file_exists($ruta.$rec->nombre_hash)) {

                                        throw new Exception("Ya existe un archivo con el nombre: <b>".$rec->nombre_archivo."</b>, cambie el nombre de este para proseguir", 4);
                                    }/*else{

                                        $archivo_cedula_fallecido->saveAs($ruta.$archivo_cedula_fallecido);
                                    }*/
                                }
                            }

                            //Guarda el archivo acta de defunción si se cargo alguno
                            if (!empty($archivo_acta_defuncion)) {

                                $rec = new RecaudosMpma;
                                $rec->id_solicitud = $model->id;
                                $rec->id_tipodoc = 5;
                                $rec->nombre_archivo = $archivo_acta_defuncion->name;
                                $type = RecaudosMpma::extension($archivo_acta_defuncion->name);
                                array_push($arch, $archivo_acta_defuncion->name);

                                if ($arch >= 1) {

                                    $repetido = RecaudosMpma::model()->noRepetidos($arch, $archivo_acta_defuncion->name);
                                    if ($repetido == 'repetido') {

                                        throw new Exception("No puede cargar el mismo archivo <b>(".$archivo_acta_defuncion->name.")</b> mas de una vez", 11);
                                    }
                                }

                                array_push($files, $archivo_acta_defuncion);

                                if(!$rec->save(true)){

                                    throw new Exception("Error al guarda el documento ".$rec->nombre_archivo, 5);
                                }else{

                                    if (!empty($type)) {

                                        $hash_name = md5($rec->id);
                                        $hash_name = $hash_name.'.'.$type;
                                        array_push($hash_names, $hash_name);

                                        $rec->nombre_hash = $hash_name;
                                        $rec->save();
                                    }
//echo '<pre>';print_r($archivo_acta_defuncion->name);exit;
                                    if (file_exists($ruta.$rec->nombre_hash)) {

                                        throw new Exception("Ya existe un archivo con el nombre: <b>".$rec->nombre_archivo."</b>, cambie el nombre de este para proseguir", 6);
                                    }/*else{

                                        $archivo_acta_defuncion->saveAs($ruta.$archivo_acta_defuncion);
                                    }*/
                                }
                            }

                            //Guarda el archivo carta de herederos universales si se cargo alguno
                            if (!empty($archivo_herederos)) {

                                $rec = new RecaudosMpma;
                                $rec->id_solicitud = $model->id;
                                $rec->id_tipodoc = 6;
                                $rec->nombre_archivo = $archivo_herederos->name;
                                $type = RecaudosMpma::extension($archivo_herederos->name);
                                array_push($arch, $archivo_herederos->name);

                                if (count($arch) >= 1) {

                                    $repetido = RecaudosMpma::model()->noRepetidos($arch, $archivo_herederos->name);
                                    if ($repetido == 'repetido') {

                                        throw new Exception("No puede cargar el mismo archivo <b>(".$archivo_herederos->name.")</b> mas de una vez", 11);
                                    }
                                }


                                array_push($files, $archivo_herederos);

                                if(!$rec->save(true)){

                                    throw new Exception("Error al guarda el documento ".$rec->nombre_archivo, 7);
                                }else{

                                    if (!empty($type)) {

                                        $hash_name = md5($rec->id);
                                        $hash_name = $hash_name.'.'.$type;
                                        array_push($hash_names, $hash_name);

                                        $rec->nombre_hash = $hash_name;
                                        $rec->save();
                                    }

                                    if (file_exists($ruta.$rec->nombre_hash)) {

                                        throw new Exception("Ya existe un archivo con el nombre: <b>".$rec->nombre_archivo."</b>, cambie el nombre de este para proseguir", 8);
                                    }/*else{

                                        $archivo_herederos->saveAs($ruta.$archivo_herederos);
                                    }*/
                                }
                            }

                            if (empty($archivo_cedulas) && empty($archivo_cedula_fallecido) && empty($archivo_acta_defuncion) && empty($archivo_herederos)) {

                                throw new Exception("Debe cargar al menos un(1) documento", 9);
                            }

                            if (count($files) > 0) {

                                foreach ($files as $cod => $val) {

                                    if (!empty($val)) {

                                        $val->saveAs($ruta.$hash_names[$cod]);
                                    }
                                }
                            }
                            //echo "<pre>archivos";print_r($files);exit;

                            $transaction->commit();
                            Yii::app()->user->setFlash('success', 'Los recaudos han sido guardados con exito');
                            $this->redirect(array('admin'));

                        } catch (Exception $e) {

                            //echo "<pre>";print_r($e);exit;
                            if ($e->getCode() == 2 || $e->getCode() == 4 || $e->getCode() == 6 || $e->getCode() == 8 || $e->getCode() == 9 || $e->getCode() == 10 || $e->getCode() == 11) {

                                $transaction->rollBack();
                                Yii::app()->user->setFlash('warning', $e->getMessage());
                                $this->refresh();
                            }

                            $transaction->rollBack();
                            Yii::app()->user->setFlash('error', $e->getMessage().$e->getCode());
                            $this->redirect(array('admin'));
                        }

                    }
                }

                $this->render('cargar_archivos',array(
                    'model' => $model,
                    'recaudos' => $recaudos,
                    'beneficiarios' => $beneficiarios,
                    'files'=>$load_files,
                ));


            }elseif ($model->id_tiposol==2) {

                $files = array(); //Array que contiene los archivos cargados para guardarlos despues de las validaciones
                $arch = array(); //Array que se evalua para evitar guardar archivos con nombres duplicados
                $hash_names = array(); //Array que guarda los nombres de los archivos, encriptados en MD5

                $err_codes = array('filename_err'=>1, 'save_err'=>2, 'saved_file_err'=>3, 'doc_load_err'=>4);

                if (isset($_POST['yt0'])) {

                    $archivo_cedula_asociado = CUploadedFile::getInstance($recaudos, 'ci_solicitante');
                    $archivo_cedula_fallecido = CUploadedFile::getInstance($recaudos, 'ci_fallecido');
                    $archivo_acta_defuncion = CUploadedFile::getInstance($recaudos, 'acta_defuncion');

                    $recaudos->ci_solicitante = $archivo_cedula_asociado;
                    $recaudos->ci_fallecido = $archivo_cedula_fallecido;
                    $recaudos->acta_defuncion = $archivo_acta_defuncion;

                    /*echo "<pre>";print_r($archivo_cedula_asociado);
                    echo "\n";print_r($archivo_cedula_fallecido);
                    echo "\n";print_r($archivo_acta_defuncion);
                    exit;*/

                    if ($recaudos->validate()) {

                        $transaction=Yii::app()->db->beginTransaction();

                        try {

                            //Guarda el archivo cedula del asociado si se cargo alguno
                            if (!empty($archivo_cedula_asociado)) {

                                $rec = new RecaudosMpma;
                                $rec->id_solicitud = $model->id;
                                $rec->id_tipodoc = 1;
                                $rec->nombre_archivo = $archivo_cedula_asociado->name;
                                $rec->id_socio_benef = $model->id_asociado;
                                $type = RecaudosMpma::extension($archivo_cedula_asociado->name);
                                array_push($arch, $archivo_cedula_asociado->name);

                                if (count($arch) >= 1) {

                                    $repetido = RecaudosMpma::model()->noRepetidos($arch, $archivo_cedula_asociado->name);
                                    //echo "<pre>";print_r($repetido);exit;
                                    if ($repetido == 'repetido') {

                                        throw new Exception("No puede cargar el mismo archivo <b>(".$archivo_cedula_asociado->name.")</b> más de una vez", $err_codes['filename_err']);
                                    }
                                }


                                array_push($files, $archivo_cedula_asociado);

                                if(!$rec->save(true)){

                                    throw new Exception("Error al guarda el documento ".$rec->nombre_archivo, $err_codes['save_err']);
                                }else{

                                    if (!empty($type)) {

                                        $hash_name = md5($rec->id);
                                        $hash_name = $hash_name.'.'.$type;
                                        array_push($hash_names, $hash_name);

                                        $rec->nombre_hash = $hash_name;

                                        if($rec->save()){

                                            if (file_exists($ruta.$rec->nombre_hash)) {

                                                throw new Exception("Ya existe un archivo con el nombre: <b>".$rec->nombre_archivo."</b>, cambie el nombre de este para proseguir", $err_codes['saved_file_err']);
                                            }
                                        }
                                    }
                                }
                            }

                            //Guarda el archivo cedula del difunto si se cargo alguno
                            if (!empty($archivo_cedula_fallecido)) {

                                $rec = new RecaudosMpma;
                                $rec->id_solicitud = $model->id;
                                $rec->id_tipodoc = 4;
                                $rec->nombre_archivo = $archivo_cedula_fallecido->name;
                                $rec->id_socio_benef = $model->id_beneficiario;
                                $type = RecaudosMpma::extension($archivo_cedula_fallecido->name);
                                array_push($arch, $archivo_cedula_fallecido->name);

                                if (count($arch) >= 1) {

                                    $repetido = RecaudosMpma::model()->noRepetidos($arch, $archivo_cedula_fallecido->name);
                                    //echo "<pre>";print_r($repetido);exit;
                                    if ($repetido == 'repetido') {

                                        throw new Exception("No puede cargar el mismo archivo <b>(".$archivo_cedula_fallecido->name.")</b> más de una vez", $err_codes['filename_err']);
                                    }
                                }


                                array_push($files, $archivo_cedula_fallecido);

                                if(!$rec->save(true)){

                                    throw new Exception("Error al guarda el documento ".$rec->nombre_archivo, $err_codes['save_err']);
                                }else{

                                    if (!empty($type)) {

                                        $hash_name = md5($rec->id);
                                        $hash_name = $hash_name.'.'.$type;
                                        array_push($hash_names, $hash_name);

                                        $rec->nombre_hash = $hash_name;

                                        if($rec->save()){

                                            if (file_exists($ruta.$rec->nombre_hash)) {

                                                throw new Exception("Ya existe un archivo con el nombre: <b>".$rec->nombre_archivo."</b>, cambie el nombre de este para proseguir", $err_codes['saved_file_err']);
                                            }
                                        }
                                    }
                                }
                            }

                            //Guarda el archivo acta de defunción si se cargo alguno
                            if (!empty($archivo_acta_defuncion)) {

                                $rec = new RecaudosMpma;
                                $rec->id_solicitud = $model->id;
                                $rec->id_tipodoc = 5;
                                $rec->nombre_archivo = $archivo_acta_defuncion->name;
                                $rec->id_socio_benef = $model->id_beneficiario;
                                $type = RecaudosMpma::extension($archivo_acta_defuncion->name);
                                array_push($arch, $archivo_acta_defuncion->name);

                                if (count($arch) >= 1) {

                                    $repetido = RecaudosMpma::model()->noRepetidos($arch, $archivo_acta_defuncion->name);
                                    if ($repetido == 'repetido') {

                                        throw new Exception("No puede cargar el mismo archivo <b>(".$archivo_acta_defuncion->name.")</b> más de una vez", $err_codes['filename_err']);
                                    }
                                }


                                array_push($files, $archivo_acta_defuncion);


                                if(!$rec->save(true)){

                                    throw new Exception("Error al guarda el documento ".$archivo_acta_defuncion->name, $err_codes['save_err']);
                                }else{

                                    if (!empty($type)) {

                                        $hash_name = md5($rec->id);
                                        $hash_name = $hash_name.'.'.$type;
                                        array_push($hash_names, $hash_name);

                                        $rec->nombre_hash = $hash_name;

                                        if($rec->save()){

                                            if (file_exists($ruta.$rec->nombre_hash)) {

                                                throw new Exception("Ya existe un archivo con el nombre: <b>".$rec->nombre_archivo."</b>, cambie el nombre de este para proseguir", $err_codes['saved_file_err']);
                                            }
                                        }
                                    }
                                }
                            }

                            if (empty($archivo_cedula_asociado) && empty($archivo_cedula_fallecido) && empty($archivo_acta_defuncion)) {

                                throw new Exception("Debe cargar al menos un(1) documento", $err_codes['doc_load_err']);
                            }

                            if (count($files) > 0) {

                                foreach ($files as $cod => $val) {

                                    if (!empty($val)) {

                                        $val->saveAs($ruta.$hash_names[$cod]);
                                    }
                                }
                            }

                            $transaction->commit();
                            Yii::app()->user->setFlash('success', 'Los recaudos han sido guardados con exito');
                            $this->redirect(array('admin'));

                        } catch (Exception $e) {
                            //echo "<pre>";print_r($rec->errors);exit;
                            if ($e->getCode() == 1 || $e->getCode() == 3 || $e->getCode() == 4) {

                                $transaction->rollBack();
                                Yii::app()->user->setFlash('warning', $e->getMessage());
                                $this->refresh();
                            }else{

                                $transaction->rollBack();
                                Yii::app()->user->setFlash('error', $e->getMessage());
                                $this->refresh();
                            }

                            //$transaction->rollBack();
                            //Yii::app()->user->setFlash('error', $e->getMessage());
                            //$this->redirect(array('admin'));
                        }
                    }
                }

                $this->render('cargar_archivos',array(
                        'model' => $model,
                        'recaudos' => $recaudos,
                        'files'=>$load_files,
                ));
            }
        }else{

            Yii::app()->user->setFlash('error', "Solicitud no encontrada");
            $this->redirect(array('admin'));
        }
    }

    public function actionReporteExcel(){

        yii::app()->request->sendFile("Reporte montepio/mutuo auxilio(".date("d-m-Y").").xlsx",
            $this->renderPartial('reportePhpExcelMpMa',array(
                ), true)
        );
    }

    public function actionDenegar($id){

        $model = $this->loadModel($id);
        
        if($model->id_status !=2){
            Yii::app()->user->setFlash('error', "<b>Error, la solicitud se encuentra en estatus <b>".strtoupper($model->name_est)."</b></b>");
            $this->redirect(array('admin'));
        }
        $EstatusSolicitud = new StatusSolicitud('denegar');

        if (isset($_POST['StatusSolicitud'])) {
            
            $EstatusSolicitud->attributes = $_POST['StatusSolicitud'];
            $EstatusSolicitud->id_solicitud = $model->id;
            $EstatusSolicitud->id_status_solicitud = 3;
            //echo "<pre>";print_r($EstatusSolicitud);exit;

            if ($EstatusSolicitud->validate()) {

                $transaction = Yii::app()->db->beginTransaction();

                try {
                        
                    StatusSolicitud::model()->updateAll(array('actual'=>false),'id_solicitud=:id',array(':id'=>$model->id));
                    $EstatusSolicitud->save(false);

                    $transaction->commit();
                    Yii::app()->user->setFlash('error', "<b>La solicitud ha sido denegada</b>");
                    $this->redirect(array('admin'));

                } catch (Exception $e) {
                    
                    $transaction->rollBack();
                    Yii::app()->user->setFlash('error', "<b>Ocurrio un error al denegar la solicitud</b>");
                    $this->redirect(array('admin'));
                }


            }else{

                Yii::app()->user->setFlash('error', "<b>Error al validar los datos</b>");
                $this->refresh();
            }
        }

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

    /**
     * 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 the ID of the model to be loaded
     */
    public function loadModel($id)
    {
        $model=Solicitud::model()->findByPk($id);
        if($model===null)
            throw new CHttpException(404,'The requested page does not exist.');
        return $model;
    }

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