<?php use_helper('UtilFunctions'); 

ViewResponse::getInstance()->setMethodAjax();

$o_CrCreditoCronoFN = new CrCreditoCronoFN();
$o_CrCreditoCronoFN->setIdcreditocrono( $i_Id );
$o_CrCreditoCronoBN = $o_CrCreditoCronoFN->selectByPK();

$idCliente = $o_CrCreditoCronoBN->getIdcliente();

$o_ClienteBean = new ClienteBean();
$o_ClienteBean->setIdCliente( $idCliente );

$o_ClienteBL = new ClienteBL();
$a_Cliente = $o_ClienteBL->busquedaCliente( $o_ClienteBean );
if( $a_Cliente )
{
    $o_ClienteBN = $a_Cliente[0];
    $s_NombreCompleto = $o_ClienteBN->getNombreCompleto();
    $s_DireccionCliente = $o_ClienteBN->getDireccion();
    $i_IdMercado =  $o_ClienteBN->getIdMercado();
    $o_MercadoBean = new MercadoBean();
    $o_MercadoBean->setIdMercado( $i_IdMercado );
    
    $o_MercadoBL = new MercadoBL();
    $a_Mercado = $o_MercadoBL->busquedaMercado( $o_MercadoBean );
    if( $a_Mercado )
    {
        $o_MercadoBN = $a_Mercado[0];
        $s_DescripcionMercado = $o_MercadoBN->getDescripcion();
    }
}

$s_FechaOperacion = $o_CrCreditoCronoBN->getFechainicio();
$s_MontoCap = $o_CrCreditoCronoBN->getMontocapital();
$s_Moneda = $o_CrCreditoCronoBN->getMoneda();
$cboFormaPago = $o_CrCreditoCronoBN->getPeriodopago();
$cboDuracion = $o_CrCreditoCronoBN->getDuracion();
$s_InteresMensual = $o_CrCreditoCronoBN->getPorcinteresmensual();
$s_NumMeses = $o_CrCreditoCronoBN->getNumeromeses();
$s_InteresMor = $o_CrCreditoCronoBN->getPorcinteresdiariomora();
$s_Observacion = $o_CrCreditoCronoBN->getObservacion();

if($cboFormaPago == 'S'){
	$s_cboFormaPago = "Semanal";

}
if($cboFormaPago == 'Q'){
	$s_cboFormaPago = "Quincenal";

}
if($cboFormaPago == 'M'){
	$s_cboFormaPago = "Mensual";

}

$s_Param = 'block=006&idCliente='.$idCliente;
if( isset( $i_Id ) )
{
    $s_Param = $s_Param.'&i_Id='.$i_Id;
}
//FORMULA DEL MONTO A PAGAR CON INTERESES
$f_MontoInteres = ($s_InteresMensual/100)*$s_MontoCap*$s_NumMeses;
$f_MontoTotalPagar = $f_MontoInteres + $s_MontoCap;
$f_MontoCuotaPagar = fnroundesp( $f_MontoTotalPagar/$s_NumMeses, 2 );

$pdf = new TCPDF('P', PDF_UNIT,'A4', true); 

$pdf->setHeaderFont(array('Courier','',11));
$pdf->setFooterMargin('5');
//$str = 'Estado de Cuenta de hipoteca';

//$pdf->setHeaderData('','80','ESTADO DE CUENTA');
$pdf->setHeaderData('logo_credito.png','20','ESTADO DE CUENTA '.str_pad($i_Id,5,'0',STR_PAD_LEFT),$str);

define("POS_IZQ", 10);

$pdf->AddPage();

/*CABECERA*/
$pdf->SetXY(POS_IZQ,$pdf->GetY()+1);			
$pdf->SetFillColor(254,254,254);
$pdf->SetX(POS_IZQ);
$pdf->SetFont('Courier','B',16);
$pdf->Cell(200,8,'Datos del Cliente',0,1,'L',1);


$pdf->SetFont('Courier','B',11);
$pdf->Cell(30,6,'Nombre',0,0,'L',1);
$pdf->SetFont('Courier','',10);
$pdf->Cell(50,6,ucwords($s_NombreCompleto),0,1,'L',1);


