<?php 

class TestPruebasController 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 filt
	 */

	public function accessRules(){

		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array(''),
				'users'=>array('*'),
			),

			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('estadoCuenta', 'ComprobantePdf', 'CheckDeudas'),
				'users'=>array('@'),
			),
			 array('allow', // allow admin user to perform 'admin' and 'delete' actions
                    'actions'=>array('estadoCuenta', 'TCpdf', 'Fpdf181', 'ComprobantePdf', 'CheckDeudas'),
                    'users'=>array('@'),
                             ),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}

	public function actionestadoCuenta($id){

	    $model = Asociado::model()->find('idasociado=:socio', array(':socio'=>$id));
	    //echo "<pre>";print_r($model);exit;
	    $modelEmpresa = Empresa::model()->find();
	    $usuario = CrugeUserI::model()->findByPk(Yii::app()->user->id)->nombres.' '.CrugeUserI::model()->findByPk(Yii::app()->user->id)->apellidos;
	    $confBasica = Basica::model()->find();

	    //datos para los montos y creditos de la tabla

	    //$detallePrestamo = ReporteCreditos::model()->findAll('idasociado=:socio', array(':socio'=>$model->idasociado));
	    $haberesAsociado = ReporteHaberes::model()->find('idasociado=:idasociado',array(':idasociado'=>$model->idasociado));
	    //echo "<pre>";print_r($detallePrestamo);exit;
	    if (!empty($haberesAsociado)) {
	      
	      $total = ($haberesAsociado->aporte_asociado 
	      			+ $haberesAsociado->aporte_patrono 
	      			+ $haberesAsociado->dividendos 
	      			+ $haberesAsociado->aporte_extra_socio 
	      			+ $haberesAsociado->aporte_extra_patrono);

	      $modelMontoTotalDeudaCreditoSinGarantia = ReporteCreditos::model()->getTotalMontoDeudaSinGarantia($model->idasociado);
	      $modelMontoTotalDeudaCreditoConGarantia = ReporteCreditos::model()->getTotalMontoDeudaConGarantia($model->idasociado);
	      $modelMontoTotalFiador = ReporteCreditos::model()->getTotalMontoFiador($model->idasociado);
	      $remanenteComprometido = ReporteCreditos::model()->getTotalMontoRemanenteComprometido($model->idasociado);
	                       
	      $modelMontoTotalDeudaCredito = $modelMontoTotalDeudaCreditoSinGarantia + $modelMontoTotalDeudaCreditoConGarantia;
	      $modelMontoTotalDeudaCreditoConGarantia -=$remanenteComprometido;
	      
	      $montoTotaSolicitud = $haberesAsociado->total_haberes - ($modelMontoTotalFiador + $modelMontoTotalDeudaCredito);
	      $montoDisponibleXCentaje = ($haberesAsociado->total_haberes * 0.80)- ($modelMontoTotalFiador + $modelMontoTotalDeudaCredito);

	      $cred = ReporteCreditos::model()->findAll('idasociado=:id AND id_estatus_credito IN (4,7,9,14,15,16,17,18,19)', array(':id'=>$model->idasociado));

	      if (!empty($cred)) {
	      	
	      	$total_prestamos = 0;

	      	foreach ($cred as $prestamo => $datos) {
	      		
	      		$total_prestamos += $datos->deuda_actual + $datos->deuda_actual_esp;
	      	}
	      }else{

	      	$total_prestamos = '';
	      }
//echo "<pre>";print_r($cred);exit;

	      $retiros = RetiroParcial::model()->with('estatusRetiroParcial')->findAll('t.idasociado=:socio AND t.blnborrado=false AND id_estatus_retiro=4', array(':socio'=>$model->idasociado));

	      if (!empty($retiros)) {
	        
	        $total_retiros = 0;
	        foreach ($retiros as $key => $value) {
	          
	          $total_retiros += $value['monto_pagar'];
	        }

	      }else{
	        $total_retiros = '';
	      }
	    }

	    //echo "<pre>"; print_r($total_prestamos); 
	    //echo "\n"; print_r($total_mp);
	    //echo "\n"; print_r($total_lp);
	    //exit;

	    $pdf = Yii::createComponent('application.extensions.mpdf60.mpdf');
	    $html= $this->renderPartial('application.modules.asociado.views.asociado.estado_cuenta',array(
	                'model'=> $model,
	                'modelEmpresa'=>  $modelEmpresa,
	                'haberesAsociado' => $haberesAsociado,
	                'total' => $total,
	                'modelMontoTotalDeudaCredito' => $modelMontoTotalDeudaCredito,
	                'montoTotaSolicitud' => $montoTotaSolicitud,
	                't_prestamo' => $total_prestamos,
	                't_retiros' => $total_retiros,
	                'retiros' => $retiros,
	                'prestamos' => $cred,
	                'conf' => $confBasica,),TRUE);
           	//echo $html;echo "\n";echo "<pre>";print_r($retiros);echo "\n";print_r($total." ".$haberesAsociado->aporte_total);print_r($haberesAsociado);exit;
            $mpdf=new mPDF('win-1252','LETTER',8,'',15,15,20,15,5,5);
            $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' => 'Estado de Cuenta<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('Estado de cuenta.pdf','D');
            exit;
	}

	public function actionTCpdf(){

	    $aportes = AporteOrdinario::model()->findAll(array('limit'=>20000, 'order'=>'id ASC'));

	    $path = Yii::app()->basePath;
	    require_once($path . '/extensions/tcpdf/tcpdf.php');

	    $pdf = new TCPDF();
	    $pdf->setCreator('Roraima Software');
	    $pdf->setAuthor('Roraima Software');
	    $pdf->setTitle('TCPDF prueba');
	    $pdf->setMargins(15, 20, 15);
	    $pdf->SetAutoPageBreak(True, 16);
	    $pdf->SetHeaderMargin(5);
	    $pdf->SetFooterMargin(10);
	    $pdf->SetFont('dejavusans', '', 6);
	    $pdf->AddPage();

	    $pdf->SetCellPadding(1,1,1,1);
	    $pdf->SetCellMargins(0,0,0,0);
	    $pdf->SetFillColor(255,255,255);
	    //echo "<pre>";print_r($y);echo "\n";print_r($y2);exit;
	    
	    $anchos = array(10,60,20,20,18);
	    $fill =  0;

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

	    	$num_pages = $pdf->getNumPages();
	    	$pdf->startTransaction();
	    	$a=5;
	      	$a = $pdf->getNumLines($v['observaciones'], 13, true, false, '','LTRB');
	     
	      	$pdf->MultiCell($anchos[0],$a,$v['id'],1,'C',0,0, '', '', true, 0, false, true, 0);
	      	$pdf->MultiCell($anchos[1],$a,$v['observaciones'],1,'J',0,0, '','',true, 0);
	      	$pdf->MultiCell($anchos[2],$a,'Bs '.$v['aporte_asociado'],1,'R',0,0, '', '', true, 0, false, true, 0);
	      	$pdf->MultiCell($anchos[2],$a,'Bs '.$v['aporte_asociado'],1,'R',0,0, '', '', true, 0, false, true, 0);
	      	$pdf->MultiCell($anchos[2],$a,'Bs '.$v['aporte_asociado'],1,'R',0,0, '', '', true, 0, false, true, 0);
	      	$pdf->MultiCell($anchos[3],$a,'Bs '.$v['aporte_patrono'],1,'R',0,0, '', '', true, 0, false, true, 0);
	      	$pdf->MultiCell($anchos[4],$a,$v['fecha_aporte'],1,'C',0,0, '', '', true, 0, false, true, 0);     
	      	$pdf->Ln();

	      	if($num_pages < $pdf->getNumPages()){
	            //Undo adding the row.
	            $pdf->rollbackTransaction(true);
	            //Add a new page.
	            $pdf->AddPage();
	            //Re-do the row.
	            $pdf->MultiCell($anchos[0],$a,$v['id'],1,'C',0,0, '', '', true, 0, false, true, 0);
	            $pdf->MultiCell($anchos[1],$a,$v['observaciones'],1,'J',0,0, '','',true, 0);
	            $pdf->MultiCell($anchos[2],$a,'Bs '.$v['aporte_asociado'],1,'R',0,0, '', '', true, 0, false, true, 0);
	            $pdf->MultiCell($anchos[2],$a,'Bs '.$v['aporte_asociado'],1,'R',0,0, '', '', true, 0, false, true, 0);
	            $pdf->MultiCell($anchos[2],$a,'Bs '.$v['aporte_asociado'],1,'R',0,0, '', '', true, 0, false, true, 0);
	            $pdf->MultiCell($anchos[3],$a,'Bs '.$v['aporte_patrono'],1,'R',0,0, '', '', true, 0, false, true, 0);
	            $pdf->MultiCell($anchos[4],$a,$v['fecha_aporte'],1,'C',0,0, '', '', true, 0, false, true, 0);     
	            $pdf->Ln();

	      	}else{
	        	//Otherwise we are fine with this row, discard undo history.
	        	$pdf->commitTransaction();
	      	}

	      	$fill=!$fill;
	    }

	    $pdf->Output();
	    Yii::app()->end();
	}

	public function actionMpdf(){

		$aportes = AporteOrdinario::model()->findAll(array('limit'=>2, 'order'=>'id ASC'));

		$path = Yii::app()->basePath;
	    require_once($path . '/extensions/mpdf60/mpdf.php');

	    $mpdf = new mPDF('win-1252','LETTER',8,'',15,15,15,15,5,5);
	    $mpdf->setCreator('Roraima Software');
	    $mpdf->setAuthor('Roraima Software');
	    $mpdf->setTitle('TCPDF prueba');
	    $mpdf->SetAutoPageBreak(True, 16);
	    $mpdf->SetFont('dejavusans', '', 6);
	    $mpdf->AddPage();

	    $mpdf->SetFillColor(255,255,255);
	    
	    $anchos = array(10,90,20,20,25);

	    foreach ($aportes as $key => $value) {
	    	
	    	$x = $mpdf->GetX();
	    	$y = $mpdf->GetY();

	    	$alto = $mpdf->NbLines(50, "hafhf");
	    	//echo "<pre>";print_r($alto);exit;

	    	$mpdf->SetXY($x,$y);
	    	$mpdf->MultiCell($anchos[0],$alto, utf8_decode($value['id']), 1, 'C');
	    	$y3 = $mpdf->GetY();
	    	//echo "<pre>";print_r($y3);exit;

	    	$mpdf->SetXY($x=$x+$anchos[0],$y);
	    	$mpdf->MultiCell($anchos[1],$alto, $value['observaciones'], 1, 'L');
	    	$y2 = $mpdf->GetY();
	    	//echo "<pre>";print_r($y2);exit;

	    	$mpdf->SetXY($x=$x+$anchos[1],$y);
	    	$mpdf->MultiCell($anchos[2],$alto,'Bs. '.$value['aporte_asociado'], 1, 'C');

	    	$mpdf->SetXY($x=$x+$anchos[2],$y);
	    	$mpdf->MultiCell($anchos[3],$alto,'Bs. '.$value['aporte_patrono'], 1, 'C');

	    	$mpdf->SetXY($x=$x+$anchos[3],$y);
	    	$mpdf->MultiCell($anchos[4],$alto, $value['fecha_aporte'], 1, 'C');
	    }

	    $mpdf->Output();
        exit;
	    
	}

	public function actionFpdf181(){

		$aportes = AporteOrdinario::model()->findAll(array('limit'=>20000, 'order'=>'id ASC'));

		$path = Yii::app()->basePath;
	    require_once($path . '/extensions/fpdf181/fpdf.php');

	    $pdf = new FPDF('P', 'mm', 'Letter');
	    $pdf->AddPage();
	    $pdf->SetAutoPageBreak(TRUE, 16);
		$pdf->SetFont('Arial','',8);

		$anchos = array(10,90,20,20,25);

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

			$nb=0;
	        $nb=max($nb,$pdf->NbLines($anchos[1], $value['observaciones']));
	        $h=5*$nb;

			$x = $pdf->GetX();
			$y = $pdf->GetY();

			$pdf->Cell($anchos[0],$h,$value['id'], 1, 'L');

			$pdf->SetXY($x = $x + $anchos[0], $y );
			$pdf->Rect($x,$y,$anchos[1],$h);
			$pdf->MultiCell($anchos[1],5,$value['observaciones'], 0 ,'L');

			$pdf->SetXY($x = $x + $anchos[1], $y );
			$pdf->Cell($anchos[2],$h,'Bs. '.$value['aporte_asociado'], 1, 'R');

			$pdf->SetXY($x = $x + $anchos[2], $y );
			$pdf->Cell($anchos[3],$h,'Bs. '.$value['aporte_patrono'], 1, 'R');

			$pdf->SetXY($x = $x + $anchos[3], $y );
			$pdf->Cell($anchos[4],$h,'Bs. '.$value['fecha_aporte'], 1, 'L');

			$pdf->Ln();

			$pb = $pdf->CheckPageBreak($h);
		}

		$pdf->Output();
	}

	public function actionCheckDeudas(){

		$deudas = array();
		$deudas['prest']='';
		$deudas['ret_parc']='';
		$deudas['error']=0;

		if (!empty($_POST['cedula']) && is_numeric($_POST['cedula'])) {
			
			$cedula = $_POST['cedula'];
			$socio = Asociado::model()->find('cedula=:ci', array(':ci'=>$cedula));
			//echo "<pre>";print_r($_POST); echo "\n"; print_r($socio); exit;

			if (!empty($socio)) {
				
				//Inicio de busqueda de solicitudes aprobadas (credito, reest., refin., retiros)

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

				$creditos = Credito::model()->findAll('idasociado=:socio', array(':socio'=>$socio->idasociado));
				//echo "<pre>"; print_r($creditos); exit;

				$retiros = RetiroParcial::model()->findAll('idasociado=:socio', array(':socio'=>$socio->idasociado));
				//echo "<pre>"; print_r($retiros); exit;
				//echo "<pre>";print_r($creditos); echo "\n";print_r($retiros); exit;
				$cred = false;
				$ret = false;

				if (!empty($creditos)) {
					
					$solicitudes = 0;

					foreach ($creditos as $key => $value) {
						
						$prestamo = CreditoSeguimiento::model()->find('id_credito=:credito AND id_estatus_credito=2 AND actual=true', array(':credito'=>$value->id));

						if (!empty($prestamo)) {
							
							$solicitudes++;
						}
					}

					if ($solicitudes != 0) {
						
						$deudas['prest']= $solicitudes.' préstamo(s)';
						$deudas['error']=1;
						$cred = true;

					}
				}

				if (!empty($retiros)) {
					
					$solicitudes_retiro = 0;

					foreach ($retiros as $clave => $valor) {
						
						$retiro = EstatusRetiroParcial::model()->find('id_retiro_parcial=:retiro AND id_estatus_retiro=2 AND actual=true', array(':retiro'=>$valor->id));

						if (!empty($retiro)) {
							
							$solicitudes_retiro++;
						}
					}

					if ($solicitudes_retiro != 0) {
						
						$deudas['ret_parc']= $solicitudes_retiro.' retiro(s) parcial(es)';
						$deudas['error']=1;
						$ret = true;
					}
				}

				if ($cred == true && $ret == true) {
					
					Yii::app()->user->setFlash('warning', "Usted posee ".$deudas['prest']." y ".$deudas['ret_parc']." con estatus APROBADO, debe esperar la ejecución de pagos o contactar al Administrador del sistema antes de proceder a solicitar la liquidación!");
					$this->redirect( array('Liquidacion/Create'));
					//$this->refresh();

				}elseif ($cred == true && $ret == false) {

					echo "<pre>solo prestamos";exit;
					Yii::app()->user->setFlash('warning', "Usted posee ".$deudas['prest']." con estatus APROBADO, debe esperar la ejecución de pagos o contactar al Administrador del sistema antes de proceder a solicitar la liquidación!");
					$this->redirect( array('Liquidacion/Create'));
					//$this->refresh();

				}elseif ($cred == true && $ret == false) {

					Yii::app()->user->setFlash('warning', "Usted posee ".$deudas['ret_parc']." con estatus APROBADO, debe esperar la ejecución de pagos o contactar al Administrador del sistema antes de proceder a solicitar la liquidación!");
					$this->redirect( array('Liquidacion/Create'));
					//$this->refresh();
					
				}
			}
		}

		echo CJSON::encode($deudas);
	}

	public function actionComprobantePdf($id_comprobante){

		//$model = $this->loadModel($id_comprobante);

		$this->renderPartial('application.modules.contable.views.comprobante.fpdf_comp_contable',
							array('comprobante'=>$id_comprobante)
							);
	}

	public function loadModel($id){
		
		$model=Asociado::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}
}
?>