<?php $dataProvider = $_SESSION['datos_filtrados_abono']->getData(); 
  //echo "<pre>";print_r($dataProvider);exit;

  $phpExcelPath = Yii::getPathOfAlias('ext.Excel.PHPExcel.Classes');
  $phpExcelPath2 = Yii::getPathOfAlias('application.extensions.Excel.PHPExcel.Classes.PHPExcel');
                   

  spl_autoload_unregister(array('YiiBase','autoload'));
  include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php');
  include($phpExcelPath2 . DIRECTORY_SEPARATOR . 'IOFactory.php');
  spl_autoload_register(array('YiiBase','autoload'));

  $PHPExcel = new PHPExcel();
  $PHPExcel->setActiveSheetIndex(0); 

  //Ancho de las columnas
  foreach(range('A','P') as $columnID) {

    $PHPExcel->getActiveSheet()->getColumnDimension($columnID)->setAutoSize(true);
  }

  //Encabezado
  $PHPExcel->getActiveSheet()->SetCellValue('A1', 'LISTADO DE SOLICITUDES');
  $PHPExcel->getActiveSheet()->SetCellValue('A2', 'Resultados: '.count($dataProvider));

  //Header de la tabla de datos
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);   
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('004413');

  $PHPExcel->getActiveSheet()->getStyle('A3:Q3')->getFont()->setBold(true);
  $PHPExcel->getActiveSheet()->getStyle('A3:Q3')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);   
  $PHPExcel->getActiveSheet()->getStyle('A3:Q3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $PHPExcel->getActiveSheet()->getStyle('A3:Q3')->getFill()->getStartColor()->setARGB('004413');

  //Titulo de las columnas
  $PHPExcel->getActiveSheet()->SetCellValue('A3', 'Cedula');
  $PHPExcel->getActiveSheet()->SetCellValue('B3', 'Nombres y apellidos');
  $PHPExcel->getActiveSheet()->SetCellValue('C3', 'Empresa');
  $PHPExcel->getActiveSheet()->SetCellValue('D3', 'Fecha de solicitud');
  $PHPExcel->getActiveSheet()->SetCellValue('E3', 'Estatus abono');
  $PHPExcel->getActiveSheet()->SetCellValue('F3', 'Fecha estatus');
  $PHPExcel->getActiveSheet()->SetCellValue('G3', 'Categoria de préstamo');
  $PHPExcel->getActiveSheet()->SetCellValue('H3', 'Tipo de prestamo');
  $PHPExcel->getActiveSheet()->SetCellValue('I3', 'Monto de la deuda');
  $PHPExcel->getActiveSheet()->SetCellValue('J3', 'Monto abonado');
  $PHPExcel->getActiveSheet()->SetCellValue('K3', 'Monto aprobado');
  $PHPExcel->getActiveSheet()->SetCellValue('L3', 'Monto a reintegrar');
  $PHPExcel->getActiveSheet()->SetCellValue('M3', 'Mantener cuota');
  $PHPExcel->getActiveSheet()->SetCellValue('N3', 'Forma de pago');
  $PHPExcel->getActiveSheet()->SetCellValue('O3', 'Fecha de referencia');
  $PHPExcel->getActiveSheet()->SetCellValue('P3', 'Nro. referencia');
  $PHPExcel->getActiveSheet()->SetCellValue('Q3', 'Banco');

  //Datos impresos
  $column = 4;
  foreach ($dataProvider as $key => $value) {
    // $column +=ho
    $prestamos_seleccionados = json_decode($value->prestamos_seleccionados, true);
    
    $cant_prestamos = count($prestamos_seleccionados);
    
    $cant_prestamos --;

    $PHPExcel->getActiveSheet()->getStyle("A")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

    $PHPExcel->getActiveSheet()->SetCellValue('A'.$column, $value->idAsociado->cedula);
    $PHPExcel->getActiveSheet()->mergeCells('A'.$column.':A'.($column+$cant_prestamos));
    
    $PHPExcel->getActiveSheet()->SetCellValue('B'.$column, strtoupper($value->idAsociado->nombre ." ". $value->idAsociado->apellidos));
    $PHPExcel->getActiveSheet()->mergeCells('B'.$column.':B'.($column+$cant_prestamos));
    
    $PHPExcel->getActiveSheet()->SetCellValue('C'.$column, strtoupper($value->idAsociado->lugartrabajo0->descripcion));
    $PHPExcel->getActiveSheet()->mergeCells('C'.$column.':C'.($column+$cant_prestamos));
    
    $PHPExcel->getActiveSheet()->SetCellValue('D'.$column, date('d-m-Y',strtotime($value->fecha_registro)));
    $PHPExcel->getActiveSheet()->mergeCells('D'.$column.':D'.($column+$cant_prestamos));
 
    $estatusabono = CreditoAbonoSeguimiento::model()->find('id_credito_abono=:id AND  actual=TRUE',array(':id'=>  $value->id));

    if (!empty($estatusabono)) {
      
      $nombre_estatus = EstatusCredito::model()->findByPk($estatusabono->id_estatus_abono)->nombre_estatus;

      if (!empty($nombre_estatus)) {
        
        $PHPExcel->getActiveSheet()->SetCellValue('E'.$column, $nombre_estatus );
        $PHPExcel->getActiveSheet()->mergeCells('E'.$column.':E'.($column+$cant_prestamos));
      
      }else{

        $PHPExcel->getActiveSheet()->SetCellValue('E'.$column, "Sin estatus" );
        $PHPExcel->getActiveSheet()->mergeCells('E'.$column.':E'.($column+$cant_prestamos));
      }
    
    }else{

      $PHPExcel->getActiveSheet()->SetCellValue('E'.$column, "Sin estatus" );
      $PHPExcel->getActiveSheet()->mergeCells('E'.$column.':E'.($column+$cant_prestamos));
    }
    //echo "<pre>";print_r($nombre_estatus);exit;

   
    $PHPExcel->getActiveSheet()->SetCellValue('F'.$column, date('d-m-Y',strtotime($estatusabono->fecha_registro)));
    $PHPExcel->getActiveSheet()->mergeCells('F'.$column.':F'.($column+$cant_prestamos));
    
    
    foreach ($prestamos_seleccionados as $keyPS => $valuePS) {
      
      $model = Credito::model()->findByPk($valuePS['id_credito']);
// echo "<pre>";print_r($model->idTipoCredito->descripcion);
      $PHPExcel->getActiveSheet()->SetCellValue('G'.($column + $keyPS), $model->idTipoCredito->idTituloTipoCredito->nombre_titulo);

      $PHPExcel->getActiveSheet()->SetCellValue('H'.($column + $keyPS), $model->idTipoCredito->descripcion);
      
      $PHPExcel->getActiveSheet()->getStyle("I")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
      $PHPExcel->getActiveSheet()->getStyle('I'.($column + $keyPS))->getNumberFormat()->setFormatCode('#,##0.00');
      $PHPExcel->getActiveSheet()->SetCellValue('I'.($column + $keyPS),$valuePS['monto_deuda']);
      
    }
// exit;
    $PHPExcel->getActiveSheet()->getStyle("J")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('J'.$column)->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('J'.$column,$value->monto_abonar);
     $PHPExcel->getActiveSheet()->mergeCells('J'.$column.':J'.($column+$cant_prestamos));

    $monto_ap= str_replace(".", "", $value->monto_abonar);
    $monto_aprobado= str_replace(",", ".", $monto_ap);
    $PHPExcel->getActiveSheet()->getStyle("K")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('K'.$column)->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('K'.$column,($estatusabono->id_estatus_abono==2)?($monto_aprobado-$value->remanente_abono):00);
    $PHPExcel->getActiveSheet()->mergeCells('K'.$column.':K'.($column+$cant_prestamos));

    $PHPExcel->getActiveSheet()->getStyle("L")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('L'.$column)->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('L'.$column, (!empty($value->remanente_abono))?$value->remanente_abono:00 );
    $PHPExcel->getActiveSheet()->mergeCells('L'.$column.':L'.($column+$cant_prestamos));


    $PHPExcel->getActiveSheet()->SetCellValue('M'.$column, ($value->mantener_cuota)?'Si':'No');
    $PHPExcel->getActiveSheet()->mergeCells('M'.$column.':M'.($column+$cant_prestamos));
    
    $PHPExcel->getActiveSheet()->SetCellValue('N'.$column, ($value->idFormaPago)?$value->idFormaPago->descripcion:"");
    $PHPExcel->getActiveSheet()->mergeCells('N'.$column.':N'.($column+$cant_prestamos));

    $PHPExcel->getActiveSheet()->SetCellValue('O'.$column, date('d-m-Y',strtotime($value->fecha_referencia)));
    $PHPExcel->getActiveSheet()->mergeCells('O'.$column.':O'.($column+$cant_prestamos));
    
    $PHPExcel->getActiveSheet()->setCellValueExplicit('P'.$column,$value->numero_referencia,PHPExcel_Cell_DataType::TYPE_STRING);    
    $PHPExcel->getActiveSheet()->mergeCells('P'.$column.':P'.($column+$cant_prestamos));
    
    $PHPExcel->getActiveSheet()->SetCellValue('Q'.$column, ($value->idBanco)?$value->idBanco->banco:"");
    $PHPExcel->getActiveSheet()->mergeCells('Q'.$column.':Q'.($column+$cant_prestamos));

    $column++;

    $column += $cant_prestamos;

  }

  $objWriter = new PHPExcel_Writer_Excel2007($PHPExcel);
  $objWriter->setOffice2003Compatibility(true);
  //header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  //header('Content-Disposition: attachment;filename="01simple.xls"');
  //header('Cache-Control: max-age=0');
  $objWriter->save('php://output');
?>