$pdf->SetFont('Courier','B',11);
$pdf->Cell(30,6,'Direccion',0,0,'L',1);
$pdf->SetFont('Courier','',9);
$pdf->Cell(10,6,$s_DireccionCliente,0,1,'L',1);

$pdf->SetFont('Courier','B',11);
$pdf->Cell(30,6,'Mercado',0,0,'L',1);
$pdf->SetFont('Courier','',11);
$pdf->Cell(50,6,utf8_encode(ucwords($s_DescripcionMercado)),0,1,'L',1);



switch ( $s_Moneda ) {
	case "S": $moneda ="Soles"; break;
    case "D":$moneda ="Dolares";break;
}

                                                    
$pdf->SetFont('Courier','B',11);
$pdf->Cell(30,6,'Moneda',0,0,'L',1);
$pdf->SetFont('Courier','',11);
$pdf->Cell(50,6,$moneda,0,1,'L',0);

$pdf->SetFont('Courier','B',11);
$pdf->Cell(30,6,'Observacion',0,0,'L',1);
$pdf->SetFont('Courier','',11);
$pdf->Cell(50,6,$s_Observacion,0,1,'L',1);

$pdf->SetFont('Courier','B',12);
$pdf->Cell(50,10,'Lista de Cuotas',0,1,'L',1);

$pdf->SetFont('Courier','B',9);
$pdf->SetFillColor(209,209,209);
$pdf->Cell(8,6,'Nro',1,0,'L',1);
$pdf->Cell(25,6,'F.Inicio',1,0,'C',1);
$pdf->Cell(27,6,'F.Vencimiento',1,0,'C',1);
$pdf->Cell(24,6,'Monto Couta',1,0,'R',1);
$pdf->Cell(24,6,'Saldo',1,0,'R',1);
$pdf->Cell(15,6,'Estado',1,0,'C',1);
$pdf->Cell(14,6,'# Pagos',1,0,'C',1);
$pdf->Cell(22,6,'# Dias Mora',1,0,'R',1);
$pdf->Cell(18,6,'M.Pagada',1,0,'R',1);
$pdf->Cell(15,6,'Total',1,1,'R',1);


$pdf->SetFont('Courier','',9);
$o_CrCreditoCuotaFN = new CrCreditoCuotaFN();
$o_CrCreditoCuotaFN->setIdcreditocrono( $i_Id );
$a_CrCreditoCuota = $o_CrCreditoCuotaFN->select();
$f_SumaMontoTotal = 0;
$f_SumaSaldototal = 0;
 $f_SumaMontoMoraPago = 0;
