<?php
  $dataProvider = $_SESSION['data']->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();

  //Ancho de las columnas
  foreach(range('A','N') 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('A3:O3')->getFont()->setBold(true);
  $PHPExcel->getActiveSheet()->getStyle('A3:O3')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);    
  $PHPExcel->getActiveSheet()->getStyle('A3:O3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $PHPExcel->getActiveSheet()->getStyle('A3:O3')->getFill()->getStartColor()->setARGB('004413');

  $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');

  //Titulo de las columnas
  $PHPExcel->getActiveSheet()->SetCellValue('A3', 'nacionalidad');
  $PHPExcel->getActiveSheet()->SetCellValue('B3', 'Cédula');
  $PHPExcel->getActiveSheet()->SetCellValue('C3', 'Nombres y apellidos');
  $PHPExcel->getActiveSheet()->SetCellValue('D3', 'Empresa');
  $PHPExcel->getActiveSheet()->SetCellValue('E3', 'Fecha de solicitud');
  $PHPExcel->getActiveSheet()->SetCellValue('F3', 'Fecha estatus');
  $PHPExcel->getActiveSheet()->SetCellValue('G3', 'Estatus');
  $PHPExcel->getActiveSheet()->SetCellValue('H3', 'Cuenta');
  $PHPExcel->getActiveSheet()->SetCellValue('I3', 'Total deuda');
  $PHPExcel->getActiveSheet()->SetCellValue('J3', 'Total haberes');
  $PHPExcel->getActiveSheet()->SetCellValue('K3', 'Monto a liquidar');
  $PHPExcel->getActiveSheet()->SetCellValue('L3', 'Banco origen');
  $PHPExcel->getActiveSheet()->SetCellValue('M3', 'Cuenta origen');
  $PHPExcel->getActiveSheet()->SetCellValue('N3', 'Referencia del pago');
  $PHPExcel->getActiveSheet()->SetCellValue('O3', 'Fecha del pago');

  //Datos impresos
  foreach ($dataProvider as $key => $value) {

    $PHPExcel->getActiveSheet()->SetCellValue('A'.($key+4), $value->idAsociado->nacionalidad);
    $PHPExcel->getActiveSheet()->getStyle("B")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    $PHPExcel->getActiveSheet()->SetCellValue('B'.($key+4), $value->idAsociado->cedula);
    $PHPExcel->getActiveSheet()->SetCellValue('C'.($key+4), strtoupper($value->idAsociado->nombre ." ". $value->idAsociado->apellidos));
    $PHPExcel->getActiveSheet()->SetCellValue('D'.($key+4), strtoupper($value->idAsociado->lugartrabajo0->descripcion));

    $PHPExcel->getActiveSheet()->getStyle("E")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('E'.($key+4), ($value->fecha_solicita)?date('d-m-Y',strtotime($value->fecha_solicita)):"" );

    $PHPExcel->getActiveSheet()->getStyle("F")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('F'.($key+4), ($value->fecha_estatus)?date('d-m-Y',strtotime($value->fecha_estatus)):"" );
    $PHPExcel->getActiveSheet()->SetCellValue('G'.($key+4), strtoupper($value->nombre_estatus));

    $PHPExcel->getActiveSheet()->setCellValueExplicit('H'.($key+4),$value->cuenta,PHPExcel_Cell_DataType::TYPE_STRING);    

    $PHPExcel->getActiveSheet()->getStyle("I")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('I'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('I'.($key+4), $value->monto_total_deuda);

    $PHPExcel->getActiveSheet()->getStyle("J")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('J'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('J'.($key+4),$value->monto_total_disponible);

    $PHPExcel->getActiveSheet()->getStyle("K")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('K'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('K'.($key+4), $value->monto_pagar);
    
    $info_pago = ProcesoPago::getDatosPago($value->id);

    $PHPExcel->getActiveSheet()->getStyle('L')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('L'.($key+4), $info_pago['banco'] );

    $PHPExcel->getActiveSheet()->getStyle('M')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('M'.($key+4), $info_pago['cuenta'] );

    $PHPExcel->getActiveSheet()->getStyle('N')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('N'.($key+4), $info_pago['referencia'] );

    $PHPExcel->getActiveSheet()->getStyle('O')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('O'.($key+4), ($info_pago['fecha_pago'])?date('d-m-Y',  strtotime($info_pago['fecha_pago'])):"" );
  }

  $objWriter = new PHPExcel_Writer_Excel2007($PHPExcel);
  $objWriter->setOffice2003Compatibility(true);
  $objWriter->save('php://output');
?>
