<?php

class MayorAnaliticoCuentaController 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'),
				'users'=>array('@'),
			),
			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('create','buscaMayorAnalitico','busca_balance_general','pdf_diario_comprobante','pdf_balance_general','buscaDiarioComprobante','pdf_mayor_analitico','fpdf_mayor_analitico','update','pdf_mov_auxiliar','busca_movimiento_cuenta','cuenta','busca_mov_auxiliar','cuentamov','pdf_mov_cuenta'),
				'users'=>array('@'),
			),
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('admin','delete'),
				'users'=>array('admin'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}
        
    public function actionCuenta($term) {
      $criteria = new CDbCriteria;                                    
      $criteria->condition = "LOWER(cedula) like LOWER(:term)";
      $criteria->params = array(':term'=> ''.$_GET['term'].'%');   
      $criteria->limit = 30;
      $criteria->order = 'cedula asc';
      $data = VistaAuxiliar::model()->findAll($criteria);      
      $arr = array();
        foreach ($data as $item) {
                     $cuenta=$item->cedula. " ". $item->nombres ;
            $arr[] = array(
                'id' => $item->id, 
                'value' => $cuenta,
                'label' => $cuenta,
            );
        }
        echo CJSON::encode($arr);
      }

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

                    // uncomment the following code to enable ajax-based validation
                    
                    if(isset($_POST['ajax']) && $_POST['ajax']==='mayor-analitico-cuenta-busca_balance_general-form')
                    {
                        echo CActiveForm::validate($model);
                        Yii::app()->end();
                    }
                    

                    if(isset($_POST['MayorAnaliticoCuenta']))
                    {
                        $model->attributes=$_POST['MayorAnaliticoCuenta'];
                        if($model->fecha_final==''){
                            $model->fecha_final=date('31-12-Y');
                        }
                        if($model->validate())
                        {
                        $this->redirect(array('pdf_balance_general','fecha1'=>$model->fecha_comprobante,'fecha2'=>$model->fecha_final,
                        //'sm'=>$model->sin_mov,
                        //'saldo'=>$model->sin_mov_saldo,
                        //'pag'=>$model->salta_pag
                           ));
                        }
                    }
                    $this->render('busca_balance_general',array('model'=>$model));
                }
        
        public function actionBusca_movimiento_cuenta()
            {
                $model=new MayorAnaliticoCuenta;
                $model->scenario = 'busca_cuenta';

            if(isset($_POST['MayorAnaliticoCuenta']))
                {
                    $model->attributes=$_POST['MayorAnaliticoCuenta'];
                    if($model->validate())
                    {
                        if($model->cuenta_hasta==''){
                            $model->cuenta_hasta=$model->id_cuenta;
                        }
                       
                       // var_dump($model->sin_mov);
                        //// form inputs are valid, do something here
                       // return;
                      // $model->sin_mov=1;
                        //echo $model->fecha_final;
                        //$this->render('pdf_mov_cuenta',array('model'=>$model));
                       $this->redirect(array('pdf_mov_cuenta','fecha1'=>$model->fecha_comprobante,'fecha2'=>$model->fecha_final,'c1'=>$model->id_cuenta,'c2'=>$model->cuenta_hasta,
                    'sm'=>$model->sin_mov,
                    'saldo'=>$model->sin_mov_saldo,
                    'pag'=>$model->salta_pag
                           ));
                        
                    }
                    
                }
                $this->render('busca_movimiento_cuenta',array('model'=>$model));
             
            
              }
              
              public function actionBusca_mov_auxiliar()
            {
                $model=new MayorAnaliticoCuenta;
                $model->scenario = 'busca_cuenta';
                if(isset($_POST['MayorAnaliticoCuenta']))
                {
                    $model->attributes=$_POST['MayorAnaliticoCuenta'];
                    if($model->validate())
                    {
                      if($model->cuenta_hasta==''){
                                        $model->cuenta_hasta=$model->id_cuenta;
                                    }
                            $this->redirect(array('pdf_mov_auxiliar',
                                'fecha1'=>$model->fecha_comprobante,
                                'fecha2'=>$model->fecha_final,
                                'c1'=>$model->id_cuenta,
                                'c2'=>$model->cuenta_hasta,
                                'tipo'=>$model->tipo_informe,
                                'cant'=>$model->cant_imprime,
//                                'tipo_aux'=>$model->tipo_aux,
                                'aux'=>$model->clv_auxiliar,
                                'sm'=>$model->sin_mov_saldo,
                                'ds'=>$model->descartar,
                                'pag'=>$model->salta_pag));
                            }
                        }
                            $this->render('busca_mov_auxiliar',array('model'=>$model));
                    }
        
        
                    
    public function actionBuscaMayorAnalitico()
    {
        $model = new MayorAnaliticoCuenta();

        if (isset($_POST['MayorAnaliticoCuenta'])) {
            $model->attributes = $_POST['MayorAnaliticoCuenta'];
            if ($model->validate()) {
                if ($model->cuenta_hasta == '') {
                    $model->cuenta_hasta = $model->id_cuenta;
                }

                $this->redirect(['fpdf_mayor_analitico',
                    'fecha1' => $model->fecha_comprobante,
                    'fecha2' => $model->fecha_final,
                    'c1' => $model->id_cuenta,
                    'c2' => $model->cuenta_hasta,
                    'tipo' => $model->tipo_informe,
                    'sm' => $model->sin_mov_saldo,
                    'hd' => $model->header,
                    'pag' => $model->salta_pag,
                ]);
            }
        }

        $this->render('buscaMayorAnalitico', [
            'model' => $model,
            'periodo' => EjerciciosContables::model()->find('activo=1'),
        ]);
    }  
        
                    
                    
                    
        public function actionBuscaMayorAnalitico2()
        {
            $model=new MayorAnaliticoCuenta;

            if(isset($_POST['MayorAnaliticoCuenta']))
            {
                $model->attributes=$_POST['MayorAnaliticoCuenta'];
                if($model->validate())
                {
          if($model->cuenta_hasta==''){
                            $model->cuenta_hasta=$model->id_cuenta;
                        }
                $this->redirect(array('pdf_mayor_analitico',
                    'fecha1'=>$model->fecha_comprobante,
                    'fecha2'=>$model->fecha_final,
                    'c1'=>$model->id_cuenta,
                    'c2'=>$model->cuenta_hasta,
                    'tipo'=>$model->tipo_informe,
                    'sm'=>$model->sin_mov_saldo,
                    'hd'=>$model->header,
                    'pag'=>$model->salta_pag));
                }
            }
            $this->render('buscaMayorAnalitico',array('model'=>$model));
        }
        
                    public function actionBuscaDiarioComprobante()
            {
                $model=new MayorAnaliticoCuenta;

                if(isset($_POST['MayorAnaliticoCuenta']))
                {
                    $model->attributes=$_POST['MayorAnaliticoCuenta'];
                    if($model->validate())
                    {
                     if($model->fecha_comprobante==''){
                            $model->fecha_comprobante=null;
                        }
                     if($model->fecha_final==''){
                            $model->fecha_final=$model->fecha_comprobante;
                        }
                     if($model->n_desde==''){
                            $model->n_desde=null;
                        }
                     if($model->n_hasta==''){
                           $model->n_hasta=$model->n_desde;
                        }
                        
                     $this->redirect(array('pdf_diario_comprobante',
                    'fecha1'=>$model->fecha_comprobante,
                    'fecha2'=>$model->fecha_final,
                   // 'c1'=>$model->id_cuenta,
                   // 'c2'=>$model->cuenta_hasta,
                   // 'tipo'=>$model->tipo_informe,
                   // 'cant'=>$model->cant_imprime,
                    'n_desde'=>$model->n_desde,
                    'n_hasta'=>$model->n_hasta,
                   // 'aux'=>$model->clv_auxiliar,
                    'sm'=>$model->sin_mov_saldo,
                    'ds'=>$model->descartar,
                    'pag'=>$model->salta_pag));
                    }
                }
                $this->render('buscaDiarioComprobante',array('model'=>$model));
            }
              

            public function actionPdf_mov_cuenta()
                {
                  $this->render('pdf_mov_cuenta');
                 }
            public function actionPdf_balance_general()
                {
                  $this->render('pdf_balance_general');
                 }
            public function actionPdf_mayor_analitico()
                {
                  $this->render('pdf_mayor_analitico');
                 }
            public function actionFpdf_mayor_analitico()
                {
                  $this->render('fpdf_mayor_analitico');
                 }
               
                public function actionPdf_mov_auxiliar()
                {
                  $this->render('pdf_mov_auxiliar');
                 }
                public function actionPdf_diario_comprobante()
                {
                  $this->render('pdf_diario_comprobante');
                 }
                 
      public function actionCuentamov($term) {
      $criteria = new CDbCriteria;                                    
      $criteria->condition = "titulo_mov=2 AND  LOWER(codigo_cuenta) like LOWER(:term) and blnborrado=false";
      $criteria->params = array(':term'=> ''.$_GET['term'].'%');   
      $criteria->limit = 30; 
      $criteria->order = 'codigo_cuenta asc';

      $data = CuentasConsolidada::model()->findAll($criteria);      
      $arr = array();
      foreach ($data as $item) {
		   $cuenta=$item->codigo_cuenta."-".$item->descripcion;
          $arr[] = array(
              'id' => $item->id, 
              'value' => $cuenta,
              'label' => $cuenta,
          );
      }
      echo CJSON::encode($arr);
      }

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

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

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

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

	/**
	 * 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['MayorAnaliticoCuenta']))
		{
			$model->attributes=$_POST['MayorAnaliticoCuenta'];
			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('MayorAnaliticoCuenta');
		$this->render('index',array(
			'dataProvider'=>$dataProvider,
		));
	}

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

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

	/**
	 * 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=MayorAnaliticoCuenta::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']==='mayor-analitico-cuenta-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
}