if( $a_CrCreditoCuota ){
	foreach ( $a_CrCreditoCuota as $i_Key => $o_CrCreditoCuotaBN ){ 
   
	    $i_Idcuota = $o_CrCreditoCuotaBN->getIdcuota();
	    
	    $o_CrCreditoPagoFN = new CrCreditoPagoFN();
	    $o_CrCreditoPagoFN->setIdcuota( $i_Idcuota );
	    $i_NumPagos = $o_CrCreditoPagoFN->selectNumRows();
	    
	    $s_Estado = $o_CrCreditoCuotaBN->getEstado();
	    $s_Moneda = $o_CrCreditoCuotaBN->getMoneda();
	    switch ($s_Estado) {
	        case "P":
	            $s_EstadoDesc = "P";
	        break;
	        case "C":
	            $s_EstadoDesc = "C";
	        break;
	    }
	    switch ( $s_Moneda ) {
	        case "S":
	            $s_MonedaDesc = "Soles";
	            $simbolo="S/ ";
	        break;
	        case "D":
	            $s_MonedaDesc = "Dolares";
	            $simbolo="$ ";
	        break;
	    }
	    $f_SumaMontoTotal  = $f_SumaMontoTotal + $o_CrCreditoCuotaBN->getMontototal();
	    $f_SumaSaldototal  = $f_SumaSaldototal + $o_CrCreditoCuotaBN->getSaldototal();
	   
	    
	    //AHORA SE TIENE QUE IDENTIFICAR LA MORA PAGADA Y EL SALDO DE MORA
	    $o_CrCreditoPagoFN = new CrCreditoPagoFN();
	    $o_CrCreditoPagoFN->setIdcuota( $i_Idcuota );
	    $o_CrCreditoPagoFN->setTipopago( "M" );
	    $a_CrCreditoPago = $o_CrCreditoPagoFN->select();
	   
	    if( $a_CrCreditoPago )
	    {
	        foreach ( $a_CrCreditoPago as $i_Key => $o_CrCreditoPagoBN )
	        {
	            $f_MontoMoraPago = $o_CrCreditoPagoBN->getMontopago();
	            $f_SumaMontoMoraPago = $f_SumaMontoMoraPago + $f_MontoMoraPago;
	        }
	    }
	    //////////////////////////////////////////////////////////////////////
	    $s_StringStyle = "";
	    if( $s_Estado=="P" && $o_CrCreditoCuotaBN->getDiasmora() > 0 )
	    {
	        $s_StringStyle = 'style="background-color:#fed91e"';
	    }
		
	     //AHORA SE TIENE QUE IDENTIFICAR EL PAGO por capital
        $o_CrCreditoPagoFN = new CrCreditoPagoFN();
        $o_CrCreditoPagoFN->setIdcuota( $i_Idcuota );
        $o_CrCreditoPagoFN->setTipopago( "C" );
        
		if(!isset($sortCampos))$sortCampos= "Fechatrx";
		if(!isset($sortType))  $sortType ="2";
		$o_CrCreditoPagoFN->sortCampos = $sortCampos;
		$o_CrCreditoPagoFN->sortType   = $sortType;
        
        $a_CrCreditoPago = $o_CrCreditoPagoFN->select();
        
        $s_FechaTrx = '';
        $f_SumaMontoPagado = 0;
        if( $a_CrCreditoPago )
        {
            foreach ( $a_CrCreditoPago as $i_Key => $o_CrCreditoPagoBN )
            {
                $f_MontoPago = $o_CrCreditoPagoBN->getMontopago();
                if($o_CrCreditoPagoBN->getFechaTrx() && $s_FechaTrx == '') $s_FechaTrx = $o_CrCreditoPagoBN->getFechaTrx();
                $f_SumaMontoPagado = $f_SumaMontoPagado + $f_MontoPago;
            }
        }
	    
	    $pdf->Cell(8,6,$i_Key+1,1,0,'L',0);
	    $pdf->Cell(25,6,$o_CrCreditoCuotaBN->getFechacuota(),1,0,'C',0);
	    $pdf->Cell(27,6,$s_FechaTrx,1,0,'C',0);
	        
	    $pdf->Cell(24,6,number_format($o_CrCreditoCuotaBN->getMontototal(),2),1,0,'R',0);
	    $pdf->Cell(24,6,number_format($o_CrCreditoCuotaBN->getSaldototal(),2),1,0,'R',0);
	    $pdf->Cell(15,6,$s_EstadoDesc,1,0,'C',0);
	    $pdf->Cell(14,6,$i_NumPagos,1,0,'C',0);
	    $pdf->Cell(22,6,$o_CrCreditoCuotaBN->getDiasmora(),1,0,'C',0);
	    $pdf->Cell(18,6,number_format($o_CrCreditoCuotaBN->getMontomora(),2),1,0,'R',0);
	    $pdf->Cell(15,6,number_format($f_SumaMontoMoraPago,2),1,1,'R',0);
	    

	}
}
$pdf->SetFont('Courier','B',10);

$pdf->Cell(60,6,'Totales',1,0,'R',1);
$pdf->Cell(24,6,$simbolo.number_format($f_SumaMontoTotal,2),1,0,'C',1);
$pdf->Cell(24,6,$simbolo.number_format($f_SumaSaldototal,2),1,0,'C',1);
$pdf->Cell(84,6,$simbolo.number_format($f_SumaMontoMoraPago,2),1,0,'C',1);

$pdf->Output();