<?php
  $dataProvider = $_SESSION['datos_mpma']->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','Q') as $columnID) {

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

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

  //Estilo del header de las columnas
  $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', 'Cédula del solicitante');
  $PHPExcel->getActiveSheet()->SetCellValue('B3', 'Nombres y apellidos del solicitante');
  $PHPExcel->getActiveSheet()->SetCellValue('C3', 'Cédula del fallecido');
  $PHPExcel->getActiveSheet()->SetCellValue('D3', 'Nombres y apellidos del fallecido');
  $PHPExcel->getActiveSheet()->SetCellValue('E3', 'Tipo de solicitud');
  $PHPExcel->getActiveSheet()->SetCellValue('F3', 'Beneficiarios');
  $PHPExcel->getActiveSheet()->SetCellValue('G3', 'Estatus');
  $PHPExcel->getActiveSheet()->SetCellValue('H3', 'Monto de la solicitud');
  $PHPExcel->getActiveSheet()->SetCellValue('I3', 'Monto pagado');
  $PHPExcel->getActiveSheet()->SetCellValue('J3', 'Solicitud');
  $PHPExcel->getActiveSheet()->SetCellValue('K3', 'Aprobado');
  $PHPExcel->getActiveSheet()->SetCellValue('L3', 'Pagado');
  $PHPExcel->getActiveSheet()->SetCellValue('M3', 'Denegado');
  $PHPExcel->getActiveSheet()->SetCellValue('N3', 'Observaciones');
  $PHPExcel->getActiveSheet()->SetCellValue('O3', 'Banco origen');
  $PHPExcel->getActiveSheet()->SetCellValue('P3', 'Cuenta origen');
  $PHPExcel->getActiveSheet()->SetCellValue('Q3', 'Referencia del pago');

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

    $info_pago = ProcesoPago::getDatosPago($value->id);
    $fechas = StatusSolicitud::getFechaStatus($value->id);

    $PHPExcel->getActiveSheet()->getStyle("A")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    if ($value->id_tiposol == 1) {
      
      $PHPExcel->getActiveSheet()->SetCellValue('A'.($key+4), $value->idBeneficiario->cedula); 
      $PHPExcel->getActiveSheet()->SetCellValue('B'.($key+4), strtoupper($value->idBeneficiario->nombre ." ". $value->idBeneficiario->apellido));
      $PHPExcel->getActiveSheet()->getStyle("C")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
      $PHPExcel->getActiveSheet()->SetCellValue('C'.($key+4), $value->idAsociado->cedula);
      $PHPExcel->getActiveSheet()->SetCellValue('D'.($key+4), strtoupper($value->idAsociado->nombre ." ". $value->idAsociado->apellidos));

    }else{

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

    $PHPExcel->getActiveSheet()->SetCellValue('E'.($key+4), strtoupper($value->idTiposol->tipo_sol));

    if ($value->id_tiposol == 1) {
      
      $PHPExcel->getActiveSheet()->getStyle("F")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
      $PHPExcel->getActiveSheet()->SetCellValue('F'.($key+4), SolicitudBenef::model()->cantBen($value->id));
      
    }else{

      $PHPExcel->getActiveSheet()->getStyle("F")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
      $PHPExcel->getActiveSheet()->SetCellValue('F'.($key+4), 1);
    }

    $PHPExcel->getActiveSheet()->setCellValue('G'.($key+4), strtoupper($value->name_est));    

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

    $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),$info_pago['monto_pagado']);

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

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

    $PHPExcel->getActiveSheet()->getStyle('L')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('L'.($key+4),($fechas['Denegado'])?date('d-m-Y',  strtotime($fechas['Pagado'])):"");

    $PHPExcel->getActiveSheet()->getStyle('M')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('M'.($key+4),($fechas['Pagado'])?date('d-m-Y',  strtotime($fechas['Denegado'])):"");

    $observaciones = StatusSolicitud::model()->find('id_solicitud=:id AND id_status_solicitud IN(2,3,4)',array(':id'=>  $value->id));
    $PHPExcel->getActiveSheet()->SetCellValue('N'.($key+4), ($observaciones)?strtoupper($observaciones->observaciones):"" );

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

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

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

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